| 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]))
|
|
|