def unitTestRoutineJSONEncoder(outputFile): testPA = Package("TestPA") testPB = Package("TestPB") testPC = Package("TestPC") calledRoutineA = Routine("TestRA", testPB) calledRoutineB = Routine("TestRB", testPC) testRoutine = Routine("TestRA", testPA) localVar = LocalVariable("TSTLA", ">>", "YU+4,XU+1*") testRoutine.addLocalVariables(localVar) localVar = LocalVariable("TSTLB", ">>", "YU+1*,XU+3*") testRoutine.addLocalVariables(localVar) globalVar = GlobalVariable("TSTGA", ">>", "YU+4,XU+1*") testRoutine.addGlobalVariables(globalVar) nakedVar = NakedGlobal("^(20.2", None, "YU+4,XU+1") testRoutine.addNakedGlobals(nakedVar) labelRef = LabelReference("DD", None, "YU+4,XU+1") testRoutine.addLabelReference(labelRef) globalVar = Global("^TMP(\"TEST\"", None, None, None) testRoutine.addReferredGlobal(globalVar) globalVar = Global("^TMP($J", None, None, None) testRoutine.addReferredGlobal(globalVar) testRoutine.addCalledRoutines(calledRoutineA, "$$DT", "N+1,Y+3") testRoutine.addCalledRoutines(calledRoutineB, "$$OUT", "Y+1,Z+3") output = RoutineJSONEncoder().outputRoutine(testRoutine) outputFile = open(outputFile, "wb") outputFile.write(output) outputFile.write("\n")
def getRoutinePackageNameSpace(self, routineName): return self._crossRef.categorizeRoutineByNamespace(routineName) def getGlobalPackageNameSpace(self, globalName): return self._crossRef.categorizeGlobalByNamespace(globalName) # end of class CallerGraphLogFileParser #=============================================================================== # Section for unit/regression testing routines #=============================================================================== #Testing Constants # Unit test of categorizing routine based on namespace RoutineNamespaceMappingTestDict = { "%ZTLOAD": ("%Z", Package("Kernel")), "PRC0A": ("PRC", Package("IFCAP")), "PRCABIL1": ("PRCA", Package("Accounts Receivable")), "RGUTALR": ("RGUT", Package("Run Time Library")), "IBQL356": ("IBQ", Package("Utilization Management Rollup")), "A1B2OSR": (None, None) } def testingRoutineNamespaceMapping(loggerParser, testMapping): for (routineName, expectedValue) in testMapping.iteritems(): result = loggerParser.getRoutinePackageNameSpace(routineName) assert result == expectedValue, "result: %s, expect: %s" % ( result, expectedValue)