public void run() {

        int idx = 0;
        for (Test test : tests) {
            // Clean up and let the main thread calm down
            System.gc();
            try {
                Thread.sleep(300);
                System.gc();
                Thread.sleep(300);
            } catch (InterruptedException e) {
            }

            test.prepareTest();
            if (!canceled) {
                test.runTest();
            }
            if (!canceled) {
                boolean isLastEvent = idx == tests.size() - 1;
                controlBus.post(new TestFinishedEvent(test, isLastEvent));
            }
            idx++;
        }

    }
This thread initialize all selected tests and runs them through. Also the thread skips the tests, when it is canceled
EventBusPerformance/src/org/greenrobot/eventbusperf/TestRunner.java