New perf-setup tests

Introduce a simple config for testing the perf setup scripts.

This allows perf-setup.sh to be tested on the device without running a
time consuming test suite.

Test: atest PerfSetupTests
Bug: 169272096
Change-Id: I641fddc49244285417629e7e6d241f051f08456e
diff --git a/scripts/perf-setup/tests/Android.bp b/scripts/perf-setup/tests/Android.bp
new file mode 100644
index 0000000..1e87fc8
--- /dev/null
+++ b/scripts/perf-setup/tests/Android.bp
@@ -0,0 +1,32 @@
+//Copyright (C) 2021 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"],
+}
+
+android_test {
+    name: "PerfSetupTests",
+
+    srcs: ["src/**/*.java"],
+    sdk_version: "test_current",
+    min_sdk_version: "21",
+
+    static_libs: ["androidx.test.runner"],
+    certificate: "platform",
+
+    test_config: "configs/perf-setup.xml",
+
+    test_suites: ["device-tests"],
+}
diff --git a/scripts/perf-setup/tests/AndroidManifest.xml b/scripts/perf-setup/tests/AndroidManifest.xml
new file mode 100644
index 0000000..90d4e04
--- /dev/null
+++ b/scripts/perf-setup/tests/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2021 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.test.perfsetup" >
+
+    <application/>
+
+    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+                     android:targetPackage="android.test.perfsetup"
+                     android:label="Perf Setup Test"/>
+
+</manifest>
diff --git a/scripts/perf-setup/tests/configs/perf-setup.xml b/scripts/perf-setup/tests/configs/perf-setup.xml
new file mode 100644
index 0000000..67f2a15
--- /dev/null
+++ b/scripts/perf-setup/tests/configs/perf-setup.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2021 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="Runs sample instrumentation test.">
+    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
+    <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
+        <option name="test-file-name" value="PerfSetupTests.apk" />
+    </target_preparer>
+
+    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
+        <option name="push" value="perf-setup.sh->/data/local/tmp/perf-setup.sh" />
+        <option name="cleanup" value="true" />
+    </target_preparer>
+
+    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+        <option name="run-command" value="chmod 755 /data/local/tmp/perf-setup.sh" />
+        <option name="run-command" value="/data/local/tmp/perf-setup.sh" />,
+        <option name="throw-if-cmd-fail" value="true" />
+    </target_preparer>
+
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+        <option name="package" value="android.test.perfsetup" />
+        <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
+    </test>
+</configuration>
diff --git a/scripts/perf-setup/tests/src/android/test/perfsetup/PerfSetupTest.java b/scripts/perf-setup/tests/src/android/test/perfsetup/PerfSetupTest.java
new file mode 100644
index 0000000..81e4216
--- /dev/null
+++ b/scripts/perf-setup/tests/src/android/test/perfsetup/PerfSetupTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2021 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.perfsetup;
+
+import android.util.Log;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public class PerfSetupTest {
+
+    private static final String TAG = PerfSetupTest.class.getSimpleName();
+
+    @BeforeClass
+    public static void beforeClass() {
+        Log.d(TAG, "beforeClass()");
+    }
+
+    @AfterClass
+    public static void afterClass() {
+        Log.d(TAG, "afterClass()");
+    }
+
+    @Before
+    public void before() {
+        Log.d(TAG, "before()");
+    }
+
+    @After
+    public void after() {
+        Log.d(TAG, "after()");
+    }
+
+    @Test
+    @SmallTest
+    public void testPerfSetup() {
+        Log.d(TAG, "testPerfSetup()");
+    }
+}