Merge "Continue to clean up test resouces related logic"
diff --git a/src/com/android/tradefed/build/BuildInfo.java b/src/com/android/tradefed/build/BuildInfo.java
index 4d42ea0..2069b2a 100644
--- a/src/com/android/tradefed/build/BuildInfo.java
+++ b/src/com/android/tradefed/build/BuildInfo.java
@@ -215,7 +215,6 @@
         setBuildFlavor(build.getBuildFlavor());
         setBuildBranch(build.getBuildBranch());
         setTestTag(build.getTestTag());
-        setTestResourceBuild(build.isTestResourceBuild());
     }
 
     protected MultiMap<String, String> getAttributesMultiMap() {
@@ -681,32 +680,9 @@
                         buildFile.getVersion());
             }
         }
-        // Test resource
-        buildInfo.setTestResourceBuild(protoBuild.getIsTestResource());
         return buildInfo;
     }
 
-    /**
-     * Get test resource from a list of builds.
-     *
-     * @param testResourceBuildInfos An list of {@link IBuildInfo}.
-     * @param testResourceName the test resource name
-     * @return the test resource file.
-     */
-    public static File getTestResource(
-            List<IBuildInfo> testResourceBuildInfos, String testResourceName) {
-        if (testResourceBuildInfos == null) {
-            return null;
-        }
-        for (IBuildInfo buildInfo : testResourceBuildInfos) {
-            File testResourceFile = buildInfo.getFile(testResourceName);
-            if (testResourceFile != null) {
-                return testResourceFile;
-            }
-        }
-        return null;
-    }
-
     /** {@inheritDoc} */
     @Override
     public Set<File> getRemoteFiles() {
diff --git a/src/com/android/tradefed/invoker/InvocationExecution.java b/src/com/android/tradefed/invoker/InvocationExecution.java
index 78a1efa..395fe6e 100644
--- a/src/com/android/tradefed/invoker/InvocationExecution.java
+++ b/src/com/android/tradefed/invoker/InvocationExecution.java
@@ -18,7 +18,6 @@
 import com.android.ddmlib.IDevice;
 import com.android.ddmlib.Log.LogLevel;
 import com.android.tradefed.build.BuildInfo;
-import com.android.tradefed.build.BuildInfoKey;
 import com.android.tradefed.build.BuildInfoKey.BuildInfoFileKey;
 import com.android.tradefed.build.BuildRetrievalError;
 import com.android.tradefed.build.IBuildInfo;
@@ -158,7 +157,6 @@
                 // TODO: remove build update when reporting is done on context
                 updateBuild(info, config);
                 linkExternalDirs(info, testInfo);
-                info.setTestResourceBuild(config.isDeviceConfiguredFake(currentDeviceName));
 
                 if (config.getCommandOptions().shouldUseReplicateSetup()) {
                     buildReplicat = info;
@@ -173,7 +171,6 @@
             }
             throw e;
         }
-        createSharedResources(testInfo);
         setBinariesVersion(testInfo.getContext());
         return true;
     }
@@ -872,39 +869,6 @@
         return null;
     }
 
-    /** Populate the shared resources directory for all non-resource build */
-    private void createSharedResources(TestInformation testInfo) {
-        List<IBuildInfo> infos = testInfo.getContext().getBuildInfos();
-        if (infos.size() <= 1) {
-            return;
-        }
-        try {
-            for (IBuildInfo info : infos) {
-                if (info.isTestResourceBuild()) {
-                    // Create a reception sub-folder for each build info resource to avoid mixing
-                    String name =
-                            String.format(
-                                    "%s_%s_%s",
-                                    info.getBuildBranch(),
-                                    info.getBuildId(),
-                                    info.getBuildFlavor());
-                    File buildDir = FileUtil.createTempDir(name, testInfo.dependenciesFolder());
-                    for (BuildInfoFileKey key : BuildInfoKey.SHARED_KEY) {
-                        File f = info.getFile(key);
-                        if (f == null) {
-                            continue;
-                        }
-                        File subDir = new File(buildDir, f.getName());
-                        FileUtil.symlinkFile(f, subDir);
-                    }
-                }
-            }
-        } catch (IOException e) {
-            CLog.e("Failed to create the shared resources dir.");
-            CLog.e(e);
-        }
-    }
-
     private void setBinariesVersion(IInvocationContext context) {
         String version = getAdbVersion();
         if (version != null) {
diff --git a/tests/src/com/android/tradefed/build/BuildInfoTest.java b/tests/src/com/android/tradefed/build/BuildInfoTest.java
index 1f7b1a0..9eed940 100644
--- a/tests/src/com/android/tradefed/build/BuildInfoTest.java
+++ b/tests/src/com/android/tradefed/build/BuildInfoTest.java
@@ -28,14 +28,12 @@
 import com.android.tradefed.util.SerializationUtil;
 
 import org.junit.After;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
 import java.io.File;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -211,28 +209,4 @@
             assertTrue(deserialized.getRemoteFiles().contains(new File(file)));
         }
     }
