Fix bitrot in the libnativebridge tests.
- Bitrot 1: NativeBridge2Signal_test stopped working when version 3 was
added in https://r.android.com/234059.
- Bitrot 2: The code path that PreInitializeNativeBridgeFail1_test
tested was removed completely when missing app data directory was
allowed in https://r.android.com/1208629, so delete the test.
- Use cc_test_library for the dynamic test libs so they are installed in
the test directory rather than in system/lib(64).
- Use test_per_src since native_bridge.cc doesn't support reloading the
native bridge implementation lib after unloading.
- Add a custom script to run the tests and a preupload check that the
script is run. (Configuring atest for these tests still TBD in
b/189484095 - test_per_src is a complication.)
Test: art/libnativebridge/tests/runtests.sh
Bug: 122710865
Bug: 189484095
Change-Id: Ib2b387e1d858127ca4bb44c548a5105ea8b838d8
diff --git a/libnativebridge/tests/Android.bp b/libnativebridge/tests/Android.bp
index 9a81a0d..785ccd9 100644
--- a/libnativebridge/tests/Android.bp
+++ b/libnativebridge/tests/Android.bp
@@ -48,25 +48,25 @@
cppflags: ["-fvisibility=protected"],
}
-cc_library_shared {
+cc_test_library {
name: "libnativebridge-test-case",
srcs: ["NativeBridgeTestCase.cpp"],
defaults: ["libnativebridge-test-case-defaults"],
}
-cc_library_shared {
+cc_test_library {
name: "libnativebridge2-test-case",
srcs: ["NativeBridgeTestCase2.cpp"],
defaults: ["libnativebridge-test-case-defaults"],
}
-cc_library_shared {
+cc_test_library {
name: "libnativebridge3-test-case",
srcs: ["NativeBridgeTestCase3.cpp"],
defaults: ["libnativebridge-test-case-defaults"],
}
-cc_library_shared {
+cc_test_library {
name: "libnativebridge6-test-case",
srcs: ["NativeBridgeTestCase6.cpp"],
defaults: ["libnativebridge-test-case-defaults"],
@@ -76,7 +76,7 @@
}
// A helper library to produce test-case side effect of PreZygoteForkNativeBridge.
-cc_library_shared {
+cc_test_library {
name: "libnativebridge6prezygotefork",
srcs: ["NativeBridge6PreZygoteFork_lib.cpp"],
defaults: ["libnativebridge-test-case-defaults"],
@@ -102,6 +102,10 @@
},
},
+ // native_bridge.cc doesn't support reloading the native bridge after
+ // unloading, so each test needs to be its own process.
+ test_per_src: true,
+
srcs: [
"CodeCacheCreate_test.cpp",
"CodeCacheExists_test.cpp",
@@ -112,7 +116,6 @@
"NativeBridgeVersion_test.cpp",
"NeedsNativeBridge_test.cpp",
"PreInitializeNativeBridge_test.cpp",
- "PreInitializeNativeBridgeFail1_test.cpp",
"PreInitializeNativeBridgeFail2_test.cpp",
"ReSetupNativeBridge_test.cpp",
"UnavailableNativeBridge_test.cpp",
@@ -129,6 +132,9 @@
shared_libs: [
"liblog",
"libnativebridge-test-case",
+ "libnativebridge2-test-case",
+ "libnativebridge3-test-case",
+ "libnativebridge6-test-case",
"libnativebridge6prezygotefork",
],
header_libs: ["libbase_headers"],
@@ -173,5 +179,5 @@
"jni_headers",
"libnativebridge-headers",
],
- gtest:false,
+ gtest: false,
}