Skip to content

Commit

Permalink
bpo-37667: Add regression test for regrtest. (pythonGH-14929)
Browse files Browse the repository at this point in the history
Verify that it appears to find roughly the right number of tests in the stdlib's testsuite.
(cherry picked from commit e95ac20)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
  • Loading branch information
gpshead authored and miss-islington committed Jul 24, 2019
1 parent 9f77cfc commit 8c8d358
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions Lib/test/test_regrtest.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import contextlib
import faulthandler
import glob
import io
import os.path
import platform
Expand Down Expand Up @@ -529,6 +530,31 @@ def run_python(self, args, **kw):
return proc.stdout


class CheckActualTests(BaseTestCase):
"""
Check that regrtest appears to find the expected set of tests.
"""

def test_finds_expected_number_of_tests(self):
args = ['-Wd', '-E', '-bb', '-m', 'test.regrtest', '--list-tests']
output = self.run_python(args)
rough_number_of_tests_found = len(output.splitlines())
actual_testsuite_glob = os.path.join(os.path.dirname(__file__),
'test*.py')
rough_counted_test_py_files = len(glob.glob(actual_testsuite_glob))
# We're not trying to duplicate test finding logic in here,
# just give a rough estimate of how many there should be and
# be near that. This is a regression test to prevent mishaps
# such as https://bugs.python.org/issue37667 in the future.
# If you need to change the values in here during some
# mythical future test suite reorganization, don't go
# overboard with logic and keep that goal in mind.
self.assertGreater(rough_number_of_tests_found,
rough_counted_test_py_files*9//10,
msg='Unexpectedly low number of tests found in:\n'
f'{", ".join(output.splitlines())}')


class ProgramsTestCase(BaseTestCase):
"""
Test various ways to run the Python test suite. Use options close
Expand Down

0 comments on commit 8c8d358

Please sign in to comment.