1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.platform.test.annotations;
18 
19 import java.lang.annotation.ElementType;
20 import java.lang.annotation.Inherited;
21 import java.lang.annotation.Retention;
22 import java.lang.annotation.RetentionPolicy;
23 import java.lang.annotation.Target;
24 
25 /**
26  * Tests marked with this annotation are only executed when running on Ravenwood, but not
27  * on a device.
28  *
29  * This is basically equivalent to the opposite of {@link DisabledOnRavenwood}, but in order to
30  * avoid complex structure, and there's no equivalent to the opposite {@link EnabledOnRavenwood},
31  * which means if a test class has this annotation, you can't negate it in subclasses or
32  * on a per-method basis.
33  *
34  * THIS ANNOTATION CANNOT BE ADDED TO CLASSES AT THIS PONINT.
35  * See {@link com.android.ravenwoodtest.bivalenttest.RavenwoodClassRuleRavenwoodOnlyTest}
36  * for the reason.
37  *
38  * The {@code RAVENWOOD_RUN_DISABLED_TESTS} environmental variable won't work because it won't be
39  * propagated to the device. (We may support it in the future, possibly using a debug. sysprop.)
40  *
41  * @hide
42  */
43 @Inherited
44 @Target({ElementType.METHOD})
45 @Retention(RetentionPolicy.RUNTIME)
46 public @interface DisabledOnNonRavenwood {
47     /**
48      * General free-form description of why this test is being ignored.
49      */
reason()50     String reason() default "";
51 }
52