Increase timeout for Terminal on nested virt
Bug: 381779366
Bug: 383966272
Bug: 384658289
Test: watch TH
Change-Id: I419d16a81079e9260b8df50b2295adf5d81e0576
diff --git a/android/TerminalApp/Android.bp b/android/TerminalApp/Android.bp
index 4bb9703..59f18df 100644
--- a/android/TerminalApp/Android.bp
+++ b/android/TerminalApp/Android.bp
@@ -18,6 +18,7 @@
"debian-service-grpclib-lite",
"gson",
"VmTerminalApp.aidl-java",
+ "MicrodroidTestHelper", // for DeviceProperties class
],
jni_libs: [
"libforwarder_host_jni",
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
index 316c8c4..016af83 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
@@ -33,6 +33,7 @@
import android.os.ConditionVariable;
import android.os.Environment;
import android.os.SystemClock;
+import android.os.SystemProperties;
import android.provider.Settings;
import android.util.Log;
import android.view.KeyEvent;
@@ -56,6 +57,7 @@
import androidx.annotation.NonNull;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.microdroid.test.common.DeviceProperties;
import com.google.android.material.appbar.MaterialToolbar;
@@ -77,10 +79,19 @@
static final String KEY_DISK_SIZE = "disk_size";
private static final String VM_ADDR = "192.168.0.2";
private static final int TTYD_PORT = 7681;
- private static final int TERMINAL_CONNECTION_TIMEOUT_MS = 20_000;
+ private static final int TERMINAL_CONNECTION_TIMEOUT_MS;
private static final int REQUEST_CODE_INSTALLER = 0x33;
private static final int FONT_SIZE_DEFAULT = 13;
+ static {
+ DeviceProperties prop = DeviceProperties.create(SystemProperties::get);
+ if (prop.isCuttlefish() || prop.isGoldfish()) {
+ TERMINAL_CONNECTION_TIMEOUT_MS = 180_000; // 3 minutes
+ } else {
+ TERMINAL_CONNECTION_TIMEOUT_MS = 20_000; // 20 sec
+ }
+ }
+
private ExecutorService mExecutorService;
private InstalledImage mImage;
private X509Certificate[] mCertificates;
diff --git a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
index 4a18ee8..b0afb54 100644
--- a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
+++ b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
@@ -22,10 +22,12 @@
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.os.SystemProperties;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
+import com.android.microdroid.test.common.DeviceProperties;
import com.android.microdroid.test.common.MetricsProcessor;
import org.junit.After;
@@ -42,12 +44,14 @@
public class TerminalAppTest {
private Instrumentation mInstr;
private Context mTargetContext;
+ private DeviceProperties mProperties;
private final MetricsProcessor mMetricsProc = new MetricsProcessor("avf_perf/terminal/");
@Before
public void setup() {
mInstr = InstrumentationRegistry.getInstrumentation();
mTargetContext = mInstr.getTargetContext();
+ mProperties = DeviceProperties.create(SystemProperties::get);
installVmImage();
}
@@ -66,7 +70,8 @@
@Test
public void boot() throws Exception {
- final long BOOT_TIMEOUT_MILLIS = 30_000; // 30 sec
+ final boolean isNestedVirt = mProperties.isCuttlefish() || mProperties.isGoldfish();
+ final long BOOT_TIMEOUT_MILLIS = isNestedVirt ? 180_000 : 30_000; // 30 sec (or 3 min)
Intent intent = new Intent(mTargetContext, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
diff --git a/tests/helper/Android.bp b/tests/helper/Android.bp
index 1c38d12..2402721 100644
--- a/tests/helper/Android.bp
+++ b/tests/helper/Android.bp
@@ -7,6 +7,7 @@
srcs: ["src/java/com/android/microdroid/test/common/*.java"],
host_supported: true,
sdk_version: "system_current",
+ apex_available: ["com.android.virt"],
}
java_library_static {