Migrate Bionic tests to CTSv2

Bug:21762834
Change-Id: I853063c57c2c4d08330173b7504ffb23b38a4dc3
diff --git a/CtsTestCaseList.mk b/CtsTestCaseList.mk
index f23099b..1ef1d43 100644
--- a/CtsTestCaseList.mk
+++ b/CtsTestCaseList.mk
@@ -242,7 +242,7 @@
     NativeMediaTest_XA \
 
 ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
-cts_native_tests += bionic-unit-tests-cts
+cts_native_tests += CtsBionicTestCases
 endif
 
 cts_ui_tests := \
diff --git a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/FilePusher.java b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/FilePusher.java
index ce19c8d..054d815b 100644
--- a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/FilePusher.java
+++ b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/FilePusher.java
@@ -16,10 +16,15 @@
 package com.android.compatibility.common.tradefed.targetprep;
 
 import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
+import com.android.ddmlib.Log.LogLevel;
 import com.android.tradefed.build.IBuildInfo;
 import com.android.tradefed.build.IFolderBuildInfo;
+import com.android.tradefed.config.Option;
 import com.android.tradefed.config.OptionClass;
+import com.android.tradefed.log.LogUtil.CLog;
 import com.android.tradefed.targetprep.PushFilePreparer;
+import com.android.tradefed.testtype.IAbi;
+import com.android.tradefed.testtype.IAbiReceiver;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -28,10 +33,16 @@
  * Pushes specified testing artifacts from Compatibility repository.
  */
 @OptionClass(alias="file-pusher")
-public class FilePusher extends PushFilePreparer {
+public class FilePusher extends PushFilePreparer implements IAbiReceiver {
+
+    @Option(name = "append-bitness",
+            description = "Append the ABI's bitness to the filename.")
+    private boolean mAppendBitness = false;
 
     private CompatibilityBuildHelper mBuildHelper = null;
 
+    private IAbi mAbi;
+
     protected File getTestsDir(IFolderBuildInfo buildInfo) throws FileNotFoundException {
         if (mBuildHelper == null) {
             mBuildHelper = new CompatibilityBuildHelper(buildInfo);
@@ -43,9 +54,20 @@
      * {@inheritDoc}
      */
     @Override
+    public void setAbi(IAbi abi) {
+        mAbi = abi;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     public File resolveRelativeFilePath(IBuildInfo buildInfo, String fileName) {
         try {
-            return new File(getTestsDir((IFolderBuildInfo) buildInfo), fileName);
+            File f = new File(getTestsDir((IFolderBuildInfo) buildInfo),
+                    String.format("%s%s", fileName, mAppendBitness ? mAbi.getBitness() : ""));
+            CLog.logAndDisplay(LogLevel.ERROR, "Copying from %s", f.getAbsolutePath());
+            return f;
         } catch (FileNotFoundException e) {
             e.printStackTrace();
         }
diff --git a/tests/tests/bionic/Android.mk b/tests/tests/bionic/Android.mk
index 06b7920..db8c2a9 100644
--- a/tests/tests/bionic/Android.mk
+++ b/tests/tests/bionic/Android.mk
@@ -1,6 +1,6 @@
 LOCAL_PATH := $(call my-dir)
 
-test_executable := bionic-unit-tests-cts
+test_executable := CtsBionicTestCases
 list_executable := $(test_executable)_list
 
 include $(CLEAR_VARS)
@@ -26,6 +26,9 @@
     liblog \
     libgtest \
 
+# Tag this module as a cts_v2 test artifact
+LOCAL_COMPATIBILITY_SUITE := cts_v2
+
 LOCAL_CTS_TEST_PACKAGE := android.bionic
 include $(BUILD_CTS_EXECUTABLE)
 
diff --git a/tests/tests/bionic/AndroidTest.xml b/tests/tests/bionic/AndroidTest.xml
new file mode 100644
index 0000000..2dd04d9
--- /dev/null
+++ b/tests/tests/bionic/AndroidTest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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 Bionic test cases">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
+        <option name="cleanup" value="true" />
+        <option name="push" value="CtsBionicTestCases->/data/local/tmp/CtsBionicTestCases" />
+        <option name="append-bitness" value="true" />
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.GTest" >
+        <option name="native-test-device-path" value="/data/local/tmp" />
+        <option name="module-name" value="CtsBionicTestCases" />
+    </test>
+</configuration>