Merge "Remove module_test_utils completely" am: 710c5b955e

Original change: https://android-review.googlesource.com/c/platform/system/apex/+/1519624

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I9457c2789105de8dabcdd1a8dda4fe5924112d6c
diff --git a/tests/Android.bp b/tests/Android.bp
index 8f47071..6c81f9f 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -80,12 +80,6 @@
     ],
 }
 
-java_library_host {
-    name: "module_test_util",
-    srcs: ["util/**/ModuleTestUtils.java"],
-    libs: ["tradefed", "truth-prebuilt"],
-}
-
 apex {
     name: "apex.test",
     manifest: "testdata/apex_manifest.json",
diff --git a/tests/util/com/android/tests/util/ModuleTestUtils.java b/tests/util/com/android/tests/util/ModuleTestUtils.java
deleted file mode 100644
index 52e78f1..0000000
--- a/tests/util/com/android/tests/util/ModuleTestUtils.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2019 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.tests.util;
-
-import com.android.tradefed.build.BuildInfoKey.BuildInfoFileKey;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.util.SystemUtil.EnvVariable;
-
-import junit.framework.Assert;
-
-import java.io.File;
-import java.io.IOException;
-import java.time.Duration;
-import java.util.regex.Pattern;
-import java.util.stream.Stream;
-
-public class ModuleTestUtils {
-    private static final Duration WAIT_FOR_SESSION_READY_TTL = Duration.ofSeconds(10);
-    private static final Duration SLEEP_FOR = Duration.ofMillis(200);
-
-    protected final Pattern mIsSessionReadyPattern =
-            Pattern.compile("(isReady = true)|(isStagedSessionReady = true)");
-    protected final Pattern mIsSessionAppliedPattern =
-            Pattern.compile("(isApplied = true)|(isStagedSessionApplied = true)");
-
-    private BaseHostJUnit4Test mTest;
-
-    public ModuleTestUtils(BaseHostJUnit4Test test) {
-        mTest = test;
-    }
-
-    /**
-     * Get the test file.
-     *
-     * @param testFileName name of the file
-     */
-    public File getTestFile(String testFileName) throws IOException {
-        File testFile = null;
-
-        String testcasesPath = System.getenv(EnvVariable.ANDROID_HOST_OUT_TESTCASES.toString());
-        if (testcasesPath != null) {
-            testFile = searchTestFile(new File(testcasesPath), testFileName);
-        }
-        if (testFile != null) {
-            return testFile;
-        }
-
-        File hostLinkedDir = mTest.getBuild().getFile(BuildInfoFileKey.HOST_LINKED_DIR);
-        if (hostLinkedDir != null) {
-            testFile = searchTestFile(hostLinkedDir, testFileName);
-        }
-        if (testFile != null) {
-            return testFile;
-        }
-
-        // Find the file in the buildinfo.
-        File buildInfoFile = mTest.getBuild().getFile(testFileName);
-        if (buildInfoFile != null) {
-            return buildInfoFile;
-        }
-
-        throw new IOException("Cannot find " + testFileName);
-    }
-
-    /**
-     * Searches the file with the given name under the given directory, returns null if not found.
-     */
-    private File searchTestFile(File baseSearchFile, String testFileName) {
-        if (baseSearchFile != null && baseSearchFile.isDirectory()) {
-            File testFile = FileUtil.findFile(baseSearchFile, testFileName);
-            if (testFile != null && testFile.isFile()) {
-                return testFile;
-            }
-        }
-        return null;
-    }
-
-    public void waitForStagedSessionReady() throws DeviceNotAvailableException {
-        // TODO: implement wait for session ready logic inside PackageManagerShellCommand instead.
-        boolean sessionReady = false;
-        Duration spentWaiting = Duration.ZERO;
-        while (spentWaiting.compareTo(WAIT_FOR_SESSION_READY_TTL) < 0) {
-            CommandResult res = mTest.getDevice().executeShellV2Command("pm get-stagedsessions");
-            Assert.assertEquals("", res.getStderr());
-            sessionReady = Stream.of(res.getStdout().split("\n")).anyMatch(this::isReadyNotApplied);
-            if (sessionReady) {
-                CLog.i("Done waiting after " + spentWaiting);
-                break;
-            }
-            try {
-                Thread.sleep(SLEEP_FOR.toMillis());
-                spentWaiting = spentWaiting.plus(SLEEP_FOR);
-            } catch (InterruptedException e) {
-                Thread.currentThread().interrupt();
-                throw new RuntimeException(e);
-            }
-        }
-        Assert.assertTrue("Staged session wasn't ready in " + WAIT_FOR_SESSION_READY_TTL,
-                sessionReady);
-    }
-
-    private boolean isReadyNotApplied(String sessionInfo) {
-        boolean isReady = mIsSessionReadyPattern.matcher(sessionInfo).find();
-        boolean isApplied = mIsSessionAppliedPattern.matcher(sessionInfo).find();
-        return isReady && !isApplied;
-    }
-}