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)
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)
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)
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)
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)
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
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