diff --git a/runner/android_junit_runner/java/androidx/test/BUILD b/runner/android_junit_runner/java/androidx/test/BUILD index 5c0208e76..57aad0786 100644 --- a/runner/android_junit_runner/java/androidx/test/BUILD +++ b/runner/android_junit_runner/java/androidx/test/BUILD @@ -1,6 +1,7 @@ # Description: Build rules for building androidx.test from source load("@build_bazel_rules_android//android:rules.bzl", "android_library") +load("@rules_java//java:defs.bzl", "java_library") load("//build_extensions:api_checks.bzl", "api_checks") load("//build_extensions:dackka_test.bzl", "dackka_test") load("//build_extensions/maven:axt_android_aar.bzl", "axt_android_aar") @@ -27,7 +28,8 @@ licenses(["notice"]) android_library( name = "runner", srcs = glob( - ["**/*.java"], + include = ["**/*.java"], + exclude = ["filters/*.java"], ), custom_package = "androidx.test.runner", idl_srcs = glob(["**/*.aidl"]), @@ -36,9 +38,11 @@ android_library( "proguard_library.cfg", ], exports = [ + ":filters", "//runner/monitor", ], deps = [ + ":filters", "//opensource/androidx:annotation", "//runner/monitor", "//services/events/java/androidx/test/services/events", @@ -49,6 +53,18 @@ android_library( ], ) +java_library( + name = "filters", + srcs = glob(["filters/*.java"]), + visibility = [ + "//visibility:public", + ], + deps = [ + "//opensource/androidx:annotation", + "@maven//:junit_junit", + ], +) + # Generate rules for the release artifacts. axt_android_aar( name = "runner_aar", diff --git a/runner/android_junit_runner/java/androidx/test/internal/runner/filters/TestsRegExFilter.java b/runner/android_junit_runner/java/androidx/test/filters/TestsRegExFilter.java similarity index 83% rename from runner/android_junit_runner/java/androidx/test/internal/runner/filters/TestsRegExFilter.java rename to runner/android_junit_runner/java/androidx/test/filters/TestsRegExFilter.java index 79a87798f..f51fd32c6 100644 --- a/runner/android_junit_runner/java/androidx/test/internal/runner/filters/TestsRegExFilter.java +++ b/runner/android_junit_runner/java/androidx/test/filters/TestsRegExFilter.java @@ -13,13 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package androidx.test.internal.runner.filters; +package androidx.test.filters; -import androidx.test.filters.AbstractFilter; +import androidx.annotation.RestrictTo; +import androidx.annotation.RestrictTo.Scope; import java.util.regex.Pattern; import org.junit.runner.Description; -/** A JUnit filter for filtering tests whose name match one of the given regular expression */ +/** + * A JUnit filter for filtering tests whose name match one of the given regular expression. + * + * @hide + */ +@RestrictTo(Scope.LIBRARY) public final class TestsRegExFilter extends AbstractFilter { private Pattern pattern = null; diff --git a/runner/android_junit_runner/java/androidx/test/internal/runner/TestRequestBuilder.java b/runner/android_junit_runner/java/androidx/test/internal/runner/TestRequestBuilder.java index f837e2946..257d931f5 100644 --- a/runner/android_junit_runner/java/androidx/test/internal/runner/TestRequestBuilder.java +++ b/runner/android_junit_runner/java/androidx/test/internal/runner/TestRequestBuilder.java @@ -24,12 +24,12 @@ import androidx.test.filters.CustomFilter; import androidx.test.filters.RequiresDevice; import androidx.test.filters.SdkSuppress; +import androidx.test.filters.TestsRegExFilter; import androidx.test.internal.runner.ClassPathScanner.ChainedClassNameFilter; import androidx.test.internal.runner.ClassPathScanner.ExcludeClassNamesFilter; import androidx.test.internal.runner.ClassPathScanner.ExcludePackageNameFilter; import androidx.test.internal.runner.ClassPathScanner.ExternalClassNameFilter; import androidx.test.internal.runner.ClassPathScanner.InclusivePackageNamesFilter; -import androidx.test.internal.runner.filters.TestsRegExFilter; import androidx.test.internal.util.Checks; import androidx.tracing.Trace; import java.io.IOException; diff --git a/runner/android_junit_runner/javatests/androidx/test/internal/runner/filters/BUILD b/runner/android_junit_runner/javatests/androidx/test/filters/BUILD similarity index 70% rename from runner/android_junit_runner/javatests/androidx/test/internal/runner/filters/BUILD rename to runner/android_junit_runner/javatests/androidx/test/filters/BUILD index f952cdb27..e655b909b 100644 --- a/runner/android_junit_runner/javatests/androidx/test/internal/runner/filters/BUILD +++ b/runner/android_junit_runner/javatests/androidx/test/filters/BUILD @@ -1,8 +1,8 @@ # Description: Tests for Runner load( - "//build_extensions:android_library_test.bzl", - "axt_android_library_test", + "//build_extensions:axt_android_local_test.bzl", + "axt_android_local_test", ) package( @@ -12,7 +12,7 @@ package( licenses(["notice"]) -axt_android_library_test( +axt_android_local_test( name = "TestsRegExFilterTest", srcs = [ "TestsRegExFilterTest.java", @@ -20,9 +20,8 @@ axt_android_library_test( deps = [ "//core", "//ext/junit", - "//runner/android_junit_runner", + "//runner/android_junit_runner/java/androidx/test:filters", "//runner/android_junit_runner/javatests/androidx/test/testing/fixtures", "@maven//:com_google_truth_truth", - "@maven//:junit_junit", ], ) diff --git a/runner/android_junit_runner/javatests/androidx/test/internal/runner/filters/TestsRegExFilterTest.java b/runner/android_junit_runner/javatests/androidx/test/filters/TestsRegExFilterTest.java similarity index 77% rename from runner/android_junit_runner/javatests/androidx/test/internal/runner/filters/TestsRegExFilterTest.java rename to runner/android_junit_runner/javatests/androidx/test/filters/TestsRegExFilterTest.java index 784a89151..fdc7f978f 100644 --- a/runner/android_junit_runner/javatests/androidx/test/internal/runner/filters/TestsRegExFilterTest.java +++ b/runner/android_junit_runner/javatests/androidx/test/filters/TestsRegExFilterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package androidx.test.internal.runner.filters; +package androidx.test.filters; import static com.google.common.truth.Truth.assertThat; @@ -30,7 +30,7 @@ public static class TestFixture {} @Test public void emptyPasses() { - TestsRegExFilter filter = new TestsRegExFilter(); + androidx.test.filters.TestsRegExFilter filter = new androidx.test.filters.TestsRegExFilter(); Description d = Description.createTestDescription(TestFixture.class, "any"); ; assertThat(filter.evaluateTest(d)).isTrue(); @@ -38,7 +38,7 @@ public void emptyPasses() { @Test public void partialClassName() { - TestsRegExFilter filter = new TestsRegExFilter(); + androidx.test.filters.TestsRegExFilter filter = new androidx.test.filters.TestsRegExFilter(); filter.setPattern("TestFixture"); Description d = Description.createTestDescription(TestFixture.class, "any"); @@ -47,7 +47,7 @@ public void partialClassName() { @Test public void partialClassName_noMatch() { - TestsRegExFilter filter = new TestsRegExFilter(); + androidx.test.filters.TestsRegExFilter filter = new androidx.test.filters.TestsRegExFilter(); filter.setPattern("NotTheClassImLookingFor"); Description d = Description.createTestDescription(TestFixture.class, "any"); @@ -56,8 +56,8 @@ public void partialClassName_noMatch() { @Test public void packageMatch() { - TestsRegExFilter filter = new TestsRegExFilter(); - filter.setPattern("androidx.test.internal.runner.filters"); + androidx.test.filters.TestsRegExFilter filter = new androidx.test.filters.TestsRegExFilter(); + filter.setPattern("androidx.test.filters"); Description d = Description.createTestDescription(TestFixture.class, "any"); assertThat(filter.evaluateTest(d)).isTrue(); @@ -65,8 +65,8 @@ public void packageMatch() { @Test public void package_noMatch() { - TestsRegExFilter filter = new TestsRegExFilter(); - filter.setPattern("androidx.test.internal.runner.filters.notit"); + androidx.test.filters.TestsRegExFilter filter = new androidx.test.filters.TestsRegExFilter(); + filter.setPattern("androidx.test.filters.notit"); Description d = Description.createTestDescription(TestFixture.class, "any"); assertThat(filter.evaluateTest(d)).isFalse(); @@ -74,7 +74,7 @@ public void package_noMatch() { @Test public void methodMatch() { - TestsRegExFilter filter = new TestsRegExFilter(); + androidx.test.filters.TestsRegExFilter filter = new androidx.test.filters.TestsRegExFilter(); filter.setPattern("TestFixture#any"); Description d = Description.createTestDescription(TestFixture.class, "any"); @@ -87,7 +87,7 @@ public void methodMatch() { @Test public void methodOrMatch() { - TestsRegExFilter filter = new TestsRegExFilter(); + androidx.test.filters.TestsRegExFilter filter = new TestsRegExFilter(); filter.setPattern("TestFixture#any|TestFixture#excluded"); Description d = Description.createTestDescription(TestFixture.class, "any");