Index: tools/gn/bin/compare_test_lists.py |
diff --git a/tools/gn/bin/compare_test_lists.py b/tools/gn/bin/compare_test_lists.py |
deleted file mode 100644 |
index 37fb1bf1e262f2b6e6da567ef87cb6f2cf78fe1e..0000000000000000000000000000000000000000 |
--- a/tools/gn/bin/compare_test_lists.py |
+++ /dev/null |
@@ -1,101 +0,0 @@ |
-# Copyright 2015 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-# This script compares the gtest test list for two different builds. |
-# |
-# Usage: |
-# compare_test_lists.py <build_dir_1> <build_dir_2> <binary_name> |
-# |
-# For example, from the "src" directory: |
-# python tools/gn/bin/compare_test_lists.py out/Debug out/gnbuild ipc_tests |
-# |
-# This will compile the given binary in both output directories, then extracts |
-# the test lists and prints missing or extra tests between the first and the |
-# second build. |
- |
-import os |
-import subprocess |
-import sys |
- |
-def BuildBinary(build_dir, binary_name): |
- """Builds the given binary in the given directory with Ninja. |
- |
- Returns True on success.""" |
- return subprocess.call(["ninja", "-C", build_dir, binary_name]) == 0 |
- |
- |
-def GetTestList(path_to_binary): |
- """Returns a set of full test names. |
- |
- Each test will be of the form "Case.Test". There will be a separate line |
- for each combination of Case/Test (there are often multiple tests in each |
- case). |
- |
- Throws an exception on failure.""" |
- raw_output = subprocess.check_output([path_to_binary, "--gtest_list_tests"]) |
- input_lines = raw_output.split('\n') |
- |
- # The format of the gtest_list_tests output is: |
- # "Case1." |
- # " Test1 # <Optional extra stuff>" |
- # " Test2" |
- # "Case2." |
- # " Test1" |
- case_name = '' # Includes trailing dot. |
- test_set = set() |
- for line in input_lines: |
- if len(line) > 1: |
- if line[0] == ' ': |
- # Indented means a test in previous case. |
- test_set.add(case_name + line[:line.find('#')].strip()) |
- else: |
- # New test case. |
- case_name = line.strip() |
- |
- return test_set |
- |
- |
-def PrintSetDiff(a_name, a, b_name, b, binary_name): |
- """Prints the test list difference between the given sets a and b. |
- |
- a_name and b_name will be used to refer to the directories of the two sets, |
- and the binary name will be shown as the source of the output.""" |
- |
- a_not_b = list(a - b) |
- if len(a_not_b): |
- print "\n", binary_name, "tests in", a_name, "but not", b_name |
- a_not_b.sort() |
- for cur in a_not_b: |
- print " ", cur |
- |
- b_not_a = list(b - a) |
- if len(b_not_a): |
- print "\n", binary_name, "tests in", b_name, "but not", a_name |
- b_not_a.sort() |
- for cur in b_not_a: |
- print " ", cur |
- |
- if len(a_not_b) == 0 and len(b_not_a) == 0: |
- print "\nTests match!" |
- |
- |
-def Run(a_dir, b_dir, binary_name): |
- if not BuildBinary(a_dir, binary_name): |
- print "Building", binary_name, "in", a_dir, "failed" |
- return 1 |
- if not BuildBinary(b_dir, binary_name): |
- print "Building", binary_name, "in", b_dir, "failed" |
- return 1 |
- |
- a_tests = GetTestList(os.path.join(a_dir, binary_name)) |
- b_tests = GetTestList(os.path.join(b_dir, binary_name)) |
- |
- PrintSetDiff(a_dir, a_tests, b_dir, b_tests, binary_name) |
- |
- |
-if len(sys.argv) != 4: |
- print "Usage: compare_test_lists.py <build_dir_1> <build_dir_2> " \ |
- "<test_binary_name>" |
- sys.exit(1) |
-sys.exit(Run(sys.argv[1], sys.argv[2], sys.argv[3])) |