From 9a933772e87dfcf684590eb74eee9970e8b66669 Mon Sep 17 00:00:00 2001 From: Laszlo Csomor Date: Tue, 14 Aug 2018 08:29:29 -0700 Subject: test-wrapper: add empty impl + Bazel flag This commit adds: - the skeleton implementation of the Windows native test wrapper - a depenency on the native test wrapper from test rules, through the new $test_wrapper rule attribute - the --windows_native_test_wrapper Bazel flag, which is currently a no-op See https://github.com/bazelbuild/bazel/issues/5508 Change-Id: I8df95c8ce8bab53c51c257698ec95416065a836e Closes #5854. Change-Id: I2ffc78bceec5dd867af775b5878f105fa87c3dba PiperOrigin-RevId: 208650699 --- .../build/lib/analysis/BaseRuleClasses.java | 5 +++++ .../analysis/skylark/SkylarkRuleClassFunctions.java | 5 +++++ .../build/lib/analysis/test/TestConfiguration.java | 21 +++++++++++++++++++++ .../build/lib/analysis/mock/BazelAnalysisMock.java | 4 +++- .../shell/bazel/testdata/embedded_tools_srcs_deps | 1 + 5 files changed, 35 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java index 2bd7daf1b9..d75f64a566 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java @@ -165,6 +165,11 @@ public class BaseRuleClasses { .nonconfigurable("policy decision: should be consistent across configurations")) .add(attr("args", STRING_LIST)) // Input files for every test action + .add( + attr("$test_wrapper", LABEL) + .cfg(HostTransition.INSTANCE) + .singleArtifact() + .value(env.getToolsLabel("//tools/test:test_wrapper"))) .add( attr("$test_runtime", LABEL_LIST) .cfg(HostTransition.INSTANCE) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java index fffbe7a5ea..4a99825d6d 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java @@ -165,6 +165,11 @@ public class SkylarkRuleClassFunctions implements SkylarkRuleFunctionsApi> getDefaultsLabels() { return ImmutableMap.>of( @@ -298,6 +315,10 @@ public class TestConfiguration extends Fragment { return options.coverageReportGenerator; } + public boolean isUsingWindowsNativeTestWrapper() { + return options.windowsNativeTestWrapper; + } + /** * @return number of times the given test should run. If the test doesn't match any of the * filters, runs it once. diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index 801ac17eb7..614a355f2f 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -124,8 +124,10 @@ public final class BazelAnalysisMock extends AnalysisMock { config.create( "/bazel_tools_workspace/tools/genrule/BUILD", "exports_files(['genrule-setup.sh'])"); - config.create("/bazel_tools_workspace/tools/test/BUILD", + config.create( + "/bazel_tools_workspace/tools/test/BUILD", "filegroup(name = 'runtime', srcs = ['test-setup.sh', 'test-xml-generator.sh'])", + "filegroup(name = 'test_wrapper', srcs = ['test_wrapper_bin'])", "filegroup(name = 'test_setup', srcs = ['test-setup.sh'])", "filegroup(name = 'test_xml_generator', srcs = ['test-xml-generator.sh'])", "filegroup(name = 'collect_coverage', srcs = ['collect_coverage.sh'])", diff --git a/src/test/shell/bazel/testdata/embedded_tools_srcs_deps b/src/test/shell/bazel/testdata/embedded_tools_srcs_deps index c508152b00..5f373788af 100644 --- a/src/test/shell/bazel/testdata/embedded_tools_srcs_deps +++ b/src/test/shell/bazel/testdata/embedded_tools_srcs_deps @@ -3,6 +3,7 @@ @com_google_protobuf//:protobuf @com_google_protobuf//:protobuf_lite @com_google_protobuf//:js_embed +//tools/test:test_wrapper_bin //third_party/ijar:zipper //third_party/ijar:ijar //third_party/ijar:zip -- cgit v1.2.3