Ejemplo n.º 1
0
def testModuleStr(modulePath, verbose, delay, testFilter, testFunction):
    """parse text in moduleText into a FORA module and execute tests within"""
    try:
        foraModule = FORA.importModule(modulePath)
    except ParseException.ParseException as parseException:
        print "Failed to import module %s: %s" % (modulePath, parseException)
        return (0, 1)

    moduleName = os.path.split(modulePath)[-1]
    testNames = extractModuleTestNames(foraModule)

    allPassed = 0
    allFailed = 0

    for testName in testNames:
        if testFilter is None or testFilter(modulePath, testName):
            time.sleep(delay)

            t0 = time.time()
            testResults = []

            testResultWithTimes = (executeFORATest(foraModule, testName, verbose, testFunction), time.time() - t0)

            passed, failed = printTestResults(
                moduleName,
                testName,
                testResultWithTimes,
                verbose
                )

            allPassed += passed
            allFailed += failed

    return (allPassed, allFailed)
Ejemplo n.º 2
0
def testModuleStr(modulePath, verbose, delay, testFilter, testFunction):
    """parse text in moduleText into a FORA module and execute tests within"""
    try:
        foraModule = FORA.importModule(modulePath)
    except ParseException.ParseException as parseException:
        print "Failed to import module %s: %s" % (modulePath, parseException)
        return (0, 1)

    moduleName = os.path.split(modulePath)[-1]
    testNames = extractModuleTestNames(foraModule)

    allPassed = 0
    allFailed = 0

    for testName in testNames:
        if testFilter is None or testFilter(modulePath, testName):
            time.sleep(delay)

            t0 = time.time()
            testResults = []

            testResultWithTimes = (executeFORATest(foraModule, moduleName,
                                                   testName,
                                                   verbose, testFunction),
                                   time.time() - t0)

            passed, failed = printTestResults(moduleName, testName,
                                              testResultWithTimes, verbose)

            allPassed += passed
            allFailed += failed

    return (allPassed, allFailed)
Ejemplo n.º 3
0
    def setUp(self):
        self.callbackScheduler = CallbackScheduler.singletonForTesting()
        self.runtime = Runtime.getMainRuntime()
        self.axioms = self.runtime.getAxioms()
        self.compiler = self.runtime.getTypedForaCompiler()
        self.builtinsAsJOV = FORANative.JudgmentOnValue.Constant(FORA.builtin().implVal_)

        pyforaPath = os.path.join(os.path.split(pyfora.__file__)[0], "fora/purePython")
        self.purePythonAsJOV = FORANative.JudgmentOnValue.Constant(FORA.importModule(pyforaPath).implVal_)

        self.instructionGraph = self.runtime.getInstructionGraph()
        self.reasoner = FORANative.SimpleForwardReasoner(self.compiler, self.instructionGraph, self.axioms)
Ejemplo n.º 4
0
    def setUp(self):
        self.callbackScheduler = CallbackScheduler.singletonForTesting()
        self.runtime = Runtime.getMainRuntime()
        self.axioms = self.runtime.getAxioms()
        self.compiler = self.runtime.getTypedForaCompiler()
        self.builtinsAsJOV = FORANative.JudgmentOnValue.Constant(FORA.builtin().implVal_)

        pyforaPath = os.path.join(os.path.split(pyfora.__file__)[0], "fora/purePython")
        self.purePythonAsJOV = FORANative.JudgmentOnValue.Constant(FORA.importModule(pyforaPath).implVal_)
        
        self.instructionGraph = self.runtime.getInstructionGraph()
        self.reasoner = FORANative.SimpleForwardReasoner(self.compiler, self.instructionGraph, self.axioms)
Ejemplo n.º 5
0
def evalTimingsForModuleMember(filename, memberName, callResult=False):
    foraModule = FORA.importModule(os.path.join(testPath, filename))

    if callResult:
        toCall = getattr(foraModule, memberName)
        evalFun = lambda n: FORA.eval("toCall()",
                                      locals={'toCall': toCall},
                                      parsePath=["LocalPerfTestRunner"])
    else:
        evalFun = lambda n: FORA.eval("foraModule.%s" % memberName,
                                      locals={'foraModule': foraModule},
                                      parsePath=["LocalPerfTestRunner"])

    measureTimingsInLoop(evalFun)
Ejemplo n.º 6
0
def evalTimingsForModuleMember(filename, memberName, callResult = False):
    foraModule = FORA.importModule(os.path.join(testPath, filename))

    if callResult:
        toCall = getattr(foraModule, memberName)
        evalFun = lambda n: FORA.eval(
            "toCall()",
            locals = { 'toCall' : toCall },
            parsePath = ["LocalPerfTestRunner"]
            )
    else:
        evalFun = lambda n: FORA.eval(
            "foraModule.%s" % memberName,
            locals = { 'foraModule' : foraModule },
            parsePath = ["LocalPerfTestRunner"]
            )

    measureTimingsInLoop(evalFun)
Ejemplo n.º 7
0
    def getPerfTestsInLangTests(self):
        perfTestCases = dict()
        metadataForPerfTestCases = dict()

        testPath = os.path.split(FORATestModule.__file__)[0]
        foraFiles = [x for x in os.listdir(testPath) if x.endswith(".fora")]

        for filename in foraFiles:
            foraModule = FORA.importModule(os.path.join(testPath, filename))
            moduleMembersAndMetadataDict = FORA.objectMembers(foraModule)

            for memberName, memberMetadata in moduleMembersAndMetadataDict.iteritems():
                if self.isPerfTestCase(memberMetadata):
                    if filename not in perfTestCases:
                        perfTestCases[filename] = set()
                    perfTestCases[filename].add(memberName)
                    metadataForPerfTestCases[(filename, memberName)] = memberMetadata.outer

        return perfTestCases, metadataForPerfTestCases
Ejemplo n.º 8
0
    def getPerfTestsInLangTests(self):
        perfTestCases = dict()
        metadataForPerfTestCases = dict()

        testPath = os.path.split(FORATestModule.__file__)[0]
        foraFiles = [x for x in os.listdir(testPath) if x.endswith(".fora")]

        for filename in foraFiles:
            foraModule = FORA.importModule(os.path.join(testPath, filename))
            moduleMembersAndMetadataDict = FORA.objectMembers(foraModule)

            for memberName, memberMetadata in moduleMembersAndMetadataDict.iteritems():
                if self.isPerfTestCase(memberMetadata):
                    if filename not in perfTestCases:
                        perfTestCases[filename] = set()
                    perfTestCases[filename].add(memberName)
                    metadataForPerfTestCases[(filename, memberName)] = memberMetadata.outer

        return perfTestCases, metadataForPerfTestCases
Ejemplo n.º 9
0
def generateTestFunctions():
    testFunctions = []
    testPath = os.path.split(FORATestModule.__file__)[0]
    foraFiles = [x for x in os.listdir(testPath) if x.endswith(".fora")]

    foraModules = []
    for filename in foraFiles:
        foraModules.append(
            FORA.extractImplValContainer(
                FORA.importModule(
                    os.path.join(testPath, filename)
                    )
                )
            )

    for module in foraModules:
        for member in module.objectMembers:
            expr = module.getMemberDefinition(member)
            testFunctions.append(FORA.pythonToFORA(expr.toFunctionImplval(False)))

    return testFunctions