sancov_merger_test.py 2.18 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13
# Copyright 2016 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import unittest

import sancov_merger


# Files on disk after test runner completes. The files are mapped by
# executable name -> file list.
FILE_MAP = {
  'd8': [
14 15 16 17 18 19 20
    'd8.test.1.1.sancov',
    'd8.test.2.1.sancov',
    'd8.test.3.1.sancov',
    'd8.test.4.1.sancov',
    'd8.test.5.1.sancov',
    'd8.test.5.2.sancov',
    'd8.test.6.1.sancov',
21 22
  ],
  'cctest': [
23 24 25 26
    'cctest.test.1.1.sancov',
    'cctest.test.2.1.sancov',
    'cctest.test.3.1.sancov',
    'cctest.test.4.1.sancov',
27 28 29 30 31 32 33 34
  ],
}


# Inputs for merge process with 2 cpus. The tuples contain:
# (flag, path, executable name, intermediate result index, file list).
EXPECTED_INPUTS_2 = [
  (False, '/some/path', 'cctest', 0, [
35 36
    'cctest.test.1.1.sancov',
    'cctest.test.2.1.sancov']),
37
  (False, '/some/path', 'cctest', 1, [
38 39
    'cctest.test.3.1.sancov',
    'cctest.test.4.1.sancov']),
40
  (False, '/some/path', 'd8', 0, [
41 42 43 44
    'd8.test.1.1.sancov',
    'd8.test.2.1.sancov',
    'd8.test.3.1.sancov',
    'd8.test.4.1.sancov']),
45
  (False, '/some/path', 'd8', 1, [
46 47 48
    'd8.test.5.1.sancov',
    'd8.test.5.2.sancov',
    'd8.test.6.1.sancov']),
49 50 51 52 53 54
]


# The same for 4 cpus.
EXPECTED_INPUTS_4 = [
  (True, '/some/path', 'cctest', 0, [
55 56
    'cctest.test.1.1.sancov',
    'cctest.test.2.1.sancov']),
57
  (True, '/some/path', 'cctest', 1, [
58 59
    'cctest.test.3.1.sancov',
    'cctest.test.4.1.sancov']),
60
  (True, '/some/path', 'd8', 0, [
61 62
    'd8.test.1.1.sancov',
    'd8.test.2.1.sancov']),
63
  (True, '/some/path', 'd8', 1, [
64 65
    'd8.test.3.1.sancov',
    'd8.test.4.1.sancov']),
66
  (True, '/some/path', 'd8', 2, [
67 68
    'd8.test.5.1.sancov',
    'd8.test.5.2.sancov']),
69
  (True, '/some/path', 'd8', 3, [
70
    'd8.test.6.1.sancov'])]
71 72 73 74 75 76 77 78 79 80 81 82


class MergerTests(unittest.TestCase):
  def test_generate_inputs_2_cpu(self):
    inputs = sancov_merger.generate_inputs(
        False, '/some/path', FILE_MAP, 2)
    self.assertEquals(EXPECTED_INPUTS_2, inputs)

  def test_generate_inputs_4_cpu(self):
    inputs = sancov_merger.generate_inputs(
        True, '/some/path', FILE_MAP, 4)
    self.assertEquals(EXPECTED_INPUTS_4, inputs)