deprecate multi-device harness extension as it has been upstream'ed to TF.

Test: make vts
Change-Id: I906879a8b5ca98f097c8ad1c13afd6c064dc67c1
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTestMultiDevice.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTestMultiDevice.java
deleted file mode 100644
index 166825d..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTestMultiDevice.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2017 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 com.android.compatibility.common.tradefed.testtype;
-
-import com.android.compatibility.common.tradefed.util.RetryFilterHelper;
-import com.android.compatibility.common.tradefed.util.VtsRetryFilterHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.testtype.IInvocationContextReceiver;
-import com.android.tradefed.testtype.IMultiDeviceTest;
-
-import java.io.FileNotFoundException;
-import java.util.LinkedList;
-import java.util.Map;
-
-/**
- * A Test for running Compatibility Suites
- */
-@OptionClass(alias = "compatibility")
-public class CompatibilityTestMultiDevice extends CompatibilityTest implements IMultiDeviceTest {
-    private Map<ITestDevice, IBuildInfo> mDeviceInfos = null;
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setDeviceInfos(Map<ITestDevice, IBuildInfo> deviceInfos) {
-        mDeviceInfos = deviceInfos;
-    }
-
-    /**
-     * Create a new {@link CompatibilityTest} that will run a sublist of
-     * modules.
-     */
-    public CompatibilityTestMultiDevice(
-            int totalShards, IModuleRepo moduleRepo, Integer shardIndex) {
-        super(totalShards, moduleRepo, shardIndex);
-    }
-
-    /**
-     * Create a new {@link CompatibilityTestMultiDevice} that will run the default list of
-     * modules.
-     */
-    public CompatibilityTestMultiDevice() {
-        super(1 /* totalShards */, new ModuleRepoMultiDevice(), 0);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected synchronized LinkedList<IModuleDef> initializeModuleRepo()
-            throws DeviceNotAvailableException, FileNotFoundException {
-        ((ModuleRepoMultiDevice) getModuleRepo()).setInvocationContext(getInvocationContext());
-        ((ModuleRepoMultiDevice) getModuleRepo()).setDeviceInfos(mDeviceInfos);
-
-        LinkedList<IModuleDef> modules = super.initializeModuleRepo();
-
-        for (IModuleDef module : modules) {
-            if (module instanceof IMultiDeviceTest) {
-                ((IMultiDeviceTest) module).setDeviceInfos(mDeviceInfos);
-            }
-
-            if (module instanceof IInvocationContextReceiver) {
-                ((IInvocationContextReceiver) module).setInvocationContext(getInvocationContext());
-            }
-        }
-
-        return modules;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected RetryFilterHelper createRetryFilterHelper(Integer retrySessionId) {
-        return new VtsRetryFilterHelper(getBuildHelper(), retrySessionId, getSubPlan(),
-                getIncludeFilters(), getExcludeFilters(), getAbiName(), getModuleName(),
-                getTestName(), getRetryType());
-    }
-}
\ No newline at end of file
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleDefMultiDevice.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleDefMultiDevice.java
deleted file mode 100644
index 8102e0b..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleDefMultiDevice.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2017 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 com.android.compatibility.common.tradefed.testtype;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.ConfigurationDescriptor;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.targetprep.BuildError;
-import com.android.tradefed.targetprep.multi.IMultiTargetPreparer;
-import com.android.tradefed.targetprep.ITargetPreparer;
-import com.android.tradefed.targetprep.TargetSetupError;
-import com.android.tradefed.testtype.IAbi;
-import com.android.tradefed.testtype.IAbiReceiver;
-import com.android.tradefed.testtype.IMultiDeviceTest;
-import com.android.tradefed.testtype.IRemoteTest;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Container for Compatibility test module info.
- */
-public class ModuleDefMultiDevice extends ModuleDef implements IMultiDeviceTest {
-    private Map<ITestDevice, IBuildInfo> mDeviceInfos = null;
-    private List<IMultiTargetPreparer> mMultiPreparers = new ArrayList<>();
-
-    public ModuleDefMultiDevice(String name, IAbi abi, IRemoteTest test,
-            List<ITargetPreparer> preparersSingleDevice, List<IMultiTargetPreparer> preparers,
-            ConfigurationDescriptor configurationDescriptor) {
-        super(name, abi, test, preparersSingleDevice, configurationDescriptor);
-
-        boolean hasAbiReceiver = false;
-        for (IMultiTargetPreparer preparer : preparers) {
-            if (preparer instanceof IAbiReceiver) {
-                hasAbiReceiver = true;
-                break;
-            }
-        }
-        for (ITargetPreparer preparer : preparersSingleDevice) {
-            if (preparer instanceof IAbiReceiver) {
-                hasAbiReceiver = true;
-                break;
-            }
-        }
-
-        mMultiPreparers = preparers;
-
-        // Required interfaces:
-        super.checkRequiredInterfaces(hasAbiReceiver);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setDeviceInfos(Map<ITestDevice, IBuildInfo> deviceInfos) {
-        mDeviceInfos = deviceInfos;
-    }
-
-    /**
-     * Getter method for mDeviceInfos.
-     */
-    public Map<ITestDevice, IBuildInfo> getDeviceInfos() {
-        return mDeviceInfos;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void prepareTestClass() {
-        super.prepareTestClass();
-
-        IRemoteTest test = getTest();
-        if (test instanceof IMultiDeviceTest) {
-            ((IMultiDeviceTest) test).setDeviceInfos(mDeviceInfos);
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void runPreparerSetups() throws DeviceNotAvailableException {
-        super.runPreparerSetups();
-
-        for (IMultiTargetPreparer preparer : mMultiPreparers) {
-            String preparerName = preparer.getClass().getCanonicalName();
-            if (!getPreparerWhitelist().isEmpty()
-                    && !getPreparerWhitelist().contains(preparerName)) {
-                CLog.w("Skipping Preparer: %s since it is not in the whitelist %s", preparerName,
-                        getPreparerWhitelist());
-                return;
-            }
-
-            CLog.d("MultiDevicePreparer: %s", preparer.getClass().getSimpleName());
-
-            if (preparer instanceof IAbiReceiver) {
-                ((IAbiReceiver) preparer).setAbi(getAbi());
-            }
-
-            try {
-                preparer.setUp(getInvocationContext());
-            } catch (BuildError e) {
-                // This should only happen for flashing new build
-                CLog.e("Unexpected BuildError from multi-device preparer: %s",
-                        preparer.getClass().getCanonicalName());
-                throw new RuntimeException(e);
-            } catch (TargetSetupError e) {
-                // log preparer class then rethrow & let caller handle
-                CLog.e("TargetSetupError in multi-device preparer: %s",
-                        preparer.getClass().getCanonicalName());
-                throw new RuntimeException(e);
-            }
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void run(ITestInvocationListener listener) throws DeviceNotAvailableException {
-        super.run(listener);
-
-        // Tear down
-        for (int i = mMultiPreparers.size() - 1; i >= 0; i--) {
-            IMultiTargetPreparer cleaner = mMultiPreparers.get(i);
-            CLog.d("MultiDeviceCleaner: %s", cleaner.getClass().getSimpleName());
-            cleaner.tearDown(getInvocationContext(), null);
-        }
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleRepoMultiDevice.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleRepoMultiDevice.java
deleted file mode 100644
index 181d3b7..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/ModuleRepoMultiDevice.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2017 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 com.android.compatibility.common.tradefed.testtype;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.ConfigurationException;
-import com.android.tradefed.config.IConfiguration;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.targetprep.ITargetPreparer;
-import com.android.tradefed.testtype.IAbi;
-import com.android.tradefed.testtype.IInvocationContextReceiver;
-import com.android.tradefed.testtype.IMultiDeviceTest;
-import com.android.tradefed.testtype.IRemoteTest;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Retrieves Compatibility multi-device test module definitions from the repository.
- */
-public class ModuleRepoMultiDevice
-        extends ModuleRepo implements IMultiDeviceTest, IInvocationContextReceiver {
-    private Map<ITestDevice, IBuildInfo> mDeviceInfos = null;
-    private IInvocationContext mInvocationContext = null;
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setDeviceInfos(Map<ITestDevice, IBuildInfo> deviceInfos) {
-        mDeviceInfos = deviceInfos;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setInvocationContext(IInvocationContext invocationContext) {
-        mInvocationContext = invocationContext;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void addModuleDef(String name, IAbi abi, IRemoteTest test, String[] configPaths)
-            throws ConfigurationException {
-        // Invokes parser to process the test module config file
-        IConfiguration config = getConfigFactory().createConfigurationFromArgs(configPaths);
-
-        List<ITargetPreparer> preparers = new ArrayList<ITargetPreparer>();
-
-        if (mDeviceInfos == null || mDeviceInfos.size() <= 1) {
-            preparers = config.getTargetPreparers();
-        }
-
-        addModuleDef(new ModuleDefMultiDevice(name, abi, test, preparers,
-                config.getMultiTargetPreparers(), config.getConfigurationDescription()));
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/VtsUnitTests.java b/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/VtsUnitTests.java
index 1c98e6f..6ab624e 100644
--- a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/VtsUnitTests.java
+++ b/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/VtsUnitTests.java
@@ -15,8 +15,6 @@
  */
 package com.android.compatibility.common.tradefed;
 
-import com.android.compatibility.common.tradefed.testtype.CompatibilityTestMultiDeviceTest;
-import com.android.compatibility.common.tradefed.testtype.ModuleDefMultiDeviceTest;
 import com.android.compatibility.common.tradefed.util.VtsRetryFilterHelperTest;
 
 import org.junit.runner.RunWith;
@@ -31,8 +29,6 @@
 @SuiteClasses({
     // NOTE: please keep classes sorted lexicographically in each group
     // testtype
-    CompatibilityTestMultiDeviceTest.class,
-    ModuleDefMultiDeviceTest.class,
 
     // util
     VtsRetryFilterHelperTest.class,
diff --git a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTestMultiDeviceTest.java b/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTestMultiDeviceTest.java
deleted file mode 100644
index 0c426e5..0000000
--- a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/CompatibilityTestMultiDeviceTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2017 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 com.android.compatibility.common.tradefed.testtype;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.testtype.VtsMultiDeviceTest;
-import com.android.tradefed.testtype.IAbi;
-
-import java.io.FileNotFoundException;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.ArrayList;
-import java.util.HashMap;
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Unit tests for {@link CompatibilityTestMultiDevice}.
- */
-@RunWith(JUnit4.class)
-public class CompatibilityTestMultiDeviceTest {
-    CompatibilityTestMultiDevice mTest = null;
-    private ITestDevice mMockDevice;
-    private ModuleDefMultiDevice moduleDef;
-    Map<ITestDevice, IBuildInfo> deviceInfos;
-    IInvocationContext invocationContext;
-
-    @Before
-    public void setUp() throws Exception {
-        mMockDevice = EasyMock.createMock(ITestDevice.class);
-        IAbi abi = EasyMock.createMock(IAbi.class);
-        EasyMock.expect(abi.getName()).andReturn("FAKE_ABI");
-        moduleDef = new ModuleDefMultiDevice("FAKE_MODULE", abi, new VtsMultiDeviceTest(),
-                new ArrayList<>(), new ArrayList<>(), null);
-        deviceInfos = new HashMap<>();
-        invocationContext = EasyMock.createMock(IInvocationContext.class);
-
-        mTest = new CompatibilityTestMultiDevice(1, new ModuleRepoMultiDevice() {
-            @Override
-            public boolean isInitialized() {
-                return true;
-            }
-            @Override
-            public LinkedList<IModuleDef> getModules(String serial, int shardIndex) {
-                LinkedList<IModuleDef> modules = new LinkedList<>();
-                modules.add(moduleDef);
-                return modules;
-            }
-        }, 0);
-        mTest.setDevice(mMockDevice);
-        mTest.setDeviceInfos(deviceInfos);
-        mTest.setInvocationContext(invocationContext);
-    }
-
-    /**
-     * Test the initializeModuleRepo method.
-     * @throws DeviceNotAvailableException
-     * @throws FileNotFoundException
-     */
-    @Test
-    public void testInitializeModuleRepo()
-            throws FileNotFoundException, DeviceNotAvailableException {
-        mTest.initializeModuleRepo();
-        assertEquals(deviceInfos, moduleDef.getDeviceInfos());
-        assertEquals(invocationContext, moduleDef.getInvocationContext());
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/ModuleDefMultiDeviceTest.java b/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/ModuleDefMultiDeviceTest.java
deleted file mode 100644
index 2022f64..0000000
--- a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/ModuleDefMultiDeviceTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2017 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 com.android.compatibility.common.tradefed.testtype;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.targetprep.BuildError;
-import com.android.tradefed.targetprep.TargetSetupError;
-import com.android.tradefed.targetprep.multi.IMultiTargetPreparer;
-import com.android.tradefed.testtype.IAbi;
-import com.android.tradefed.testtype.VtsMultiDeviceTest;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Unit tests for {@link ModuleDefMultiDeviceTest}.
- */
-@RunWith(JUnit4.class)
-public class ModuleDefMultiDeviceTest {
-    private ITestDevice mMockDevice;
-    private IBuildInfo mBuildInfo;
-    private ModuleDefMultiDevice mTest;
-    private Map<ITestDevice, IBuildInfo> mDeviceInfos;
-    private IInvocationContext mInvocationContext;
-    private IMultiTargetPreparer mMultiTargetPreparer;
-    private VtsMultiDeviceTest mVtsMultiDeviceTest;
-
-    @Before
-    public void setUp() throws Exception {
-        mMockDevice = EasyMock.createMock(ITestDevice.class);
-        mBuildInfo = EasyMock.createMock(IBuildInfo.class);
-        IAbi mAbi = EasyMock.createMock(IAbi.class);
-        EasyMock.expect(mAbi.getName()).andReturn("FAKE_ABI");
-        mMultiTargetPreparer = EasyMock.createMock(IMultiTargetPreparer.class);
-
-        List<IMultiTargetPreparer> preparers = new ArrayList<>();
-        preparers.add(mMultiTargetPreparer);
-        mVtsMultiDeviceTest = new VtsMultiDeviceTest();
-        mTest = new ModuleDefMultiDevice(
-                "FAKE_MODULE", mAbi, mVtsMultiDeviceTest, new ArrayList<>(), preparers, null);
-        mDeviceInfos = new HashMap<>();
-        mInvocationContext = EasyMock.createMock(IInvocationContext.class);
-        ArrayList<ITestDevice> devices = new ArrayList<>();
-        devices.add(mMockDevice);
-        ArrayList<IBuildInfo> buildInfos = new ArrayList<>();
-        buildInfos.add(mBuildInfo);
-        EasyMock.expect(mInvocationContext.getDevices()).andReturn(devices);
-        EasyMock.expect(mInvocationContext.getBuildInfos()).andReturn(buildInfos);
-        EasyMock.replay(mInvocationContext);
-
-        mTest.setDeviceInfos(mDeviceInfos);
-        mTest.setInvocationContext(mInvocationContext);
-    }
-
-    /**
-     * Test the testRunPreparerSetUp method.
-     * @throws BuildError
-     * @throws TargetSetupError
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void testRunPreparerSetups()
-            throws TargetSetupError, BuildError, DeviceNotAvailableException {
-        mMultiTargetPreparer.setUp(mInvocationContext);
-        EasyMock.expectLastCall();
-        EasyMock.replay(mMultiTargetPreparer);
-        mTest.runPreparerSetups();
-        EasyMock.verify(mMultiTargetPreparer);
-    }
-
-    /**
-     * Test the prepareTestClass method.
-     */
-    @Test
-    public void testPrepareTestClass() {
-        mTest.prepareTestClass();
-        assertEquals(mVtsMultiDeviceTest.getInvocationContext(), mInvocationContext);
-    }
-}