summaryrefslogtreecommitdiffstats
path: root/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Environment.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Environment.java')
-rw-r--r--mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Environment.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Environment.java b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Environment.java
new file mode 100644
index 0000000000..b2ed9df4d5
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Environment.java
@@ -0,0 +1,93 @@
+/* Any copyright is dedicated to the Public Domain.
+http://creativecommons.org/publicdomain/zero/1.0/ */
+
+package org.mozilla.geckoview.test.util;
+
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Debug;
+import androidx.test.platform.app.InstrumentationRegistry;
+import org.mozilla.geckoview.BuildConfig;
+
+public class Environment {
+ public static final long DEFAULT_TIMEOUT_MILLIS = 30000;
+ public static final long DEFAULT_ARM_DEVICE_TIMEOUT_MILLIS = 30000;
+ public static final long DEFAULT_ARM_EMULATOR_TIMEOUT_MILLIS = 120000;
+ public static final long DEFAULT_X86_DEVICE_TIMEOUT_MILLIS = 30000;
+ public static final long DEFAULT_X86_EMULATOR_TIMEOUT_MILLIS = 30000;
+ public static final long DEFAULT_IDE_DEBUG_TIMEOUT_MILLIS = 86400000;
+
+ private String getEnvVar(final String name) {
+ final int nameLen = name.length();
+ final Bundle args = InstrumentationRegistry.getArguments();
+ String env = args.getString("env0", null);
+ for (int i = 1; env != null; i++) {
+ if (env.length() >= nameLen + 1 && env.startsWith(name) && env.charAt(nameLen) == '=') {
+ return env.substring(nameLen + 1);
+ }
+ env = args.getString("env" + i, null);
+ }
+ return "";
+ }
+
+ public boolean isAutomation() {
+ return !getEnvVar("MOZ_IN_AUTOMATION").isEmpty();
+ }
+
+ public boolean shouldShutdownOnCrash() {
+ return !getEnvVar("MOZ_CRASHREPORTER_SHUTDOWN").isEmpty();
+ }
+
+ public boolean isDebugging() {
+ return Debug.isDebuggerConnected();
+ }
+
+ public boolean isEmulator() {
+ return "generic".equals(Build.DEVICE) || Build.DEVICE.startsWith("generic_");
+ }
+
+ public boolean isDebugBuild() {
+ return BuildConfig.DEBUG_BUILD;
+ }
+
+ public boolean isX86() {
+ final String abi;
+ if (Build.VERSION.SDK_INT >= 21) {
+ abi = Build.SUPPORTED_ABIS[0];
+ } else {
+ abi = Build.CPU_ABI;
+ }
+
+ return abi.startsWith("x86");
+ }
+
+ public boolean isFission() {
+ // NOTE: This isn't accurate, as it doesn't take into account the default
+ // value of the pref or environment variables like
+ // `MOZ_FORCE_DISABLE_FISSION`.
+ return getEnvVar("MOZ_FORCE_ENABLE_FISSION").equals("1");
+ }
+
+ public boolean isWebrender() {
+ return getEnvVar("MOZ_WEBRENDER").equals("1");
+ }
+
+ public boolean isIsolatedProcess() {
+ return BuildConfig.MOZ_ANDROID_CONTENT_SERVICE_ISOLATED_PROCESS;
+ }
+
+ public long getScaledTimeoutMillis() {
+ if (isX86()) {
+ return isEmulator() ? DEFAULT_X86_EMULATOR_TIMEOUT_MILLIS : DEFAULT_X86_DEVICE_TIMEOUT_MILLIS;
+ }
+ return isEmulator() ? DEFAULT_ARM_EMULATOR_TIMEOUT_MILLIS : DEFAULT_ARM_DEVICE_TIMEOUT_MILLIS;
+ }
+
+ public long getDefaultTimeoutMillis() {
+ return isDebugging() ? DEFAULT_IDE_DEBUG_TIMEOUT_MILLIS : getScaledTimeoutMillis();
+ }
+
+ public boolean isNightly() {
+ return BuildConfig.NIGHTLY_BUILD;
+ }
+}