Change the strategy for coping with time intensive tests from

"all or none" to "all or some".

This provides much greater test coverage without eating much time.
It also makes it more likely that routine regression testing will
unearth bugs.
This commit is contained in:
Raymond Hettinger 2004-09-04 20:09:13 +00:00
parent 1fbf9c5ec1
commit ed20ad8473
2 changed files with 17 additions and 8 deletions

View file

@ -2,6 +2,7 @@ import compiler
import os
import test.test_support
import unittest
from random import random
class CompilerTest(unittest.TestCase):
@ -18,6 +19,8 @@ class CompilerTest(unittest.TestCase):
for basename in os.listdir(dir):
if not basename.endswith(".py"):
continue
if not TEST_ALL and random() < 0.98:
continue
path = os.path.join(dir, basename)
if test.test_support.verbose:
print "compiling", path
@ -31,7 +34,8 @@ class CompilerTest(unittest.TestCase):
compiler.compile(buf, basename, "exec")
def test_main():
test.test_support.requires("compiler")
global TEST_ALL
TEST_ALL = test.test_support.is_resource_enabled("compiler")
test.test_support.run_unittest(CompilerTest)
if __name__ == "__main__":