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