aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/JacocoWorkaroundJUnitRunner.java
blob: b310ed5b89aab46c69d685b8985466dcdc020f9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package org.sufficientlysecure.keychain;


import java.lang.reflect.Method;

import android.os.Bundle;
import android.support.test.runner.AndroidJUnitRunner;


public class JacocoWorkaroundJUnitRunner 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 (Exception e) {
            e.printStackTrace();
        }
        super.finish(resultCode, results);
    }
}