Home | History | Annotate | Download | only in test
      1 #! /usr/bin/env python3
      2 
      3 """
      4 Script to run Python regression tests.
      5 
      6 Run this script with -h or --help for documentation.
      7 """
      8 
      9 # We import importlib *ASAP* in order to test #15386
     10 import importlib
     11 
     12 import os
     13 import sys
     14 from test.libregrtest import main
     15 
     16 
     17 # Alias for backward compatibility (just in case)
     18 main_in_temp_cwd = main
     19 
     20 
     21 def _main():
     22     global __file__
     23 
     24     # Remove regrtest.py's own directory from the module search path. Despite
     25     # the elimination of implicit relative imports, this is still needed to
     26     # ensure that submodules of the test package do not inappropriately appear
     27     # as top-level modules even when people (or buildbots!) invoke regrtest.py
     28     # directly instead of using the -m switch
     29     mydir = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
     30     i = len(sys.path) - 1
     31     while i >= 0:
     32         if os.path.abspath(os.path.normpath(sys.path[i])) == mydir:
     33             del sys.path[i]
     34         else:
     35             i -= 1
     36 
     37     # findtestdir() gets the dirname out of __file__, so we have to make it
     38     # absolute before changing the working directory.
     39     # For example __file__ may be relative when running trace or profile.
     40     # See issue #9323.
     41     __file__ = os.path.abspath(__file__)
     42 
     43     # sanity check
     44     assert __file__ == os.path.abspath(sys.argv[0])
     45 
     46     main()
     47 
     48 
     49 if __name__ == '__main__':
     50     _main()
     51