aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-05-31 08:57:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-31 08:59:11 -0700
commit915579e8dd11cea71363718c0da42b8f5eca0813 (patch)
tree2b8445baa17f941ce352392df011353b4d00a8ae
parentde1340abaf0bce215c70e0ffedfaf9f2ce8db077 (diff)
Migrate test-related skylark API to skylarkbuildapi
RELNOTES: None. PiperOrigin-RevId: 198728350
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD27
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/ExecutionInfoApi.java35
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestEnvironmentInfoApi.java32
6 files changed, 102 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 8b04b5e418..af26c284c0 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -63,6 +63,7 @@ filegroup(
"//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java:srcs",
"//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform:srcs",
"//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/repository:srcs",
+ "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test:srcs",
"//src/main/java/com/google/devtools/build/lib/skylarkdebug/module:srcs",
"//src/main/java/com/google/devtools/build/lib/skylarkdebug/proto:srcs",
"//src/main/java/com/google/devtools/build/lib/skylarkdebug/server:srcs",
@@ -577,6 +578,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/shell",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skylarkbuildapi",
+ "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java
index 63c3abf0a4..f8aa3b4299 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java
@@ -17,7 +17,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.NativeInfo;
import com.google.devtools.build.lib.packages.NativeProvider;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
+import com.google.devtools.build.lib.skylarkbuildapi.test.ExecutionInfoApi;
import java.util.Map;
/**
@@ -25,7 +25,7 @@ import java.util.Map;
* tests).
*/
@Immutable
-public final class ExecutionInfo extends NativeInfo {
+public final class ExecutionInfo extends NativeInfo implements ExecutionInfoApi {
/** Skylark constructor and identifier for ExecutionInfo. */
public static final NativeProvider<ExecutionInfo> PROVIDER =
@@ -43,11 +43,7 @@ public final class ExecutionInfo extends NativeInfo {
* platforms, etc. Rule tags, such as "requires-XXX", may also be added
* as keys to the map.
*/
- @SkylarkCallable(
- name = "requirements",
- doc = "A dict indicating special execution requirements, such as hardware platforms.",
- structField = true
- )
+ @Override
public ImmutableMap<String, String> getExecutionInfo() {
return executionInfo;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java
index 858f46adeb..b197ba4c2a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java
@@ -18,12 +18,12 @@ import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.NativeInfo;
import com.google.devtools.build.lib.packages.NativeProvider;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
+import com.google.devtools.build.lib.skylarkbuildapi.test.TestEnvironmentInfoApi;
import java.util.Map;
/** Provider containing any additional environment variables for use in the test action. */
@Immutable
-public final class TestEnvironmentInfo extends NativeInfo {
+public final class TestEnvironmentInfo extends NativeInfo implements TestEnvironmentInfoApi {
/** Skylark constructor and identifier for TestEnvironmentInfo. */
public static final NativeProvider<TestEnvironmentInfo> PROVIDER =
@@ -41,11 +41,7 @@ public final class TestEnvironmentInfo extends NativeInfo {
/**
* Returns environment variables which should be set on the test action.
*/
- @SkylarkCallable(
- name = "environment",
- doc = "A dict containing environment variables which should be set on the test action.",
- structField = true
- )
+ @Override
public Map<String, String> getEnvironment() {
return environment;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD
new file mode 100644
index 0000000000..a8d8e947de
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/BUILD
@@ -0,0 +1,27 @@
+# Description:
+# This package contains interfaces representing the skylark "build API"
+# (but not the implementation of that API). Ultimately, this package
+# may be broken out of the Bazel package hierarchy to be standalone.
+# Thus, this package should not depend on Bazel-specific packages (only
+# those which contain pure-Skylark concepts, such as the interpreter or
+# annotation interfaces).
+
+package(default_visibility = ["//src:__subpackages__"])
+
+licenses(["notice"]) # Apache 2.0
+
+filegroup(
+ name = "srcs",
+ srcs = glob(["**"]),
+)
+
+java_library(
+ name = "test",
+ srcs = glob(["*.java"]),
+ deps = [
+ "//src/main/java/com/google/devtools/build/lib:skylarkinterface",
+ "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi",
+ "//third_party:guava",
+ "//third_party:jsr305",
+ ],
+)
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/ExecutionInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/ExecutionInfoApi.java
new file mode 100644
index 0000000000..25d2919e06
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/ExecutionInfoApi.java
@@ -0,0 +1,35 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.skylarkbuildapi.test;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+
+/**
+ * This provider can be implemented by rules which need special environments to run in (especially
+ * tests).
+ */
+@SkylarkModule(name = "ExecutionInfo", doc = "", documented = false)
+public interface ExecutionInfoApi extends StructApi {
+
+ @SkylarkCallable(
+ name = "requirements",
+ doc = "A dict indicating special execution requirements, such as hardware platforms.",
+ structField = true
+ )
+ public ImmutableMap<String, String> getExecutionInfo();
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestEnvironmentInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestEnvironmentInfoApi.java
new file mode 100644
index 0000000000..5724b34116
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestEnvironmentInfoApi.java
@@ -0,0 +1,32 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.skylarkbuildapi.test;
+
+import com.google.devtools.build.lib.skylarkbuildapi.StructApi;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import java.util.Map;
+
+/** Provider containing any additional environment variables for use in the test action. */
+@SkylarkModule(name = "TestEnvironmentInfo", doc = "", documented = false)
+public interface TestEnvironmentInfoApi extends StructApi {
+
+ @SkylarkCallable(
+ name = "environment",
+ doc = "A dict containing environment variables which should be set on the test action.",
+ structField = true
+ )
+ public Map<String, String> getEnvironment();
+}