diff options
| author | 2023-12-18 14:03:59 -0800 | |
|---|---|---|
| committer | 2023-12-18 14:03:59 -0800 | |
| commit | 8bcc6281c8d86b4df15df697b5bf3e26f9deecd2 (patch) | |
| tree | c9398f8a4147b7d7ac8416b5a86c60a2fa6c680a | |
| parent | 1c668cf2b32c7bb5b642a8ca91a4b5e4d17fc7d8 (diff) | |
Clean up HostStubGen directory
Remove obsolete directories
Test: ./scripts/run-all-tests.sh
Bug: 292141694
Change-Id: I2124831ed61f50effca80c64005eb0933fd87016
24 files changed, 9 insertions, 1450 deletions
diff --git a/Ravenwood.bp b/Ravenwood.bp index 03f3f0f3d61d..f330ad14ea57 100644 --- a/Ravenwood.bp +++ b/Ravenwood.bp @@ -65,7 +65,7 @@ java_genrule { // depend on it. java_genrule { name: "framework-minus-apex.ravenwood", - defaults: ["hoststubgen-for-prototype-only-genrule"], + defaults: ["ravenwood-internal-only-visibility-genrule"], cmd: "cp $(in) $(out)", srcs: [ ":framework-minus-apex.ravenwood-base{ravenwood.jar}", diff --git a/tools/hoststubgen/README.md b/tools/hoststubgen/README.md index 3455b0af4360..1a895dc7dfce 100644 --- a/tools/hoststubgen/README.md +++ b/tools/hoststubgen/README.md @@ -34,11 +34,6 @@ AndroidHeuristicsFilter has hardcoded heuristics to detect AIDL generated classe - `test-tiny-framework/` See `README.md` in it. - - `test-framework` - This directory was used during the prototype phase, but now that we have real ravenwood tests, - this directory is obsolete and should be deleted. - - - `scripts` - `dump-jar.sh` diff --git a/tools/hoststubgen/hoststubgen/Android.bp b/tools/hoststubgen/hoststubgen/Android.bp index 4eac361d6e53..57bcc04a8aec 100644 --- a/tools/hoststubgen/hoststubgen/Android.bp +++ b/tools/hoststubgen/hoststubgen/Android.bp @@ -9,7 +9,7 @@ package { // Visibility only for ravenwood prototype uses. genrule_defaults { - name: "hoststubgen-for-prototype-only-genrule", + name: "ravenwood-internal-only-visibility-genrule", visibility: [ ":__subpackages__", "//frameworks/base", @@ -19,7 +19,7 @@ genrule_defaults { // Visibility only for ravenwood prototype uses. java_defaults { - name: "hoststubgen-for-prototype-only-java", + name: "ravenwood-internal-only-visibility-java", visibility: [ ":__subpackages__", "//frameworks/base", @@ -29,7 +29,7 @@ java_defaults { // Visibility only for ravenwood prototype uses. filegroup_defaults { - name: "hoststubgen-for-prototype-only-filegroup", + name: "ravenwood-internal-only-visibility-filegroup", visibility: [ ":__subpackages__", "//frameworks/base", @@ -41,7 +41,7 @@ filegroup_defaults { // This is only for the prototype. The productionized version is "ravenwood-annotations". java_library { name: "hoststubgen-annotations", - defaults: ["hoststubgen-for-prototype-only-java"], + defaults: ["ravenwood-internal-only-visibility-java"], srcs: [ "annotations-src/**/*.java", ], @@ -115,7 +115,7 @@ java_test_host { // This is only for the prototype. The productionized version is "ravenwood-standard-options". filegroup { name: "hoststubgen-standard-options", - defaults: ["hoststubgen-for-prototype-only-filegroup"], + defaults: ["ravenwood-internal-only-visibility-filegroup"], srcs: [ "hoststubgen-standard-options.txt", ], @@ -153,149 +153,25 @@ genrule_defaults { ], } -// Generate the stub/impl from framework-all, with hidden APIs. -java_genrule_host { - name: "framework-all-hidden-api-host", - defaults: ["hoststubgen-command-defaults"], - cmd: hoststubgen_common_options + - "--in-jar $(location :framework-all) " + - "--policy-override-file $(location framework-policy-override.txt) ", - srcs: [ - ":framework-all", - "framework-policy-override.txt", - ], - visibility: ["//visibility:private"], -} - -// Extract the stub jar from "framework-all-host" for subsequent build rules. -// This is only for the prototype. Do not use it in "productionized" build rules. -java_genrule_host { - name: "framework-all-hidden-api-host-stub", - defaults: ["hoststubgen-for-prototype-only-genrule"], - cmd: "cp $(in) $(out)", - srcs: [ - ":framework-all-hidden-api-host{host_stub.jar}", - ], - out: [ - "host_stub.jar", - ], -} - -// Extract the impl jar from "framework-all-host" for subsequent build rules. -// This is only for the prototype. Do not use it in "productionized" build rules. -java_genrule_host { - name: "framework-all-hidden-api-host-impl", - defaults: ["hoststubgen-for-prototype-only-genrule"], - cmd: "cp $(in) $(out)", - srcs: [ - ":framework-all-hidden-api-host{host_impl.jar}", - ], - out: [ - "host_impl.jar", - ], -} - -// Generate the stub/impl from framework-all, with only public/system/test APIs, without -// hidden APIs. -// This is only for the prototype. Do not use it in "productionized" build rules. -java_genrule_host { - name: "framework-all-test-api-host", - defaults: ["hoststubgen-command-defaults"], - cmd: hoststubgen_common_options + - "--intersect-stub-jar $(location :android_test_stubs_current{.jar}) " + - "--in-jar $(location :framework-all) " + - "--policy-override-file $(location framework-policy-override.txt) ", - srcs: [ - ":framework-all", - ":android_test_stubs_current{.jar}", - "framework-policy-override.txt", - ], - visibility: ["//visibility:private"], -} - -// Extract the stub jar from "framework-all-test-api-host" for subsequent build rules. -// This is only for the prototype. Do not use it in "productionized" build rules. -java_genrule_host { - name: "framework-all-test-api-host-stub", - defaults: ["hoststubgen-for-prototype-only-genrule"], - cmd: "cp $(in) $(out)", - srcs: [ - ":framework-all-test-api-host{host_stub.jar}", - ], - out: [ - "host_stub.jar", - ], -} - -// Extract the impl jar from "framework-all-test-api-host" for subsequent build rules. -// This is only for the prototype. Do not use it in "productionized" build rules. -java_genrule_host { - name: "framework-all-test-api-host-impl", - defaults: ["hoststubgen-for-prototype-only-genrule"], - cmd: "cp $(in) $(out)", - srcs: [ - ":framework-all-test-api-host{host_impl.jar}", - ], - out: [ - "host_impl.jar", - ], -} - -// This library contains helper classes to build hostside tests/targets. -// This essentially contains dependencies from tests that we can't actually use the real ones. -// For example, the actual AndroidTestCase and AndroidJUnit4 don't run on the host side (yet), -// so we pup "fake" implementations here. -// Ideally this library should be empty. -java_library_host { - name: "hoststubgen-helper-framework-buildtime", - defaults: ["hoststubgen-for-prototype-only-java"], - srcs: [ - "helper-framework-buildtime-src/**/*.java", - ], - libs: [ - // We need it to pull in some of the framework classes used in this library, - // such as Context.java. - "framework-all-hidden-api-host-impl", - "junit", - ], -} - -// This module contains "fake" libcore/dalvik classes, framework native substitution, etc, -// that are needed at runtime. -java_library_host { - name: "hoststubgen-helper-framework-runtime", - defaults: ["hoststubgen-for-prototype-only-java"], - srcs: [ - "helper-framework-runtime-src/**/*.java", - ], - exclude_srcs: [ - "helper-framework-runtime-src/framework/com/android/hoststubgen/nativesubstitution/CursorWindow_host.java", - ], - libs: [ - "hoststubgen-helper-runtime", - "framework-all-hidden-api-host-impl", - ], -} - java_library_host { name: "hoststubgen-helper-libcore-runtime", - defaults: ["hoststubgen-for-prototype-only-java"], srcs: [ "helper-framework-runtime-src/libcore-fake/**/*.java", ], + visibility: ["//visibility:private"], } java_host_for_device { name: "hoststubgen-helper-libcore-runtime.ravenwood", - defaults: ["hoststubgen-for-prototype-only-java"], libs: [ "hoststubgen-helper-libcore-runtime", ], + visibility: ["//visibility:private"], } java_library { name: "hoststubgen-helper-framework-runtime.ravenwood", - defaults: ["hoststubgen-for-prototype-only-java"], + defaults: ["ravenwood-internal-only-visibility-java"], srcs: [ "helper-framework-runtime-src/framework/**/*.java", ], @@ -308,88 +184,3 @@ java_library { "hoststubgen-helper-libcore-runtime.ravenwood", ], } - -// Defaults for host side test modules. -// We need two rules for each test. -// 1. A "-test-lib" jar, which compiles the test against the stub jar. -// This one is only used by the second rule, so it should be "private. -// 2. A "-test" jar, which includes 1 + the runtime (impl) jars. - -// This and next ones are for tests using framework-app, with hidden APIs. -java_defaults { - name: "hosttest-with-framework-all-hidden-api-test-lib-defaults", - installable: false, - libs: [ - "framework-all-hidden-api-host-stub", - ], - static_libs: [ - "hoststubgen-helper-framework-buildtime", - "framework-annotations-lib", - ], - visibility: ["//visibility:private"], -} - -// Default rules to include `libandroid_runtime`. For now, it's empty, but we'll use it -// once we start using JNI. -java_defaults { - name: "hosttest-with-libandroid_runtime", - jni_libs: [ - // "libandroid_runtime", - - // TODO: Figure out how to build them automatically. - // Following ones are depended by libandroid_runtime. - // Without listing them here, not only we won't get them under - // $ANDROID_HOST_OUT/testcases/*/lib64, but also not under - // $ANDROID_HOST_OUT/lib64, so we'd fail to load them at runtime. - // ($ANDROID_HOST_OUT/lib/ gets all of them though.) - // "libcutils", - // "libharfbuzz_ng", - // "libminikin", - // "libz", - // "libbinder", - // "libhidlbase", - // "libvintf", - // "libicu", - // "libutils", - // "libtinyxml2", - ], -} - -java_defaults { - name: "hosttest-with-framework-all-hidden-api-test-defaults", - defaults: ["hosttest-with-libandroid_runtime"], - installable: false, - test_config: "AndroidTest-host.xml", - static_libs: [ - "hoststubgen-helper-runtime", - "hoststubgen-helper-framework-runtime", - "framework-all-hidden-api-host-impl", - ], -} - -// This and next ones are for tests using framework-app, with public/system/test APIs, -// without hidden APIs. -java_defaults { - name: "hosttest-with-framework-all-test-api-test-lib-defaults", - installable: false, - libs: [ - "framework-all-test-api-host-stub", - ], - static_libs: [ - "hoststubgen-helper-framework-buildtime", - "framework-annotations-lib", - ], - visibility: ["//visibility:private"], -} - -java_defaults { - name: "hosttest-with-framework-all-test-api-test-defaults", - defaults: ["hosttest-with-libandroid_runtime"], - installable: false, - test_config: "AndroidTest-host.xml", - static_libs: [ - "hoststubgen-helper-runtime", - "hoststubgen-helper-framework-runtime", - "framework-all-test-api-host-impl", - ], -} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/android/test/AndroidTestCase.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/android/test/AndroidTestCase.java deleted file mode 100644 index e6d38668335a..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/android/test/AndroidTestCase.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * 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 android.test; - -import android.content.Context; - -import junit.framework.TestCase; - -public class AndroidTestCase extends TestCase { - protected Context mContext; - public Context getContext() { - throw new RuntimeException("[ravenwood] Class Context is not supported yet."); - } -} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/annotation/NonNull.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/annotation/NonNull.java deleted file mode 100644 index 51c5d9a05e52..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/annotation/NonNull.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * 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 androidx.annotation; - -// [ravenwood] TODO: Find the actual androidx jar containing it.s - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.SOURCE; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Denotes that a parameter, field or method return value can never be null. - * <p> - * This is a marker annotation and it has no specific attributes. - * - * @paramDoc This value cannot be {@code null}. - * @returnDoc This value cannot be {@code null}. - * @hide - */ -@Retention(SOURCE) -@Target({METHOD, PARAMETER, FIELD}) -public @interface NonNull { -} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/annotation/Nullable.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/annotation/Nullable.java deleted file mode 100644 index f1f0e8b43f16..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/annotation/Nullable.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * 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 androidx.annotation; - -// [ravenwood] TODO: Find the actual androidx jar containing it.s - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.SOURCE; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Denotes that a parameter, field or method return value can be null. - * <p> - * When decorating a method call parameter, this denotes that the parameter can - * legitimately be null and the method will gracefully deal with it. Typically - * used on optional parameters. - * <p> - * When decorating a method, this denotes the method might legitimately return - * null. - * <p> - * This is a marker annotation and it has no specific attributes. - * - * @paramDoc This value may be {@code null}. - * @returnDoc This value may be {@code null}. - * @hide - */ -@Retention(SOURCE) -@Target({METHOD, PARAMETER, FIELD}) -public @interface Nullable { -} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/ext/junit/runners/AndroidJUnit4.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/ext/junit/runners/AndroidJUnit4.java deleted file mode 100644 index 0c82e4e268d3..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/ext/junit/runners/AndroidJUnit4.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * 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 androidx.test.ext.junit.runners; - -import org.junit.runners.BlockJUnit4ClassRunner; -import org.junit.runners.model.InitializationError; - -// TODO: We need to simulate the androidx test runner. -// https://source.corp.google.com/piper///depot/google3/third_party/android/androidx_test/ext/junit/java/androidx/test/ext/junit/runners/AndroidJUnit4.java -// https://source.corp.google.com/piper///depot/google3/third_party/android/androidx_test/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/AndroidJUnit4ClassRunner.java - -public class AndroidJUnit4 extends BlockJUnit4ClassRunner { - public AndroidJUnit4(Class<?> testClass) throws InitializationError { - super(testClass); - } -} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/FlakyTest.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/FlakyTest.java deleted file mode 100644 index 2470d8390f5d..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/FlakyTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * 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 androidx.test.filters; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Designates a test as being flaky (non-deterministic). - * - * <p>Can then be used to filter tests on execution using -e annotation or -e notAnnotation as - * desired. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.TYPE}) -public @interface FlakyTest { - /** - * An optional bug number associated with the test. -1 Means that no bug number is associated with - * the flaky annotation. - * - * @return int - */ - int bugId() default -1; - - /** - * Details, such as the reason of why the test is flaky. - * - * @return String - */ - String detail() default ""; -} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/LargeTest.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/LargeTest.java deleted file mode 100644 index 578d7dc73647..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/LargeTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * 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 androidx.test.filters; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to assign a large test size qualifier to a test. This annotation can be used at a - * method or class level. - * - * <p>Test size qualifiers are a great way to structure test code and are used to assign a test to a - * test suite of similar run time. - * - * <p>Execution time: >1000ms - * - * <p>Large tests should be focused on testing integration of all application components. These - * tests fully participate in the system and may make use of all resources such as databases, file - * systems and network. As a rule of thumb most functional UI tests are large tests. - * - * <p>Note: This class replaces the deprecated Android platform size qualifier <a - * href="{@docRoot}reference/android/test/suitebuilder/annotation/LargeTest.html"><code> - * android.test.suitebuilder.annotation.LargeTest</code></a> and is the recommended way to annotate - * tests written with the AndroidX Test Library. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.TYPE}) -public @interface LargeTest {} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/MediumTest.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/MediumTest.java deleted file mode 100644 index dfdaa53ee6ac..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/MediumTest.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * 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 androidx.test.filters; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to assign a medium test size qualifier to a test. This annotation can be used at a - * method or class level. - * - * <p>Test size qualifiers are a great way to structure test code and are used to assign a test to a - * test suite of similar run time. - * - * <p>Execution time: <1000ms - * - * <p>Medium tests should be focused on a very limited subset of components or a single component. - * Resource access to the file system through well defined interfaces like databases, - * ContentProviders, or Context is permitted. Network access should be restricted, (long-running) - * blocking operations should be avoided and use mock objects instead. - * - * <p>Note: This class replaces the deprecated Android platform size qualifier <a - * href="{@docRoot}reference/android/test/suitebuilder/annotation/MediumTest.html"><code> - * android.test.suitebuilder.annotation.MediumTest</code></a> and is the recommended way to annotate - * tests written with the AndroidX Test Library. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.TYPE}) -public @interface MediumTest {} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/RequiresDevice.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/RequiresDevice.java deleted file mode 100644 index 3d3ee3318bfa..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/RequiresDevice.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * 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 androidx.test.filters; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Indicates that a specific test should not be run on emulator. - * - * <p>It will be executed only if the test is running on the physical android device. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.TYPE, ElementType.METHOD}) -public @interface RequiresDevice {} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/SdkSuppress.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/SdkSuppress.java deleted file mode 100644 index dd65ddb382dc..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/SdkSuppress.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * 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 androidx.test.filters; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Indicates that a specific test or class requires a minimum or maximum API Level to execute. - * - * <p>Test(s) will be skipped when executed on android platforms less/more than specified level - * (inclusive). - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.TYPE, ElementType.METHOD}) -public @interface SdkSuppress { - /** The minimum API level to execute (inclusive) */ - int minSdkVersion() default 1; - /** The maximum API level to execute (inclusive) */ - int maxSdkVersion() default Integer.MAX_VALUE; - /** - * The {@link android.os.Build.VERSION.CODENAME} to execute on. This is intended to be used to run - * on a pre-release SDK, where the {@link android.os.Build.VERSION.SDK_INT} has not yet been - * finalized. This is treated as an OR operation with respect to the minSdkVersion and - * maxSdkVersion attributes. - * - * <p>For example, to filter a test so it runs on only the prerelease R SDK: <code> - * {@literal @}SdkSuppress(minSdkVersion = Build.VERSION_CODES.R, codeName = "R") - * </code> - */ - String codeName() default "unset"; -} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/SmallTest.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/SmallTest.java deleted file mode 100644 index dd32df44effe..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/SmallTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * 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 androidx.test.filters; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to assign a small test size qualifier to a test. This annotation can be used at a - * method or class level. - * - * <p>Test size qualifiers are a great way to structure test code and are used to assign a test to a - * test suite of similar run time. - * - * <p>Execution time: <200ms - * - * <p>Small tests should be run very frequently. Focused on units of code to verify specific logical - * conditions. These tests should runs in an isolated environment and use mock objects for external - * dependencies. Resource access (such as file system, network, or databases) are not permitted. - * Tests that interact with hardware, make binder calls, or that facilitate android instrumentation - * should not use this annotation. - * - * <p>Note: This class replaces the deprecated Android platform size qualifier <a - * href="http://developer.android.com/reference/android/test/suitebuilder/annotation/SmallTest.html"> - * android.test.suitebuilder.annotation.SmallTest</a> and is the recommended way to annotate tests - * written with the AndroidX Test Library. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.TYPE}) -public @interface SmallTest {} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/Suppress.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/Suppress.java deleted file mode 100644 index 88e636c2dd77..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/filters/Suppress.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * 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 androidx.test.filters; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Use this annotation on test classes or test methods that should not be included in a test suite. - * If the annotation appears on the class then no tests in that class will be included. If the - * annotation appears only on a test method then only that method will be excluded. - * - * <p>Note: This class replaces the deprecated Android platform annotation <a - * href="http://developer.android.com/reference/android/test/suitebuilder/annotation/Suppress.html"> - * android.test.suitebuilder.annotation.Suppress</a> and is the recommended way to suppress tests - * written with the AndroidX Test Library. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.TYPE}) -public @interface Suppress {} diff --git a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/runner/AndroidJUnit4.java b/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/runner/AndroidJUnit4.java deleted file mode 100644 index e1379390f98b..000000000000 --- a/tools/hoststubgen/hoststubgen/helper-framework-buildtime-src/androidx/test/runner/AndroidJUnit4.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * 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 androidx.test.runner; - -import org.junit.runners.model.InitializationError; - -public class AndroidJUnit4 extends androidx.test.ext.junit.runners.AndroidJUnit4 { - public AndroidJUnit4(Class<?> testClass) throws InitializationError { - super(testClass); - } -} diff --git a/tools/hoststubgen/hoststubgen/test-framework/Android.bp b/tools/hoststubgen/hoststubgen/test-framework/Android.bp deleted file mode 100644 index 2b91cc161b7f..000000000000 --- a/tools/hoststubgen/hoststubgen/test-framework/Android.bp +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2023 The Android Open Source Project -// -// 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 { - default_applicable_licenses: ["Android-Apache-2.0"], -} - -build = ["AndroidHostTest.bp"] diff --git a/tools/hoststubgen/hoststubgen/test-framework/AndroidHostTest.bp b/tools/hoststubgen/hoststubgen/test-framework/AndroidHostTest.bp deleted file mode 100644 index 1f8382ad468d..000000000000 --- a/tools/hoststubgen/hoststubgen/test-framework/AndroidHostTest.bp +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (C) 2023 The Android Open Source Project -// -// 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. - -// Add `build = ["AndroidHostTest.bp"]` to Android.bp to include this file. - -// Compile the test jar, using 2 rules. -// 1. Build the test against the stub. -java_library_host { - name: "HostStubGenTest-framework-test-host-test-lib", - defaults: ["hosttest-with-framework-all-hidden-api-test-lib-defaults"], - srcs: [ - "src/**/*.java", - ], - static_libs: [ - "junit", - "truth", - "mockito", - - // http://cs/h/googleplex-android/platform/superproject/main/+/main:platform_testing/libraries/annotations/src/android/platform/test/annotations/ - "platform-test-annotations", - "hoststubgen-annotations", - ], -} - -// 2. Link the above module with necessary runtime dependencies, so it can be executed stand-alone. -java_test_host { - name: "HostStubGenTest-framework-all-test-host-test", - defaults: ["hosttest-with-framework-all-hidden-api-test-defaults"], - static_libs: [ - "HostStubGenTest-framework-test-host-test-lib", - ], - test_suites: ["general-tests"], -} - -// "Productionized" build rule. -android_ravenwood_test { - name: "HostStubGenTest-framework-test", - srcs: [ - "src/**/*.java", - ], - static_libs: [ - "junit", - "truth", - "mockito", - ], -} diff --git a/tools/hoststubgen/hoststubgen/test-framework/AndroidTest-host.xml b/tools/hoststubgen/hoststubgen/test-framework/AndroidTest-host.xml deleted file mode 100644 index f35dcf69ecc9..000000000000 --- a/tools/hoststubgen/hoststubgen/test-framework/AndroidTest-host.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2023 The Android Open Source Project - - 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. ---> - -<!-- [Ravenwood] Copied from $ANDROID_BUILD_TOP/cts/hostsidetests/devicepolicy/AndroidTest.xml --> -<configuration description="CtsContentTestCases host-side test"> - <option name="test-suite-tag" value="ravenwood" /> - <option name="config-descriptor:metadata" key="component" value="framework" /> - <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" /> - <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" /> - <option name="config-descriptor:metadata" key="parameter" value="not_secondary_user" /> - <option name="config-descriptor:metadata" key="parameter" value="no_foldable_states" /> - - <test class="com.android.tradefed.testtype.IsolatedHostTest" > - <option name="jar" value="HostStubGenTest-framework-all-test-host-test.jar" /> - </test> -</configuration> diff --git a/tools/hoststubgen/hoststubgen/test-framework/README.md b/tools/hoststubgen/hoststubgen/test-framework/README.md deleted file mode 100644 index 26a9ad13f746..000000000000 --- a/tools/hoststubgen/hoststubgen/test-framework/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# HostStubGen: (obsolete) real framework test - -This directory contains tests against the actual framework.jar code. The tests were -copied from somewhere else in the android tree. We use this directory to quickly run existing -tests. - -This directory was used during the prototype phase, but now that we have real ravenwood tests, -this directory is obsolete and should be deleted. - -## How to run - -- With `atest`. This is the proper way to run it, but it may fail due to atest's known problems. - -``` -$ atest HostStubGenTest-framework-all-test-host-test -``` - -- Advanced option: `run-test-without-atest.sh` runs the test without using `atest` - -``` -$ ./run-test-without-atest.sh -```
\ No newline at end of file diff --git a/tools/hoststubgen/hoststubgen/test-framework/run-test-without-atest.sh b/tools/hoststubgen/hoststubgen/test-framework/run-test-without-atest.sh deleted file mode 100755 index cfc06a12e881..000000000000 --- a/tools/hoststubgen/hoststubgen/test-framework/run-test-without-atest.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -# Copyright (C) 2023 The Android Open Source Project -# -# 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. - -# Run HostStubGenTest-framework-test-host-test directly with JUnit. -# (without using atest.) - -source "${0%/*}"/../../common.sh - - -# Options: -# -v enable verbose log -# -d enable debugger - -verbose=0 -debug=0 -while getopts "vd" opt; do - case "$opt" in - v) verbose=1 ;; - d) debug=1 ;; - esac -done -shift $(($OPTIND - 1)) - - -if (( $verbose )) ; then - JAVA_OPTS="$JAVA_OPTS -verbose:class" -fi - -if (( $debug )) ; then - JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8700" -fi - -#======================================= -module=HostStubGenTest-framework-all-test-host-test -module_jar=$ANDROID_BUILD_TOP/out/host/linux-x86/testcases/$module/$module.jar -run m $module - -out=out - -rm -fr $out -mkdir -p $out - - -# Copy and extract the relevant jar files so we can look into them. -run cp \ - $module_jar \ - $SOONG_INT/frameworks/base/tools/hoststubgen/hoststubgen/framework-all-hidden-api-host/linux_glibc_common/gen/*.jar \ - $out - -run extract $out/*.jar - -# Result is the number of failed tests. -result=0 - - -# This suite runs all tests in the JAR. -tests=(com.android.hoststubgen.hosthelper.HostTestSuite) - -# Uncomment this to run a specific test. -# tests=(com.android.hoststubgen.frameworktest.LogTest) - - -for class in ${tests[@]} ; do - echo "Running $class ..." - - run cd "${module_jar%/*}" - run $JAVA $JAVA_OPTS \ - -cp $module_jar \ - org.junit.runner.JUnitCore \ - $class || result=$(( $result + 1 )) -done - -exit $result diff --git a/tools/hoststubgen/hoststubgen/test-framework/src/com/android/hoststubgen/frameworktest/ArrayMapTest.java b/tools/hoststubgen/hoststubgen/test-framework/src/com/android/hoststubgen/frameworktest/ArrayMapTest.java deleted file mode 100644 index 2c5949c1c630..000000000000 --- a/tools/hoststubgen/hoststubgen/test-framework/src/com/android/hoststubgen/frameworktest/ArrayMapTest.java +++ /dev/null @@ -1,472 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * 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.android.hoststubgen.frameworktest; - -// [ravewnwood] Copied from cts/, and commented out unsupported stuff. - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import android.util.ArrayMap; -import android.util.Log; - -import org.junit.Test; - -import java.util.AbstractMap; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; -import java.util.NoSuchElementException; -import java.util.Set; -import java.util.function.BiFunction; - -/** - * Some basic tests for {@link android.util.ArrayMap}. - */ -public class ArrayMapTest { - static final boolean DEBUG = false; - - private static boolean compare(Object v1, Object v2) { - if (v1 == null) { - return v2 == null; - } - if (v2 == null) { - return false; - } - return v1.equals(v2); - } - - private static void compareMaps(HashMap map, ArrayMap array) { - if (map.size() != array.size()) { - fail("Bad size: expected " + map.size() + ", got " + array.size()); - } - - Set<Entry> mapSet = map.entrySet(); - for (Map.Entry entry : mapSet) { - Object expValue = entry.getValue(); - Object gotValue = array.get(entry.getKey()); - if (!compare(expValue, gotValue)) { - fail("Bad value: expected " + expValue + ", got " + gotValue - + " at key " + entry.getKey()); - } - } - - for (int i = 0; i < array.size(); i++) { - Object gotValue = array.valueAt(i); - Object key = array.keyAt(i); - Object expValue = map.get(key); - if (!compare(expValue, gotValue)) { - fail("Bad value: expected " + expValue + ", got " + gotValue - + " at key " + key); - } - } - - if (map.entrySet().hashCode() != array.entrySet().hashCode()) { - fail("Entry set hash codes differ: map=0x" - + Integer.toHexString(map.entrySet().hashCode()) + " array=0x" - + Integer.toHexString(array.entrySet().hashCode())); - } - - if (!map.entrySet().equals(array.entrySet())) { - fail("Failed calling equals on map entry set against array set"); - } - - if (!array.entrySet().equals(map.entrySet())) { - fail("Failed calling equals on array entry set against map set"); - } - - if (map.keySet().hashCode() != array.keySet().hashCode()) { - fail("Key set hash codes differ: map=0x" - + Integer.toHexString(map.keySet().hashCode()) + " array=0x" - + Integer.toHexString(array.keySet().hashCode())); - } - - if (!map.keySet().equals(array.keySet())) { - fail("Failed calling equals on map key set against array set"); - } - - if (!array.keySet().equals(map.keySet())) { - fail("Failed calling equals on array key set against map set"); - } - - if (!map.keySet().containsAll(array.keySet())) { - fail("Failed map key set contains all of array key set"); - } - - if (!array.keySet().containsAll(map.keySet())) { - fail("Failed array key set contains all of map key set"); - } - - if (!array.containsAll(map.keySet())) { - fail("Failed array contains all of map key set"); - } - - if (!map.entrySet().containsAll(array.entrySet())) { - fail("Failed map entry set contains all of array entry set"); - } - - if (!array.entrySet().containsAll(map.entrySet())) { - fail("Failed array entry set contains all of map entry set"); - } - } - - private static void validateArrayMap(ArrayMap array) { - Set<Map.Entry> entrySet = array.entrySet(); - int index = 0; - Iterator<Entry> entryIt = entrySet.iterator(); - while (entryIt.hasNext()) { - Map.Entry entry = entryIt.next(); - Object value = entry.getKey(); - Object realValue = array.keyAt(index); - if (!compare(realValue, value)) { - fail("Bad array map entry set: expected key " + realValue - + ", got " + value + " at index " + index); - } - value = entry.getValue(); - realValue = array.valueAt(index); - if (!compare(realValue, value)) { - fail("Bad array map entry set: expected value " + realValue - + ", got " + value + " at index " + index); - } - index++; - } - - index = 0; - Set keySet = array.keySet(); - Iterator keyIt = keySet.iterator(); - while (keyIt.hasNext()) { - Object value = keyIt.next(); - Object realValue = array.keyAt(index); - if (!compare(realValue, value)) { - fail("Bad array map key set: expected key " + realValue - + ", got " + value + " at index " + index); - } - index++; - } - - index = 0; - Collection valueCol = array.values(); - Iterator valueIt = valueCol.iterator(); - while (valueIt.hasNext()) { - Object value = valueIt.next(); - Object realValue = array.valueAt(index); - if (!compare(realValue, value)) { - fail("Bad array map value col: expected value " + realValue - + ", got " + value + " at index " + index); - } - index++; - } - } - - private static void dump(Map map, ArrayMap array) { - Log.e("test", "HashMap of " + map.size() + " entries:"); - Set<Map.Entry> mapSet = map.entrySet(); - for (Map.Entry entry : mapSet) { - Log.e("test", " " + entry.getKey() + " -> " + entry.getValue()); - } - Log.e("test", "ArrayMap of " + array.size() + " entries:"); - for (int i = 0; i < array.size(); i++) { - Log.e("test", " " + array.keyAt(i) + " -> " + array.valueAt(i)); - } - } - - private static void dump(ArrayMap map1, ArrayMap map2) { - Log.e("test", "ArrayMap of " + map1.size() + " entries:"); - for (int i = 0; i < map1.size(); i++) { - Log.e("test", " " + map1.keyAt(i) + " -> " + map1.valueAt(i)); - } - Log.e("test", "ArrayMap of " + map2.size() + " entries:"); - for (int i = 0; i < map2.size(); i++) { - Log.e("test", " " + map2.keyAt(i) + " -> " + map2.valueAt(i)); - } - } - - @Test - public void testCopyArrayMap() { - // map copy constructor test - ArrayMap newMap = new ArrayMap<Integer, String>(); - for (int i = 0; i < 10; ++i) { - newMap.put(i, String.valueOf(i)); - } - ArrayMap mapCopy = new ArrayMap(newMap); - if (!compare(mapCopy, newMap)) { - String msg = "ArrayMap copy constructor failure: expected " + - newMap + ", got " + mapCopy; - Log.e("test", msg); - dump(newMap, mapCopy); - fail(msg); - return; - } - } - - @Test - public void testEqualsArrayMap() { - ArrayMap<Integer, String> map1 = new ArrayMap<>(); - ArrayMap<Integer, String> map2 = new ArrayMap<>(); - HashMap<Integer, String> map3 = new HashMap<>(); - if (!compare(map1, map2) || !compare(map1, map3) || !compare(map3, map2)) { - fail("ArrayMap equals failure for empty maps " + map1 + ", " + - map2 + ", " + map3); - } - - for (int i = 0; i < 10; ++i) { - String value = String.valueOf(i); - map1.put(i, value); - map2.put(i, value); - map3.put(i, value); - } - if (!compare(map1, map2) || !compare(map1, map3) || !compare(map3, map2)) { - fail("ArrayMap equals failure for populated maps " + map1 + ", " + - map2 + ", " + map3); - } - - map1.remove(0); - if (compare(map1, map2) || compare(map1, map3) || compare(map3, map1)) { - fail("ArrayMap equals failure for map size " + map1 + ", " + - map2 + ", " + map3); - } - - map1.put(0, "-1"); - if (compare(map1, map2) || compare(map1, map3) || compare(map3, map1)) { - fail("ArrayMap equals failure for map contents " + map1 + ", " + - map2 + ", " + map3); - } - } - - private static void checkEntrySetToArray(ArrayMap<?, ?> testMap) { - try { - testMap.entrySet().toArray(); - fail(); - } catch (UnsupportedOperationException expected) { - } - - try { - Map.Entry<?, ?>[] entries = new Map.Entry[20]; - testMap.entrySet().toArray(entries); - fail(); - } catch (UnsupportedOperationException expected) { - } - } - - // http://b/32294038, Test ArrayMap.entrySet().toArray() - @Test - public void testEntrySetArray() { - // Create - ArrayMap<Integer, String> testMap = new ArrayMap<>(); - - // Test empty - checkEntrySetToArray(testMap); - - // Test non-empty - for (int i = 0; i < 10; ++i) { - testMap.put(i, String.valueOf(i)); - } - checkEntrySetToArray(testMap); - } - - @Test - public void testCanNotIteratePastEnd_entrySetIterator() { - Map<String, String> map = new ArrayMap<>(); - map.put("key 1", "value 1"); - map.put("key 2", "value 2"); - Set<Map.Entry<String, String>> expectedEntriesToIterate = new HashSet<>(Arrays.asList( - entryOf("key 1", "value 1"), - entryOf("key 2", "value 2") - )); - Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); - - // Assert iteration over the expected two entries in any order - assertTrue(iterator.hasNext()); - Map.Entry<String, String> firstEntry = copyOf(iterator.next()); - assertTrue(expectedEntriesToIterate.remove(firstEntry)); - - assertTrue(iterator.hasNext()); - Map.Entry<String, String> secondEntry = copyOf(iterator.next()); - assertTrue(expectedEntriesToIterate.remove(secondEntry)); - - assertFalse(iterator.hasNext()); - - try { - iterator.next(); - fail(); - } catch (NoSuchElementException expected) { - } - } - - private static <K, V> Map.Entry<K, V> entryOf(K key, V value) { - return new AbstractMap.SimpleEntry<>(key, value); - } - - private static <K, V> Map.Entry<K, V> copyOf(Map.Entry<K, V> entry) { - return entryOf(entry.getKey(), entry.getValue()); - } - - @Test - public void testCanNotIteratePastEnd_keySetIterator() { - Map<String, String> map = new ArrayMap<>(); - map.put("key 1", "value 1"); - map.put("key 2", "value 2"); - Set<String> expectedKeysToIterate = new HashSet<>(Arrays.asList("key 1", "key 2")); - Iterator<String> iterator = map.keySet().iterator(); - - // Assert iteration over the expected two keys in any order - assertTrue(iterator.hasNext()); - String firstKey = iterator.next(); - assertTrue(expectedKeysToIterate.remove(firstKey)); - - assertTrue(iterator.hasNext()); - String secondKey = iterator.next(); - assertTrue(expectedKeysToIterate.remove(secondKey)); - - assertFalse(iterator.hasNext()); - - try { - iterator.next(); - fail(); - } catch (NoSuchElementException expected) { - } - } - - @Test - public void testCanNotIteratePastEnd_valuesIterator() { - Map<String, String> map = new ArrayMap<>(); - map.put("key 1", "value 1"); - map.put("key 2", "value 2"); - Set<String> expectedValuesToIterate = new HashSet<>(Arrays.asList("value 1", "value 2")); - Iterator<String> iterator = map.values().iterator(); - - // Assert iteration over the expected two values in any order - assertTrue(iterator.hasNext()); - String firstValue = iterator.next(); - assertTrue(expectedValuesToIterate.remove(firstValue)); - - assertTrue(iterator.hasNext()); - String secondValue = iterator.next(); - assertTrue(expectedValuesToIterate.remove(secondValue)); - - assertFalse(iterator.hasNext()); - - try { - iterator.next(); - fail(); - } catch (NoSuchElementException expected) { - } - } - - @Test - public void testForEach() { - ArrayMap<String, Integer> map = new ArrayMap<>(); - - for (int i = 0; i < 50; ++i) { - map.put(Integer.toString(i), i * 10); - } - - // Make sure forEach goes through all of the elements. - HashMap<String, Integer> seen = new HashMap<>(); - map.forEach(seen::put); - compareMaps(seen, map); - } - - /** - * The entrySet Iterator returns itself from each call to {@code next()}. This is unusual - * behavior for {@link Iterator#next()}; this test ensures that any future change to this - * behavior is deliberate. - */ - @Test - public void testUnusualBehavior_eachEntryIsSameAsIterator_entrySetIterator() { - Map<String, String> map = new ArrayMap<>(); - map.put("key 1", "value 1"); - map.put("key 2", "value 2"); - Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); - - assertSame(iterator, iterator.next()); - assertSame(iterator, iterator.next()); - } - - @SuppressWarnings("SelfEquals") - @Test - public void testUnusualBehavior_equalsThrowsAfterRemove_entrySetIterator() { - Map<String, String> map = new ArrayMap<>(); - map.put("key 1", "value 1"); - map.put("key 2", "value 2"); - Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); - iterator.next(); - iterator.remove(); - try { - iterator.equals(iterator); - fail(); - } catch (IllegalStateException expected) { - } - } - - private static <T> void assertEqualsBothWays(T a, T b) { - assertEquals(a, b); - assertEquals(b, a); - assertEquals(a.hashCode(), b.hashCode()); - } - - @Test - public void testRemoveAll() { - final ArrayMap<Integer, String> map = new ArrayMap<>(); - for (Integer i : Arrays.asList(0, 1, 2, 3, 4, 5)) { - map.put(i, i.toString()); - } - - final ArrayMap<Integer, String> expectedMap = new ArrayMap<>(); - for (Integer i : Arrays.asList(2, 4)) { - expectedMap.put(i, String.valueOf(i)); - } - map.removeAll(Arrays.asList(0, 1, 3, 5, 6)); - if (!compare(map, expectedMap)) { - fail("ArrayMap removeAll failure, expect " + expectedMap + ", but " + map); - } - - map.removeAll(Collections.emptyList()); - if (!compare(map, expectedMap)) { - fail("ArrayMap removeAll failure for empty maps, expect " + expectedMap + ", but " + - map); - } - - map.removeAll(Arrays.asList(2, 4)); - if (!map.isEmpty()) { - fail("ArrayMap removeAll failure, expect empty, but " + map); - } - } - - @Test - public void testReplaceAll() { - final ArrayMap<Integer, Integer> map = new ArrayMap<>(); - final ArrayMap<Integer, Integer> expectedMap = new ArrayMap<>(); - final BiFunction<Integer, Integer, Integer> function = (k, v) -> 2 * v; - for (Integer i : Arrays.asList(0, 1, 2, 3, 4, 5)) { - map.put(i, i); - expectedMap.put(i, 2 * i); - } - - map.replaceAll(function); - if (!compare(map, expectedMap)) { - fail("ArrayMap replaceAll failure, expect " + expectedMap + ", but " + map); - } - } -} diff --git a/tools/hoststubgen/hoststubgen/test-framework/src/com/android/hoststubgen/frameworktest/LogTest.java b/tools/hoststubgen/hoststubgen/test-framework/src/com/android/hoststubgen/frameworktest/LogTest.java deleted file mode 100644 index 3e33b54bb9f9..000000000000 --- a/tools/hoststubgen/hoststubgen/test-framework/src/com/android/hoststubgen/frameworktest/LogTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * 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.android.hoststubgen.frameworktest; - -import static com.google.common.truth.Truth.assertThat; - -import android.util.Log; - -import org.junit.Test; - -/** - * Some basic tests for {@link android.util.Log}. - */ -public class LogTest { - @Test - public void testBasicLogging() { - Log.v("TAG", "Test v log"); - Log.d("TAG", "Test d log"); - Log.i("TAG", "Test i log"); - Log.w("TAG", "Test w log"); - Log.e("TAG", "Test e log"); - } - - @Test - public void testNativeMethods() { - assertThat(Log.isLoggable("mytag", Log.INFO)).isTrue(); - } -} diff --git a/tools/hoststubgen/scripts/build-framework-hostside-jars-and-extract.sh b/tools/hoststubgen/scripts/build-framework-hostside-jars-and-extract.sh deleted file mode 100755 index 72681234dad8..000000000000 --- a/tools/hoststubgen/scripts/build-framework-hostside-jars-and-extract.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Copyright (C) 2023 The Android Open Source Project -# -# 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. - - -# Script to build `framework-host-stub` and `framework-host-impl`, and copy the -# generated jars to $out, and unzip them. Useful for looking into the generated files. - -source "${0%/*}"/../common.sh - -out=framework-all-stub-out - -rm -fr $out -mkdir -p $out - -# Build the jars with `m`. -run m framework-all-hidden-api-host - -# Copy the jar to out/ and extract them. -run cp \ - $SOONG_INT/frameworks/base/tools/hoststubgen/hoststubgen/framework-all-hidden-api-host/linux_glibc_common/gen/* \ - $out - -extract $out/*.jar diff --git a/tools/hoststubgen/scripts/run-all-tests.sh b/tools/hoststubgen/scripts/run-all-tests.sh index 222c874ac34b..a6847ae97bae 100755 --- a/tools/hoststubgen/scripts/run-all-tests.sh +++ b/tools/hoststubgen/scripts/run-all-tests.sh @@ -22,7 +22,6 @@ ATEST_ARGS="--host" # These tests are known to pass. READY_TEST_MODULES=( - HostStubGenTest-framework-all-test-host-test hoststubgen-test-tiny-test CtsUtilTestCasesRavenwood CtsOsTestCasesRavenwood # This one uses native sustitution, so let's run it too. @@ -30,7 +29,6 @@ READY_TEST_MODULES=( MUST_BUILD_MODULES=( "${NOT_READY_TEST_MODULES[*]}" - HostStubGenTest-framework-test ) # First, build all the test / etc modules. This shouldn't fail. @@ -44,11 +42,8 @@ run atest $ATEST_ARGS hoststubgentest hoststubgen-invoke-test # files, and they may fail when something changes in the build system. run ./hoststubgen/test-tiny-framework/diff-and-update-golden.sh -run ./hoststubgen/test-framework/run-test-without-atest.sh - run ./hoststubgen/test-tiny-framework/run-test-manually.sh run atest $ATEST_ARGS tiny-framework-dump-test -run ./scripts/build-framework-hostside-jars-and-extract.sh # This script is already broken on goog/master # run ./scripts/build-framework-hostside-jars-without-genrules.sh |