-
-    /** Test {@link BuildInfo#getTestResource(List, String)} */
-    @Test
-    public void testGetTestResource() {
-        List<IBuildInfo> buildInfos = new ArrayList<IBuildInfo>();
-        BuildInfo testResourceBuild = new BuildInfo();
-        testResourceBuild.setTestResourceBuild(true);
-        File testResourceFile = new File("test-resource1");
-        testResourceBuild.setFile("test-resource1", testResourceFile, "");
-        buildInfos.add(testResourceBuild);
-        File file = BuildInfo.getTestResource(buildInfos, "test-resource1");
-        Assert.assertEquals(testResourceFile, file);
-    }
-
-    /** Test {@link BuildInfo#getTestResource(List, String)} */
-    @Test
-    public void testGetTestResource_notExist() {
-        List<IBuildInfo> buildInfos = new ArrayList<IBuildInfo>();
-        BuildInfo testResourceBuild = new BuildInfo();
-        testResourceBuild.setTestResourceBuild(true);
-        buildInfos.add(testResourceBuild);
-        File file = BuildInfo.getTestResource(buildInfos, "test-resource1");
-        Assert.assertNull(file);
-    }
 }
diff --git a/tests/src/com/android/tradefed/invoker/InvocationExecutionTest.java b/tests/src/com/android/tradefed/invoker/InvocationExecutionTest.java
index 8b84e35..4d743ac 100644
--- a/tests/src/com/android/tradefed/invoker/InvocationExecutionTest.java
+++ b/tests/src/com/android/tradefed/invoker/InvocationExecutionTest.java
@@ -24,10 +24,6 @@
 import static org.mockito.Mockito.verify;
 
 import com.android.tradefed.build.BuildInfo;
-import com.android.tradefed.build.BuildRetrievalError;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.build.IBuildProvider;
-import com.android.tradefed.build.StubBuildProvider;
 import com.android.tradefed.config.Configuration;
 import com.android.tradefed.config.DeviceConfigurationHolder;
 import com.android.tradefed.config.IConfiguration;
@@ -55,7 +51,6 @@
 import com.android.tradefed.targetprep.multi.IMultiTargetPreparer;
 import com.android.tradefed.testtype.IRemoteTest;
 import com.android.tradefed.testtype.suite.TestSuiteStub;
-import com.android.tradefed.util.FileUtil;
 import com.android.tradefed.util.IDisableable;
 
 import org.easymock.EasyMock;
@@ -66,7 +61,6 @@
 import org.mockito.InOrder;
 import org.mockito.Mockito;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -86,7 +80,6 @@
     private ILogSaver mLogSaver;
     private ITestInvocationListener mMockListener;
     private ILogSaverListener mMockLogListener;
-    private ITestDevice mMockDevice;
     private ITestLogger mMockLogger;
 
     @Before
@@ -99,7 +92,6 @@
         mMockListener = mock(ITestInvocationListener.class);
         mMockLogListener = mock(ILogSaverListener.class);
         mMockLogger = mock(ITestLogger.class);
-        mMockDevice = EasyMock.createMock(ITestDevice.class);
         // Reset the counters
         TestBaseMetricCollector.sTotalInit = 0;
         RemoteTestCollector.sTotalInit = 0;
@@ -562,68 +554,4 @@
         inOrder.verify(stub1).isDisabled();
         inOrder.verify(stub1).tearDown(testInfo, exception);
     }
