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 unittest 6 7 import sancov_merger 8 9 10 # Files on disk after test runner completes. The files are mapped by 11 # executable name -> file list. 12 FILE_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). 33 EXPECTED_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. 53 EXPECTED_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 73 class 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