# -*- Python -*-

from lit import Test

class ManyTests(object):
    def __init__(self, N=10000):
        self.N = N

    def getTestsInDirectory(self, testSuite, path_in_suite,
                            litConfig, localConfig):
        for i in range(self.N):
            test_name = 'test-%04d' % (i,)
            yield Test.Test(testSuite, path_in_suite + (test_name,),
                            localConfig)

    def execute(self, test, litConfig):
        # Do a "non-trivial" amount of Python work.
        sum = 0
        for i in range(10000):
            sum += i
        return Test.PASS,''

config.test_format = ManyTests()
