# 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': [ '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', ], 'cctest': [ 'cctest.test.1.1.sancov', 'cctest.test.2.1.sancov', 'cctest.test.3.1.sancov', 'cctest.test.4.1.sancov', ], } # 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, [ 'cctest.test.1.1.sancov', 'cctest.test.2.1.sancov']), (False, '/some/path', 'cctest', 1, [ 'cctest.test.3.1.sancov', 'cctest.test.4.1.sancov']), (False, '/some/path', 'd8', 0, [ 'd8.test.1.1.sancov', 'd8.test.2.1.sancov', 'd8.test.3.1.sancov', 'd8.test.4.1.sancov']), (False, '/some/path', 'd8', 1, [ 'd8.test.5.1.sancov', 'd8.test.5.2.sancov', 'd8.test.6.1.sancov']), ] # The same for 4 cpus. EXPECTED_INPUTS_4 = [ (True, '/some/path', 'cctest', 0, [ 'cctest.test.1.1.sancov', 'cctest.test.2.1.sancov']), (True, '/some/path', 'cctest', 1, [ 'cctest.test.3.1.sancov', 'cctest.test.4.1.sancov']), (True, '/some/path', 'd8', 0, [ 'd8.test.1.1.sancov', 'd8.test.2.1.sancov']), (True, '/some/path', 'd8', 1, [ 'd8.test.3.1.sancov', 'd8.test.4.1.sancov']), (True, '/some/path', 'd8', 2, [ 'd8.test.5.1.sancov', 'd8.test.5.2.sancov']), (True, '/some/path', 'd8', 3, [ 'd8.test.6.1.sancov'])] 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)