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