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 5import unittest 6 7import sancov_merger 8 9 10# Files on disk after test runner completes. The files are mapped by 11# executable name -> file list. 12FILE_MAP = { 13 'd8': [ 14 'd8.test.1.1.sancov', 15 'd8.test.2.1.sancov', 16 'd8.test.3.1.sancov', 17 'd8.test.4.1.sancov', 18 'd8.test.5.1.sancov', 19 'd8.test.5.2.sancov', 20 'd8.test.6.1.sancov', 21 ], 22 'cctest': [ 23 'cctest.test.1.1.sancov', 24 'cctest.test.2.1.sancov', 25 'cctest.test.3.1.sancov', 26 'cctest.test.4.1.sancov', 27 ], 28} 29 30 31# Inputs for merge process with 2 cpus. The tuples contain: 32# (flag, path, executable name, intermediate result index, file list). 33EXPECTED_INPUTS_2 = [ 34 (False, '/some/path', 'cctest', 0, [ 35 'cctest.test.1.1.sancov', 36 'cctest.test.2.1.sancov']), 37 (False, '/some/path', 'cctest', 1, [ 38 'cctest.test.3.1.sancov', 39 'cctest.test.4.1.sancov']), 40 (False, '/some/path', 'd8', 0, [ 41 'd8.test.1.1.sancov', 42 'd8.test.2.1.sancov', 43 'd8.test.3.1.sancov', 44 'd8.test.4.1.sancov']), 45 (False, '/some/path', 'd8', 1, [ 46 'd8.test.5.1.sancov', 47 'd8.test.5.2.sancov', 48 'd8.test.6.1.sancov']), 49] 50 51 52# The same for 4 cpus. 53EXPECTED_INPUTS_4 = [ 54 (True, '/some/path', 'cctest', 0, [ 55 'cctest.test.1.1.sancov', 56 'cctest.test.2.1.sancov']), 57 (True, '/some/path', 'cctest', 1, [ 58 'cctest.test.3.1.sancov', 59 'cctest.test.4.1.sancov']), 60 (True, '/some/path', 'd8', 0, [ 61 'd8.test.1.1.sancov', 62 'd8.test.2.1.sancov']), 63 (True, '/some/path', 'd8', 1, [ 64 'd8.test.3.1.sancov', 65 'd8.test.4.1.sancov']), 66 (True, '/some/path', 'd8', 2, [ 67 'd8.test.5.1.sancov', 68 'd8.test.5.2.sancov']), 69 (True, '/some/path', 'd8', 3, [ 70 'd8.test.6.1.sancov'])] 71 72 73class MergerTests(unittest.TestCase): 74 def test_generate_inputs_2_cpu(self): 75 inputs = sancov_merger.generate_inputs( 76 False, '/some/path', FILE_MAP, 2) 77 self.assertEquals(EXPECTED_INPUTS_2, inputs) 78 79 def test_generate_inputs_4_cpu(self): 80 inputs = sancov_merger.generate_inputs( 81 True, '/some/path', FILE_MAP, 4) 82 self.assertEquals(EXPECTED_INPUTS_4, inputs) 83