17db96d56Sopenharmony_ci#! /usr/bin/env python3 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci""" 47db96d56Sopenharmony_ciScript to run Python regression tests. 57db96d56Sopenharmony_ci 67db96d56Sopenharmony_ciRun this script with -h or --help for documentation. 77db96d56Sopenharmony_ci""" 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ciimport os 107db96d56Sopenharmony_ciimport sys 117db96d56Sopenharmony_cifrom test.libregrtest import main 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ci# Alias for backward compatibility (just in case) 157db96d56Sopenharmony_cimain_in_temp_cwd = main 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_cidef _main(): 197db96d56Sopenharmony_ci global __file__ 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_ci # Remove regrtest.py's own directory from the module search path. Despite 227db96d56Sopenharmony_ci # the elimination of implicit relative imports, this is still needed to 237db96d56Sopenharmony_ci # ensure that submodules of the test package do not inappropriately appear 247db96d56Sopenharmony_ci # as top-level modules even when people (or buildbots!) invoke regrtest.py 257db96d56Sopenharmony_ci # directly instead of using the -m switch 267db96d56Sopenharmony_ci mydir = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0]))) 277db96d56Sopenharmony_ci i = len(sys.path) - 1 287db96d56Sopenharmony_ci while i >= 0: 297db96d56Sopenharmony_ci if os.path.abspath(os.path.normpath(sys.path[i])) == mydir: 307db96d56Sopenharmony_ci del sys.path[i] 317db96d56Sopenharmony_ci else: 327db96d56Sopenharmony_ci i -= 1 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci # findtestdir() gets the dirname out of __file__, so we have to make it 357db96d56Sopenharmony_ci # absolute before changing the working directory. 367db96d56Sopenharmony_ci # For example __file__ may be relative when running trace or profile. 377db96d56Sopenharmony_ci # See issue #9323. 387db96d56Sopenharmony_ci __file__ = os.path.abspath(__file__) 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ci # sanity check 417db96d56Sopenharmony_ci assert __file__ == os.path.abspath(sys.argv[0]) 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci main() 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ciif __name__ == '__main__': 477db96d56Sopenharmony_ci _main() 48