aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/androidTest
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-09-03 13:40:10 -0700
committerKenny Root <kenny@the-b.org>2015-09-03 13:48:31 -0700
commit5a597c1ff8705588a70fdb3092a63b56ffb4c02a (patch)
tree37000c73c6e3a08369c28e3f603195a697185483 /app/src/androidTest
parent33f091b73b55103b9d2c43aeda32bebc4f83f5ed (diff)
downloadconnectbot-5a597c1ff8705588a70fdb3092a63b56ffb4c02a.tar.gz
connectbot-5a597c1ff8705588a70fdb3092a63b56ffb4c02a.tar.bz2
connectbot-5a597c1ff8705588a70fdb3092a63b56ffb4c02a.zip
Fix instrumentation on connected tests
JaCoCo was not setting its output file correctly and it ended up being attempted to be written to the root directory which didn't work. This is a temporary fix until an updated test runner comes out.
Diffstat (limited to 'app/src/androidTest')
-rw-r--r--app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java b/app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java
new file mode 100644
index 0000000..fbadb9b
--- /dev/null
+++ b/app/src/androidTest/java/org/connectbot/FixJacocoTestRunner.java
@@ -0,0 +1,34 @@
+/*
+ * This class comes from a StackOverflow post:
+ * http://stackoverflow.com/questions/30337375/empty-jacoco-report-for-android-espresso/31600193#31600193
+ *
+ * This should be fixed in com.android.test.support:runner:0.4 and this class can be removed.
+ */
+package org.connectbot;
+
+import android.os.Bundle;
+import android.support.test.runner.AndroidJUnitRunner;
+import android.util.Log;
+
+import java.lang.reflect.Method;
+
+public class FixJacocoTestRunner extends AndroidJUnitRunner {
+
+ static {
+ System.setProperty("jacoco-agent.destfile", "/data/data/" + BuildConfig.APPLICATION_ID + "/coverage.ec");
+ }
+
+ @Override
+ public void finish(int resultCode, Bundle results) {
+ try {
+ Class rt = Class.forName("org.jacoco.agent.rt.RT");
+ Method getAgent = rt.getMethod("getAgent");
+ Method dump = getAgent.getReturnType().getMethod("dump", boolean.class);
+ Object agent = getAgent.invoke(null);
+ dump.invoke(agent, false);
+ } catch (Throwable e) {
+ Log.d("JACOCO", e.getMessage());
+ }
+ super.finish(resultCode, results);
+ }
+}