@Test annotated methods are running in threads like "Thread[Time-limited test,5,main]" which is created by FailOnTimeout.java, while @Before annotated setUp() is running in thread "Thread[Instr: androidx.test.runner.AndroidJUnitRunner,5,main]" which is created by AndroidJUnitRunner. The issue is that there are code in ThreadNetworkControllerService checking all its methods runs on the thread associated to the provided handler. This constraint doesn't hold in this unit test because TestLooper runs all the posted tasks on the current thread rather than the thread associated to its backed looper. So the tests will fail with Log.wtf() which terminates the process on eng build. This commit fixes this issue by annotating the test class with @UiThreadTest to force methods annotated with @Before, @After and @Test to run on the main / UI thread. Test: run this test class on aosp_cf_x86_64_phone-trunk_staging-eng Bug: 342092067 Change-Id: I7d75de5ac31234f3051e9ed332da33c1da6a8c98
70 lines
2.1 KiB
Text
70 lines
2.1 KiB
Text
//
|
|
// 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_team: "trendy_team_fwk_thread_network",
|
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
}
|
|
|
|
android_test {
|
|
name: "ThreadNetworkUnitTests",
|
|
min_sdk_version: "33",
|
|
sdk_version: "module_current",
|
|
manifest: "AndroidManifest.xml",
|
|
test_config: "AndroidTest.xml",
|
|
srcs: [
|
|
"src/**/*.java",
|
|
],
|
|
test_suites: [
|
|
"general-tests",
|
|
"mts-tethering",
|
|
],
|
|
static_libs: [
|
|
"androidx.test.rules",
|
|
"frameworks-base-testutils",
|
|
"framework-connectivity-pre-jarjar",
|
|
"framework-connectivity-t-pre-jarjar",
|
|
"framework-location.stubs.module_lib",
|
|
"guava",
|
|
"guava-android-testlib",
|
|
"mockito-target-extended-minus-junit4",
|
|
"net-tests-utils",
|
|
"ot-daemon-aidl-java",
|
|
"ot-daemon-testing",
|
|
"service-connectivity-pre-jarjar",
|
|
"service-thread-pre-jarjar",
|
|
"truth",
|
|
"service-thread-pre-jarjar",
|
|
],
|
|
libs: [
|
|
"android.test.base",
|
|
"android.test.runner",
|
|
"ServiceConnectivityResources",
|
|
"framework-wifi",
|
|
],
|
|
jni_libs: [
|
|
"libservice-thread-jni",
|
|
|
|
// these are needed for Extended Mockito
|
|
"libdexmakerjvmtiagent",
|
|
"libstaticjvmtiagent",
|
|
],
|
|
jni_uses_platform_apis: true,
|
|
jarjar_rules: ":connectivity-jarjar-rules",
|
|
// Test coverage system runs on different devices. Need to
|
|
// compile for all architectures.
|
|
compile_multilib: "both",
|
|
}
|