Ejemplo n.º 1
0
  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, '')
Ejemplo n.º 2
0
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)