aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/tools/sanitizers/sancov_merger_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/tools/sanitizers/sancov_merger_test.py')
-rw-r--r--deps/v8/tools/sanitizers/sancov_merger_test.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/deps/v8/tools/sanitizers/sancov_merger_test.py b/deps/v8/tools/sanitizers/sancov_merger_test.py
new file mode 100644
index 0000000000..93b89eb8a7
--- /dev/null
+++ b/deps/v8/tools/sanitizers/sancov_merger_test.py
@@ -0,0 +1,82 @@
+# 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.sancov',
+ 'd8.test.2.sancov',
+ 'd8.test.3.sancov',
+ 'd8.test.4.sancov',
+ 'd8.test.5.sancov',
+ 'd8.test.6.sancov',
+ 'd8.test.7.sancov',
+ ],
+ 'cctest': [
+ 'cctest.test.1.sancov',
+ 'cctest.test.2.sancov',
+ 'cctest.test.3.sancov',
+ 'cctest.test.4.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.sancov',
+ 'cctest.test.2.sancov']),
+ (False, '/some/path', 'cctest', 1, [
+ 'cctest.test.3.sancov',
+ 'cctest.test.4.sancov']),
+ (False, '/some/path', 'd8', 0, [
+ 'd8.test.1.sancov',
+ 'd8.test.2.sancov',
+ 'd8.test.3.sancov',
+ 'd8.test.4.sancov']),
+ (False, '/some/path', 'd8', 1, [
+ 'd8.test.5.sancov',
+ 'd8.test.6.sancov',
+ 'd8.test.7.sancov']),
+]
+
+
+# The same for 4 cpus.
+EXPECTED_INPUTS_4 = [
+ (True, '/some/path', 'cctest', 0, [
+ 'cctest.test.1.sancov',
+ 'cctest.test.2.sancov']),
+ (True, '/some/path', 'cctest', 1, [
+ 'cctest.test.3.sancov',
+ 'cctest.test.4.sancov']),
+ (True, '/some/path', 'd8', 0, [
+ 'd8.test.1.sancov',
+ 'd8.test.2.sancov']),
+ (True, '/some/path', 'd8', 1, [
+ 'd8.test.3.sancov',
+ 'd8.test.4.sancov']),
+ (True, '/some/path', 'd8', 2, [
+ 'd8.test.5.sancov',
+ 'd8.test.6.sancov']),
+ (True, '/some/path', 'd8', 3, [
+ 'd8.test.7.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)