Index: blimp/BUILD.gn |
diff --git a/blimp/BUILD.gn b/blimp/BUILD.gn |
index f7191103828b6b8f10dbcb5e758415c398555c9e..2cd056b59aafd0d2ba12ba5cb2121db378647dad 100644 |
--- a/blimp/BUILD.gn |
+++ b/blimp/BUILD.gn |
@@ -59,6 +59,14 @@ group("blimp_tests") { |
} |
} |
+if (is_linux) { |
+ test("blimp_browsertests") { |
+ deps = [ |
+ "//blimp/test:engine_browsertests", |
+ ] |
+ } |
+} |
+ |
test("blimp_unittests") { |
deps = [ |
"//blimp/client:app_unit_tests", |
@@ -73,10 +81,55 @@ test("blimp_unittests") { |
} |
} |
-if (is_linux) { |
- test("blimp_browsertests") { |
- deps = [ |
- "//blimp/test:engine_browsertests", |
- ] |
- } |
+_blimp_tests_runtime_deps = "$root_gen_dir/blimp-tests.runtime_deps" |
+_rebased_blimp_tests_runtime_deps = |
+ rebase_path(_blimp_tests_runtime_deps, root_out_dir) |
+ |
+# Tests for validating potential system environments for running Blimp engine. |
+group("blimp_tests_group") { |
+ testonly = true |
+ |
+ # Additional environment test targets should be added here. |
+ # Executable targets and those executable targets' transitive |
+ # dependencies are not considered unless that executable is listed in |
+ # "data_deps". Otherwise, GN assumes that the executable (and |
+ # everything it requires) is a build-time dependency only. |
+ data_deps = [ |
+ ":blimp_unittests", |
+ "//base:base_unittests", |
+ ] |
+ |
+ write_runtime_deps = _blimp_tests_runtime_deps |
+} |
+ |
+_blimp_tests_manifest = "$root_gen_dir/tests-manifest.txt" |
+_rebased_blimp_tests_manifest = rebase_path(_blimp_tests_manifest, root_out_dir) |
+_rebased_blimp_tests_blacklist = |
+ rebase_path("//blimp/tools/tests-manifest-blacklist.txt") |
+ |
+action("generate_blimp_tests_manifest") { |
+ testonly = true |
+ script = "//blimp/tools/generate-target-manifest.py" |
+ args = [ |
+ "--blacklist", |
+ _rebased_blimp_tests_blacklist, |
+ "--runtime-deps-file", |
+ _rebased_blimp_tests_runtime_deps, |
+ "--output", |
+ _rebased_blimp_tests_manifest, |
+ ] |
+ inputs = [ |
+ _blimp_tests_runtime_deps, |
+ ] |
+ outputs = [ |
+ _blimp_tests_manifest, |
+ ] |
+ |
+ # By specifying a dependency (not a data_dependency) on :blimp_tests_group, |
+ # we can be sure that everything is built before the action is |
+ # complete (though not necessarily before we generate the manifest |
+ # itself). |
+ public_deps = [ |
+ ":blimp_tests_group", |
+ ] |
} |