aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r--src/test/java/com/google/devtools/build/lib/testutil/BlazeTestSuiteBuilder.java9
-rw-r--r--src/test/java/com/google/devtools/build/lib/testutil/Suite.java8
-rw-r--r--src/test/java/com/google/devtools/build/lib/testutil/TestSpec.java6
3 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestSuiteBuilder.java b/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestSuiteBuilder.java
index d2f36a6cd5..d311c89821 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestSuiteBuilder.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestSuiteBuilder.java
@@ -53,6 +53,15 @@ public class BlazeTestSuiteBuilder {
}
};
+ /** A predicate that succeeds only for non-local-only tests. */
+ public static final Predicate<Class<?>> TEST_IS_LOCAL_ONLY =
+ new Predicate<Class<?>>() {
+ @Override
+ public boolean apply(Class<?> testClass) {
+ return Suite.isLocalOnly(testClass);
+ }
+ };
+
private static Predicate<Class<?>> hasSize(final Suite size) {
return new Predicate<Class<?>>() {
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/Suite.java b/src/test/java/com/google/devtools/build/lib/testutil/Suite.java
index 43590d463c..8c936b64bd 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/Suite.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/Suite.java
@@ -68,6 +68,14 @@ public enum Suite {
}
/**
+ * Given a class, determine if it can run in a remote execution environment or on the local
+ * machine only.
+ */
+ public static boolean isLocalOnly(Class<?> clazz) {
+ return getAnnotationElementOrDefault(clazz, "localOnly");
+ }
+
+ /**
* Returns the value of the given element in the {@link TestSpec} annotation of the given class,
* or the default value of that element if the class doesn't have a {@link TestSpec} annotation.
*/
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestSpec.java b/src/test/java/com/google/devtools/build/lib/testutil/TestSpec.java
index 0d793f7145..71479048da 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestSpec.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestSpec.java
@@ -45,4 +45,10 @@ public @interface TestSpec {
* code's correctness. If this is the case, the test should be fixed as soon as possible.
*/
boolean flaky() default false;
+
+ /**
+ * True, if the test cannot run in a remote execution environment and has to run on the local
+ * machine.
+ */
+ boolean localOnly() default false;
}