Fix appsecurity tests.

Ensure the cts build is passed down the call stack.

Also add more verbosity to install error messages.

Change-Id: I82079df87dae7b4936ce55e965ae5cd90f80d521
diff --git a/tests/appsecurity-tests/src/com/android/cts/appsecurity/AppSecurityTests.java b/tests/appsecurity-tests/src/com/android/cts/appsecurity/AppSecurityTests.java
index 61f85d0..7eb3a33 100644
--- a/tests/appsecurity-tests/src/com/android/cts/appsecurity/AppSecurityTests.java
+++ b/tests/appsecurity-tests/src/com/android/cts/appsecurity/AppSecurityTests.java
@@ -108,7 +108,8 @@
 
             String installResult = getDevice().installPackage(getTestAppFile(SHARED_UI_APK),
                     false);
-            assertNull("failed to install shared uid app", installResult);
+            assertNull(String.format("failed to install shared uid app, Reason: %s", installResult),
+                    installResult);
             installResult = getDevice().installPackage(getTestAppFile(SHARED_UI_DIFF_CERT_APK),
                     false);
             assertNotNull("shared uid app with different cert than existing app installed " +
@@ -133,7 +134,8 @@
 
             String installResult = getDevice().installPackage(getTestAppFile(SIMPLE_APP_APK),
                     false);
-            assertNull("failed to install simple app", installResult);
+            assertNull(String.format("failed to install simple app. Reason: %s", installResult),
+                    installResult);
             installResult = getDevice().installPackage(getTestAppFile(SIMPLE_APP_DIFF_CERT_APK),
                     true /* reinstall */);
             assertNotNull("app upgrade with different cert than existing app installed " +
@@ -157,14 +159,16 @@
 
             String installResult = getDevice().installPackage(getTestAppFile(APP_WITH_DATA_APK),
                     false);
-            assertNull("failed to install app with data", installResult);
+            assertNull(String.format("failed to install app with data. Reason: %s", installResult),
+                    installResult);
             // run appwithdata's tests to create private data
             assertTrue("failed to create app's private data", runDeviceTests(APP_WITH_DATA_PKG,
                     APP_WITH_DATA_CLASS, APP_WITH_DATA_CREATE_METHOD));
 
             installResult = getDevice().installPackage(getTestAppFile(APP_ACCESS_DATA_APK),
                     false);
-            assertNull("failed to install app access data", installResult);
+            assertNull(String.format("failed to install app access data. Reason: %s",
+                    installResult), installResult);
             // run appaccessdata's tests which attempt to access appwithdata's private data
             assertTrue("could access app's private data", runDeviceTests(APP_ACCESS_DATA_PKG));
         }
@@ -185,7 +189,8 @@
 
             String installResult = getDevice().installPackage(getTestAppFile(APP_WITH_DATA_APK),
                     false);
-            assertNull("failed to install app with data", installResult);
+            assertNull(String.format("failed to install app with data. Reason: %s", installResult),
+                    installResult);
             // run appwithdata's tests to create private data
             assertTrue("failed to create app's private data", runDeviceTests(APP_WITH_DATA_PKG,
                     APP_WITH_DATA_CLASS, APP_WITH_DATA_CREATE_METHOD));
@@ -194,7 +199,8 @@
 
             installResult = getDevice().installPackage(getTestAppFile(APP_WITH_DATA_APK),
                     false);
-            assertNull("failed to install app with data second time", installResult);
+            assertNull(String.format("failed to install app with data second time. Reason: %s",
+                    installResult), installResult);
             // run appwithdata's 'check if file exists' test
             assertTrue("app's private data still exists after install", runDeviceTests(
                     APP_WITH_DATA_PKG, APP_WITH_DATA_CLASS, APP_WITH_DATA_CHECK_NOEXIST_METHOD));
@@ -217,12 +223,15 @@
 
             String installResult = getDevice().installPackage(
                     getTestAppFile(TARGET_INSTRUMENT_APK), false);
-            assertNull("failed to install target instrumentation app", installResult);
+            assertNull(String.format("failed to install target instrumentation app. Reason: %s",
+                    installResult), installResult);
 
             // the app will install, but will get error at runtime when starting instrumentation
             installResult = getDevice().installPackage(getTestAppFile(INSTRUMENT_DIFF_CERT_APK),
                     false);
-            assertNull("failed to install instrumentation app with diff cert", installResult);
+            assertNull(String.format(
+                    "failed to install instrumentation app with diff cert. Reason: %s",
+                    installResult), installResult);
             // run INSTRUMENT_DIFF_CERT_PKG tests
             // this test will attempt to call startInstrumentation directly and verify
             // SecurityException is thrown
@@ -248,12 +257,14 @@
 
             String installResult = getDevice().installPackage(
                     getTestAppFile(DECLARE_PERMISSION_APK), false);
-            assertNull("failed to install declare permission app", installResult);
+            assertNull(String.format("failed to install declare permission app. Reason: %s",
+                    installResult), installResult);
 
             // the app will install, but will get error at runtime
             installResult = getDevice().installPackage(getTestAppFile(PERMISSION_DIFF_CERT_APK),
                     false);
-            assertNull("failed to install permission app with diff cert", installResult);
+            assertNull(String.format("failed to install permission app with diff cert. Reason: %s",
+                    installResult), installResult);
             // run PERMISSION_DIFF_CERT_PKG tests which try to access the permission
             assertTrue("unexpected result when running permission tests",
                     runDeviceTests(PERMISSION_DIFF_CERT_PKG));
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/JarHostTest.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/JarHostTest.java
index 110bc98..d322724 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/JarHostTest.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/JarHostTest.java
@@ -55,12 +55,14 @@
     private long mTimeoutMs = 10 * 60 * 1000;
     private String mRunName;
     private CtsBuildHelper mCtsBuild = null;
+    private IBuildInfo mBuildInfo = null;
 
     /**
      * {@inheritDoc}
      */
     @Override
     public void setBuild(IBuildInfo buildInfo) {
+        mBuildInfo = buildInfo;
         mCtsBuild = CtsBuildHelper.createBuildHelper(buildInfo);
     }
 
@@ -195,6 +197,9 @@
             deviceTest.setDevice(getDevice().getIDevice());
             deviceTest.setTestAppPath(mCtsBuild.getTestCasesDir().getAbsolutePath());
         }
+        if (junitTest instanceof IBuildReceiver) {
+            ((IBuildReceiver)junitTest).setBuild(mBuildInfo);
+        }
         TestRunnable testRunnable = new TestRunnable(junitTest, junitResult);
 
         CommandStatus status = RunUtil.getDefault().runTimed(mTimeoutMs, testRunnable, true);