-
-    /** Ensure we create the shared folder from the resource build. */
-    @Test
-    public void testFetchBuild_createSharedFolder() throws Throwable {
-        mExec =
-                new InvocationExecution() {
-                    @Override
-                    protected String getAdbVersion() {
-                        return "1";
-                    }
-                };
-        EasyMock.expect(mMockDevice.getSerialNumber()).andStubReturn("serial");
-        mMockDevice.setRecovery(EasyMock.anyObject());
-        EasyMock.expectLastCall().times(2);
-
-        List<IDeviceConfiguration> listDeviceConfig = new ArrayList<>();
-        DeviceConfigurationHolder holder = new DeviceConfigurationHolder("device1");
-        IBuildProvider provider = new StubBuildProvider();
-        holder.addSpecificConfig(provider);
-        mContext.addAllocatedDevice("device1", mMockDevice);
-        listDeviceConfig.add(holder);
-
-        DeviceConfigurationHolder holder2 = new DeviceConfigurationHolder("device2", true);
-        IBuildProvider provider2 =
-                new StubBuildProvider() {
-                    @Override
-                    public IBuildInfo getBuild() throws BuildRetrievalError {
-                        IBuildInfo info = super.getBuild();
-                        info.setBuildId("1234");
-                        info.setBuildBranch("branch");
-                        info.setBuildFlavor("flavor");
-                        return info;
-                    }
-                };
-        holder2.addSpecificConfig(provider2);
-        mContext.addAllocatedDevice("device2", mMockDevice);
-        listDeviceConfig.add(holder2);
-
-        mConfig.setDeviceConfigList(listDeviceConfig);
-        File tmpWorkDir = FileUtil.createTempDir("invocation-execution-shared-test");
-        TestInformation testInfo =
-                TestInformation.newBuilder()
-                        .setInvocationContext(mContext)
-                        .setDependenciesFolder(tmpWorkDir)
-                        .build();
-        // Download
-        EasyMock.replay(mMockDevice);
-        assertTrue(mExec.fetchBuild(testInfo, mConfig, null, mMockListener));
-        EasyMock.verify(mMockDevice);
-
-        List<IBuildInfo> builds = mContext.getBuildInfos();
-        try {
-            assertEquals(2, builds.size());
-            assertEquals(1, tmpWorkDir.listFiles().length);
-            // The resource build was linked to dependencies
-            assertTrue(tmpWorkDir.listFiles()[0].getName().startsWith("branch_1234_flavor"));
-        } finally {
-            for (IBuildInfo info : builds) {
-                info.cleanUp();
-            }
-            FileUtil.recursiveDelete(tmpWorkDir);
-        }
-        assertTrue(mContext.getAttributes().containsKey(InvocationExecution.JAVA_VERSION_KEY));
-    }
 }
diff --git a/tests/src/com/android/tradefed/invoker/TestInvocationMultiTest.java b/tests/src/com/android/tradefed/invoker/TestInvocationMultiTest.java
index 9257c88..1eb26ee 100644
--- a/tests/src/com/android/tradefed/invoker/TestInvocationMultiTest.java
+++ b/tests/src/com/android/tradefed/invoker/TestInvocationMultiTest.java
@@ -130,7 +130,6 @@
         mProvider1 = EasyMock.createMock(IBuildProvider.class);
         holder1.addSpecificConfig(mProvider1);
         EasyMock.expect(mMockConfig.getDeviceConfigByName("device1")).andStubReturn(holder1);
-        EasyMock.expect(mMockConfig.isDeviceConfiguredFake("device1")).andReturn(false);
         mDevice1.setOptions(EasyMock.anyObject());
         mDevice1.setRecovery(EasyMock.anyObject());
 
diff --git a/tests/src/com/android/tradefed/invoker/TestInvocationTest.java b/tests/src/com/android/tradefed/invoker/TestInvocationTest.java
index 8f4044c..1925909 100644
--- a/tests/src/com/android/tradefed/invoker/TestInvocationTest.java
+++ b/tests/src/com/android/tradefed/invoker/TestInvocationTest.java
@@ -242,8 +242,6 @@
         EasyMock.expect(mMockBuildInfo.getBuildFlavor()).andStubReturn("flavor");
         EasyMock.expect(mMockBuildInfo.getProperties()).andStubReturn(new HashSet<>());
         EasyMock.expect(mMockBuildInfo.isTestResourceBuild()).andStubReturn(false);
-        mMockBuildInfo.setTestResourceBuild(EasyMock.anyBoolean());
-        EasyMock.expectLastCall().anyTimes();
 
         // always expect logger initialization and cleanup calls
         mMockLogRegistry.registerLogger(mMockLogger);