def runTest(self): rule_tree = mmap_classifier.LoadRules(_TEST_RULES) mmap = memory_map.Map() for m in _TEST_MMAPS: mmap.Add(memory_map.MapEntry( m[0], m[1], m[2], m[3], 0, m[4], m[5], m[6], m[7])) res = mmap_classifier.Classify(mmap, rule_tree) def CheckResult(node, prefix): node_name = prefix + node.name self.assertIn(node_name, _EXPECTED_RESULTS) subtotal = node.values[0] values = node.values[1:] # First check that the subtotal matches clean + dirty + shared + priv. self.assertEqual(subtotal, values[0] + values[1] + values[2] + values[3]) # Then check that the single values match the expectations. self.assertEqual(values, _EXPECTED_RESULTS[node_name]) for child in node.children: CheckResult(child, node_name + '::') CheckResult(res.total, '')
def _ListProcessClassifiedMmaps(process, mmap_rule): """Prints process classified memory maps """ maps = process.DumpMemoryMaps() if not os.path.exists(mmap_rule): print 'File', mmap_rule, 'not found' return with open(mmap_rule) as f: rules = mmap_classifier.LoadRules(f.read()) classified_results_tree = mmap_classifier.Classify(maps, rules) print json.dumps(classified_results_tree, cls=serialization.Encoder)