Test VMDebug.allowHiddenApiReflectionFrom

This patch adds tests of VMDebug.allowHiddenApiReflectionFrom() which
allows to exempt a single class from reflection/JNI hidden API checks
when an app is debuggable.

We test that it works by adding a new killswitch test where the
mechanism is exempting DexMemberChecker.

We test that the mechanism cannot be misused by non-debuggable apps by
extending the hidden API blacklist test to attempt to call the method
but expecting for it to fail.

Bug: 64382372
Test: (cd cts/tests/signature ; ./runSignatureTests.sh)
Change-Id: I1dd8496ecb67e992b6281591b3a9d12df4d6bd56
diff --git a/tests/signature/api-check/hidden-api-killswitch-wildcard/AndroidTest.xml b/tests/signature/api-check/hidden-api-killswitch-wildcard/AndroidTest.xml
new file mode 100644
index 0000000..3424d0b
--- /dev/null
+++ b/tests/signature/api-check/hidden-api-killswitch-wildcard/AndroidTest.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+<configuration description="Config for CTS Hidden API Signature test cases">
+    <option name="test-suite-tag" value="cts" />
+    <option name="config-descriptor:metadata" key="component" value="systems" />
+    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+        <!-- Enable the killswitch before running the test, then disable it afterwards. The test
+             is intended to verify the behaviour when the killswitch is enabled. -->
+        <option name="run-command" value="settings put global hidden_api_blacklist_exemptions \*" />
+        <option name="teardown-command" value="settings delete global hidden_api_blacklist_exemptions" />
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+        <option name="cleanup-apks" value="true" />
+        <option name="test-file-name" value="CtsHiddenApiKillswitchWildcardTestCases.apk" />
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+        <option name="package" value="android.signature.cts.api.killswitch_wildcard" />
+        <option name="runner" value="repackaged.android.test.InstrumentationTestRunner" />
+        <option name="class" value="android.signature.cts.api.WildcardKillswitchTest" />
+        <option name="runtime-hint" value="60s" />
+    </test>
+</configuration>