diff options
author | laurentlb <laurentlb@google.com> | 2017-10-18 06:06:13 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-10-18 13:34:24 -0400 |
commit | 56118fc772bfbbdf892abacdf3c77c1c84dfab92 (patch) | |
tree | 14581e90541f214f52de778e996d3bcebcaa699c | |
parent | fd71d30f068deba3a4dcd78904498acf49c1d262 (diff) |
Speed up test suite by creating one action per file.
RELNOTES: None.
PiperOrigin-RevId: 172581098
-rw-r--r-- | src/test/skylark/BUILD | 26 | ||||
-rw-r--r-- | src/test/skylark/skylark_test.py | 25 | ||||
-rw-r--r-- | src/test/skylark/testenv.py | 2 |
3 files changed, 31 insertions, 22 deletions
diff --git a/src/test/skylark/BUILD b/src/test/skylark/BUILD index 6b9a38889c..a3e1c5afdd 100644 --- a/src/test/skylark/BUILD +++ b/src/test/skylark/BUILD @@ -11,16 +11,22 @@ filegroup( srcs = glob(["**"]) + ["//src/test/skylark/skylint:srcs"], ) -py_test( - name = "skylark_test", - srcs = [ - "skylark_test.py", - "testenv.py", - ], - data = ["//src/main/java/com/google/devtools/skylark:Skylark"] + glob([ - "testdata/*", - ]), -) +[ + py_test( + name = "skylark_test_" + test_file.replace(".", "_"), + srcs = [ + "skylark_test.py", + "testenv.py", + ], + args = [test_file], + data = [ + "//src/main/java/com/google/devtools/skylark:Skylark", + test_file, + ], + main = "skylark_test.py", + ) + for test_file in glob(["testdata/*"]) +] ## Rest of the file should be moved somewhere else (under bazel/tools/). diff --git a/src/test/skylark/skylark_test.py b/src/test/skylark/skylark_test.py index b7bc2371cf..ae617b0208 100644 --- a/src/test/skylark/skylark_test.py +++ b/src/test/skylark/skylark_test.py @@ -17,6 +17,7 @@ from __future__ import print_function import os.path import re import subprocess +import sys import tempfile import unittest @@ -85,17 +86,19 @@ def assert_(cond, msg="assertion failed"): fail(msg) """ - def testAll(self): - for t in self.TESTS: - print("===", t, "===") - f = os.path.join(testenv.SKYLARK_TESTDATA_PATH, t) - for chunk, expected in self.chunks(f): - with tempfile.NamedTemporaryFile(suffix=".sky", delete=False) as tmp: - tmp.writelines([self.PRELUDE] + chunk) - output = self.evaluate(tmp.name) - os.unlink(tmp.name) - self.check_output(output, expected) + def testFile(self): + t = test_file + print("===", t, "===") + f = os.path.join(testenv.SKYLARK_TESTDATA_PATH, t) + for chunk, expected in self.chunks(f): + with tempfile.NamedTemporaryFile(suffix=".sky", delete=False) as tmp: + tmp.writelines([self.PRELUDE] + chunk) + output = self.evaluate(tmp.name) + os.unlink(tmp.name) + self.check_output(output, expected) if __name__ == "__main__": - unittest.main() + # Test filename is the last argument on the command-line. + test_file = sys.argv[-1] + unittest.main(argv=sys.argv[1:]) diff --git a/src/test/skylark/testenv.py b/src/test/skylark/testenv.py index 5ac73f534e..e18d6113c6 100644 --- a/src/test/skylark/testenv.py +++ b/src/test/skylark/testenv.py @@ -14,4 +14,4 @@ """Test constants for src/test/skylark.""" SKYLARK_BINARY_PATH = "src/main/java/com/google/devtools/skylark/Skylark" -SKYLARK_TESTDATA_PATH = "src/test/skylark/testdata/" +SKYLARK_TESTDATA_PATH = "src/test/skylark/" |