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,
 }