Improper cleanup between runs causes erroneous timeouts to be triggered
These two variables are not properly reset when a run completes
private void checkSampleTimeout() {
long previousSampleCount = 0;
long previousSampleTime = 0;
while noResultsReturned = 0; is reset in the endOfRun method.
This means that once the first run completes and noResultsReturned is reset to 0 this if condition is never true
if (previousSampleCount < noResultsReturned) {
previousSampleCount = noResultsReturned;
previousSampleTime = System.currentTimeMillis();
} else {
if (previousSampleTime < (System.currentTimeMillis() - jlbhOptions.timeout)) {
printStream.println("Sample timed out. Aborting test...");
abort();
break;
}
}
Meaning the previousSampleCount and previousSampleTime are never updated and unless the jlbhOptions.timeout value is larger than the total runtime of all remaining runs in the test it will eventually trigger a timeout when it should not.
To fix this previousSampleCount and previousSampleTime should be reset alongside the reset that already happens to noResultsReturned in the endOfRun method.
@ivoadf can you provide a failing unit test pls?