def parse_args(self, kwargs): ns = _parse_args(sys.argv[1:], **kwargs) if ns.xmlpath: support.junit_xml_list = self.testsuite_xml = [] worker_args = ns.worker_args if worker_args is not None: from test.libregrtest.runtest_mp import parse_worker_args ns, test_name = parse_worker_args(ns.worker_args) ns.worker_args = worker_args self.worker_test_name = test_name # Strip .py extensions. removepy(ns.args) if ns.huntrleaks: warmup, repetitions, _ = ns.huntrleaks if warmup < 1 or repetitions < 1: msg = ("Invalid values for the --huntrleaks/-R parameters. The " "number of warmups and repetitions must be at least 1 " "each (1:1).") print(msg, file=sys.stderr, flush=True) sys.exit(2) if ns.tempdir: ns.tempdir = os.path.expanduser(ns.tempdir) self.ns = ns
def parse_args(self, kwargs): ns = _parse_args(sys.argv[1:], **kwargs) if ns.timeout and not hasattr(faulthandler, 'dump_traceback_later'): print( "Warning: The timeout option requires " "faulthandler.dump_traceback_later", file=sys.stderr) ns.timeout = None if ns.threshold is not None and gc is None: print('No GC available, ignore --threshold.', file=sys.stderr) ns.threshold = None if ns.findleaks: if gc is not None: # Uncomment the line below to report garbage that is not # freeable by reference counting alone. By default only # garbage that is not collectable by the GC is reported. pass #gc.set_debug(gc.DEBUG_SAVEALL) else: print('No GC available, disabling --findleaks', file=sys.stderr) ns.findleaks = False if ns.xmlpath: support.junit_xml_list = self.testsuite_xml = [] # Strip .py extensions. removepy(ns.args) return ns
def parse_args(self, kwargs): ns = _parse_args(sys.argv[1:], **kwargs) if ns.timeout and not hasattr(faulthandler, 'dump_traceback_later'): print("Warning: The timeout option requires " "faulthandler.dump_traceback_later", file=sys.stderr) ns.timeout = None if ns.threshold is not None and gc is None: print('No GC available, ignore --threshold.', file=sys.stderr) ns.threshold = None if ns.findleaks: if gc is not None: # Uncomment the line below to report garbage that is not # freeable by reference counting alone. By default only # garbage that is not collectable by the GC is reported. pass #gc.set_debug(gc.DEBUG_SAVEALL) else: print('No GC available, disabling --findleaks', file=sys.stderr) ns.findleaks = False if ns.xmlpath: support.junit_xml_list = self.testsuite_xml = [] # Strip .py extensions. removepy(ns.args) return ns
def parse_args(self, kwargs): ns = _parse_args(sys.argv[1:], **kwargs) if ns.timeout and not hasattr(faulthandler, 'dump_traceback_later'): print("Warning: The timeout option requires " "faulthandler.dump_traceback_later", file=sys.stderr) ns.timeout = None if ns.xmlpath: support.junit_xml_list = self.testsuite_xml = [] # Strip .py extensions. removepy(ns.args) return ns
def parse_args(self, kwargs): ns = _parse_args(sys.argv[1:], **kwargs) if ns.timeout and not hasattr(faulthandler, 'dump_traceback_later'): print( "Warning: The timeout option requires " "faulthandler.dump_traceback_later", file=sys.stderr) ns.timeout = None if ns.xmlpath: support.junit_xml_list = self.testsuite_xml = [] worker_args = ns.worker_args if worker_args is not None: from test.libregrtest.runtest_mp import parse_worker_args ns, test_name = parse_worker_args(ns.worker_args) ns.worker_args = worker_args self.worker_test_name = test_name # Strip .py extensions. removepy(ns.args) return ns
def find_tests(self, tests): self.tests = tests if self.ns.single: self.next_single_filename = os.path.join(self.tmp_dir, 'pynexttest') try: with open(self.next_single_filename, 'r') as fp: next_test = fp.read().strip() self.tests = [next_test] except OSError: pass if self.ns.fromfile: self.tests = [] # regex to match 'test_builtin' in line: # '0:00:00 [ 4/400] test_builtin -- test_dict took 1 sec' regex = re.compile(r'\btest_[a-zA-Z0-9_]+\b') with open(os.path.join(support.SAVEDCWD, self.ns.fromfile)) as fp: for line in fp: line = line.split('#', 1)[0] line = line.strip() match = regex.search(line) if match is not None: self.tests.append(match.group()) removepy(self.tests) stdtests = STDTESTS[:] nottests = NOTTESTS.copy() if self.ns.exclude: for arg in self.ns.args: if arg in stdtests: stdtests.remove(arg) nottests.add(arg) self.ns.args = [] # if testdir is set, then we are not running the python tests suite, so # don't add default tests to be executed or skipped (pass empty values) if self.ns.testdir: alltests = findtests(self.ns.testdir, list(), set()) else: alltests = findtests(self.ns.testdir, stdtests, nottests) if not self.ns.fromfile: self.selected = self.tests or self.ns.args or alltests else: self.selected = self.tests if self.ns.single: self.selected = self.selected[:1] try: pos = alltests.index(self.selected[0]) self.next_single_test = alltests[pos + 1] except IndexError: pass # Remove all the selected tests that precede start if it's set. if self.ns.start: try: del self.selected[:self.selected.index(self.ns.start)] except ValueError: print("Couldn't find starting test (%s), using all tests" % self.ns.start, file=sys.stderr) if self.ns.randomize: if self.ns.random_seed is None: self.ns.random_seed = random.randrange(10000000) random.seed(self.ns.random_seed) random.shuffle(self.selected)
def find_tests(self, tests): self.tests = tests if self.ns.single: self.next_single_filename = os.path.join(TEMPDIR, 'pynexttest') try: with open(self.next_single_filename, 'r') as fp: next_test = fp.read().strip() self.tests = [next_test] except OSError: pass if self.ns.fromfile: self.tests = [] # regex to match 'test_builtin' in line: # '0:00:00 [ 4/400] test_builtin -- test_dict took 1 sec' regex = re.compile(r'\btest_[a-zA-Z0-9_]+\b') with open(os.path.join(support.SAVEDCWD, self.ns.fromfile)) as fp: for line in fp: line = line.split('#', 1)[0] line = line.strip() match = regex.search(line) if match is not None: self.tests.append(match.group()) removepy(self.tests) stdtests = STDTESTS[:] nottests = NOTTESTS.copy() if self.ns.exclude: for arg in self.ns.args: if arg in stdtests: stdtests.remove(arg) nottests.add(arg) self.ns.args = [] # if testdir is set, then we are not running the python tests suite, so # don't add default tests to be executed or skipped (pass empty values) if self.ns.testdir: alltests = findtests(self.ns.testdir, list(), set()) else: alltests = findtests(self.ns.testdir, stdtests, nottests) if not self.ns.fromfile: self.selected = self.tests or self.ns.args or alltests else: self.selected = self.tests if self.ns.single: self.selected = self.selected[:1] try: pos = alltests.index(self.selected[0]) self.next_single_test = alltests[pos + 1] except IndexError: pass # Remove all the selected tests that precede start if it's set. if self.ns.start: try: del self.selected[:self.selected.index(self.ns.start)] except ValueError: print("Couldn't find starting test (%s), using all tests" % self.ns.start, file=sys.stderr) if self.ns.randomize: if self.ns.random_seed is None: self.ns.random_seed = random.randrange(10000000) random.seed(self.ns.random_seed) random.shuffle(self.selected)