class TestReportTestCase(unittest.TestCase): """ Some useful asserts for convenience """ def setUp(self): pass def tearDown(self): pass def usingReport(self, repStrs): csvLines = strToCsvLines(repStrs) self.report = Report(csvData = csvLines[1:], csvHeader = csvLines[0]) def __findFuncRecordOfName(self, functionName): funcRecords = self.report.funcRecords.values() for funcRecord in funcRecords: if funcRecord.getRoot().getFunctionName() == functionName: funcRecord.getRoot().validateReqFieldsPresent() return funcRecord return None def assertReportHas(self, functionName): funcRecord = self.__findFuncRecordOfName(functionName) self.assertIsNotNone(funcRecord, "Function name %s not found" % functionName) pass def assertFunctionHasNCallers(self, functionName, N): funcRecord = self.__findFuncRecordOfName(functionName) self.assertIsNotNone(funcRecord, "Function name %s not found" % functionName) self.assertEqual(len(funcRecord.getCallers()), N, "Function name %s does not have %i callers, instead there are %i" % (functionName, N, len(funcRecord.getCallers()))) def assertFunctionHasNCallees(self, functionName, N): funcRecord = self.__findFuncRecordOfName(functionName) self.assertIsNotNone(funcRecord, "Function name %s not found" % functionName) self.assertEqual(len(funcRecord.getCallees()), N, "Function name %s does not have %i callers, instead there are %i" % (functionName, N, len(funcRecord.getCallees()))) def assertNumFuncRecordsIsN(self, N): self.assertEqual(len(self.report.funcRecords), N, "Assertion failed, number of funcRecords not %i instead there are %i" % (N, len(self.report.funcRecords))) def assertElapdeInclIsN(self, functionName, N): funcRecord = self.__findFuncRecordOfName(functionName) self.assertEqual(funcRecord.getRoot().getElapsedIncl(), N, "Elapsed inclusive for root record %s not %lf instead its %lf; entry:%s" % (functionName, N, funcRecord.getRoot().getElapsedIncl(), repr(funcRecord.getRoot().csvEntry.fields))) def assertElapdeExclIsN(self, functionName, N): funcRecord = self.__findFuncRecordOfName(functionName) self.assertEqual(funcRecord.getRoot().getElapsedExcl(), N, "Elapsed exclusive for root record %s not %lf instead its %lf; entry:%s" % (functionName, N, funcRecord.getRoot().getElapsedExcl(), repr(funcRecord.getRoot().csvEntry.fields))) def assertFunctionAtAddress(self, function, address): self.assertEqual(self.report.getRecord(address).getRoot().getFunctionName(), function, "Root record %s not found at address %08x" % (function, address))