aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2017-10-18 06:06:13 -0400
committerGravatar John Cater <jcater@google.com>2017-10-18 13:34:24 -0400
commit56118fc772bfbbdf892abacdf3c77c1c84dfab92 (patch)
tree14581e90541f214f52de778e996d3bcebcaa699c
parentfd71d30f068deba3a4dcd78904498acf49c1d262 (diff)
Speed up test suite by creating one action per file.
RELNOTES: None. PiperOrigin-RevId: 172581098
-rw-r--r--src/test/skylark/BUILD26
-rw-r--r--src/test/skylark/skylark_test.py25
-rw-r--r--src/test/skylark/testenv.py2
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/"