diff options
Diffstat (limited to 'src')
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; } |