Home | History | Annotate | Download | only in ignition
      1 # Copyright 2016 the V8 project authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import bytecode_dispatches_report as bdr
      6 import unittest
      7 
      8 
      9 class BytecodeDispatchesReportTest(unittest.TestCase):
     10   def test_find_top_counters(self):
     11     top_counters = bdr.find_top_bytecode_dispatch_pairs({
     12       "a": {"a": 10, "b": 8, "c": 99},
     13       "b": {"a":  1, "b": 4, "c":  1},
     14       "c": {"a": 42, "b": 3, "c":  7}}, 5)
     15     self.assertListEqual(top_counters, [
     16       ('a', 'c', 99),
     17       ('c', 'a', 42),
     18       ('a', 'a', 10),
     19       ('a', 'b',  8),
     20       ('c', 'c',  7)])
     21 
     22   def test_build_counters_matrix(self):
     23     counters_matrix, xlabels, ylabels = bdr.build_counters_matrix({
     24       "a": {"a": 10, "b":  8, "c":  7},
     25       "b": {"a":  1, "c":  4},
     26       "c": {"a": 42, "b": 12, "c": 99}})
     27     self.assertTrue((counters_matrix == [[42, 12, 99],
     28                                          [ 1,  0,  4],
     29                                          [10,  8,  7]]).all())
     30     self.assertListEqual(xlabels, ['a', 'b', 'c'])
     31     self.assertListEqual(ylabels, ['c', 'b', 'a'])
     32 
     33   def test_find_top_bytecodes(self):
     34     top_dispatch_sources = bdr.find_top_bytecodes({
     35       "a": {"a": 10, "b":  8, "c":  7},
     36       "b": {"a":  1, "c":  4},
     37       "c": {"a": 42, "b": 12, "c": 99}
     38     })
     39     self.assertListEqual(top_dispatch_sources, [
     40       ('c', 153),
     41       ('a',  25),
     42       ('b',   5)
     43     ])
     44 
     45   def test_find_top_dispatch_sources_and_destinations(self):
     46     d = {
     47       "a": {"a":  4, "b":  2, "c":  4},
     48       "b": {"a":  1, "c":  4},
     49       "c": {"a": 40, "b": 10, "c": 50}
     50     }
     51     top_sources, top_dests = bdr.find_top_dispatch_sources_and_destinations(
     52       d, "b", 10, False)
     53     self.assertListEqual(top_sources, [
     54       ("c", 10, 0.1),
     55       ("a", 2, 0.2)
     56     ])
     57     top_sources, top_dests = bdr.find_top_dispatch_sources_and_destinations(
     58       d, "b", 10, True)
     59     self.assertListEqual(top_sources, [
     60       ("a", 2, 0.2),
     61       ("c", 10, 0.1)
     62     ])
     63