Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

Commit

Permalink
support ceylon.test assumptions eclipse-archived/ceylon-sdk#468
Browse files Browse the repository at this point in the history
  • Loading branch information
thradec committed Nov 29, 2015
1 parent cb52a30 commit f1d2dff
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 26 deletions.
Expand Up @@ -13,15 +13,19 @@ public enum State {
SUCCESS,
FAILURE,
ERROR,
IGNORED;
IGNORED_OR_ABORTED;

public boolean isFinished() {
return this == SUCCESS || this == FAILURE || this == ERROR || this == IGNORED;
return this == SUCCESS || this == FAILURE || this == ERROR || this == IGNORED_OR_ABORTED;
}

public boolean isFailureOrError() {
return this == FAILURE || this == ERROR;
}

public boolean canShowStackTrace() {
return this == FAILURE || this == ERROR || this == State.IGNORED_OR_ABORTED;
}

}

Expand Down
Expand Up @@ -2,7 +2,7 @@

import static com.redhat.ceylon.test.eclipse.plugin.model.TestElement.State.ERROR;
import static com.redhat.ceylon.test.eclipse.plugin.model.TestElement.State.FAILURE;
import static com.redhat.ceylon.test.eclipse.plugin.model.TestElement.State.IGNORED;
import static com.redhat.ceylon.test.eclipse.plugin.model.TestElement.State.IGNORED_OR_ABORTED;
import static com.redhat.ceylon.test.eclipse.plugin.model.TestElement.State.RUNNING;
import static com.redhat.ceylon.test.eclipse.plugin.model.TestElement.State.SUCCESS;
import static com.redhat.ceylon.test.eclipse.plugin.model.TestElement.State.UNDEFINED;
Expand All @@ -16,14 +16,14 @@
import java.util.ArrayList;
import java.util.List;

import net.minidev.json.JSONArray;
import net.minidev.json.JSONObject;
import net.minidev.json.JSONValue;

import org.eclipse.debug.core.ILaunch;

import com.redhat.ceylon.test.eclipse.plugin.CeylonTestPlugin;

import net.minidev.json.JSONArray;
import net.minidev.json.JSONObject;
import net.minidev.json.JSONValue;

public class TestEventListener {

private final static byte EOT = 0x4;
Expand Down Expand Up @@ -104,6 +104,7 @@ private TestEventType parseTestEventType(String event) {
case "testFinish":
case "testError":
case "testIgnore":
case "testAborted":
return TestEventType.TEST_FINISHED;
default:
throw new IllegalArgumentException(event);
Expand Down Expand Up @@ -131,7 +132,10 @@ private TestElement parseTestElement(JSONObject json) {
e.setState(ERROR);
break;
case "ignored":
e.setState(IGNORED);
e.setState(IGNORED_OR_ABORTED);
break;
case "aborted":
e.setState(IGNORED_OR_ABORTED);
break;
default:
e.setState(UNDEFINED);
Expand Down
Expand Up @@ -33,7 +33,7 @@ public static Object acquireLock(TestRun testRun) {
private int successCount = 0;
private int failureCount = 0;
private int errorCount = 0;
private int ignoreCount = 0;
private int ignoreOrAbortedCount = 0;

public TestRun(ILaunch launch) {
this.launch = launch;
Expand Down Expand Up @@ -105,7 +105,7 @@ public int getErrorCount() {
}

public int getIgnoreCount() {
return ignoreCount;
return ignoreOrAbortedCount;
}

public int getFinishedCount() {
Expand All @@ -117,7 +117,7 @@ public State getPackageState(String packageName) {
int success = 0;
int failure = 0;
int error = 0;
int ignored = 0;
int ignoredOrAborted = 0;
int total = 0;

List<TestElement> testsInPackage = testsByPackages.get(packageName);
Expand All @@ -129,7 +129,7 @@ public State getPackageState(String packageName) {
case SUCCESS: success++; break;
case FAILURE: failure++; break;
case ERROR: error++; break;
case IGNORED: ignored++; break;
case IGNORED_OR_ABORTED: ignoredOrAborted++; break;
default: /* noop */ break;
}
}
Expand All @@ -139,11 +139,11 @@ public State getPackageState(String packageName) {
return State.ERROR;
} else if (failure > 0) {
return State.FAILURE;
} else if (ignored == total) {
return State.IGNORED;
} else if (ignoredOrAborted == total) {
return State.IGNORED_OR_ABORTED;
} else if (undefined == total) {
return State.UNDEFINED;
} else if (success + ignored == total) {
} else if (success + ignoredOrAborted == total) {
return State.SUCCESS;
} else if (total > 0) {
return State.RUNNING;
Expand Down Expand Up @@ -302,8 +302,8 @@ private void updateCounters(TestEventType eventType, TestElement element) {
errorCount++;
}
break;
case IGNORED:
ignoreCount++;
case IGNORED_OR_ABORTED:
ignoreOrAbortedCount++;
break;
default:
throw new IllegalStateException(element.toString());
Expand Down
Expand Up @@ -443,12 +443,12 @@ public void selectionChanged(SelectionChangedEvent event) {
if (comparedElement != null) {
if (comparedElement.getTestElement1() != null &&
comparedElement.getTestElement1().getException() != null &&
comparedElement.getTestElement1().getState() != State.IGNORED) {
comparedElement.getTestElement1().getState() != State.IGNORED_OR_ABORTED) {
exception1 = comparedElement.getTestElement1().getException();
}
if (comparedElement.getTestElement2() != null &&
comparedElement.getTestElement2().getException() != null &&
comparedElement.getTestElement2().getState() != State.IGNORED) {
comparedElement.getTestElement2().getState() != State.IGNORED_OR_ABORTED) {
exception2 = comparedElement.getTestElement2().getException();
}
}
Expand Down Expand Up @@ -738,7 +738,7 @@ private ComparedState initState() {
state = ComparedState.REMOVED;
} else if (testElement1.getState() == State.SUCCESS && testElement2.getState() == State.SUCCESS) {
state = ComparedState.UNCHANGED;
} else if (testElement1.getState() == State.IGNORED && testElement2.getState() == State.IGNORED) {
} else if (testElement1.getState() == State.IGNORED_OR_ABORTED && testElement2.getState() == State.IGNORED_OR_ABORTED) {
state = ComparedState.UNCHANGED;
} else if (testElement1.getState() == State.ERROR && testElement2.getState() == State.ERROR) {
state = isUnchangedException() ? ComparedState.UNCHANGED : ComparedState.CHANGED;
Expand All @@ -748,7 +748,7 @@ private ComparedState initState() {
state = ComparedState.REGRESSED_ERROR;
} else if (testElement1.getState() != State.FAILURE && testElement2.getState() == State.FAILURE) {
state = ComparedState.REGRESSED_FAILURE;
} else if (testElement1.getState() != State.SUCCESS && testElement1.getState() != State.IGNORED && testElement2.getState() == State.SUCCESS) {
} else if (testElement1.getState() != State.SUCCESS && testElement1.getState() != State.IGNORED_OR_ABORTED && testElement2.getState() == State.SUCCESS) {
state = ComparedState.FIXED;
} else {
state = ComparedState.CHANGED;
Expand Down
Expand Up @@ -231,7 +231,7 @@ private void updateActionState() {
private boolean isStackTraceAvailable() {
if (selectedTestElement != null &&
selectedTestElement.getException() != null &&
selectedTestElement.getState().isFailureOrError()) {
selectedTestElement.getState().canShowStackTrace()) {
return true;
}
return false;
Expand Down
Expand Up @@ -512,7 +512,7 @@ public void update(ViewerCell cell) {
case SUCCESS: image = getImage(TESTS_SUCCESS); break;
case FAILURE: image = getImage(TESTS_FAILED); break;
case ERROR: image = getImage(TESTS_ERROR); break;
case IGNORED: image = getImage(TESTS_IGNORED); break;
case IGNORED_OR_ABORTED: image = getImage(TESTS_IGNORED); break;
default: image = getImage(TESTS); break;
}

Expand Down Expand Up @@ -748,7 +748,7 @@ public void run() {
if (selectedElement instanceof TestElement) {
try {
TestElement testElement = (TestElement) selectedElement;
if (testElement.getState().isFailureOrError() && testElement.getException() != null) {
if (testElement.getState().canShowStackTrace() && testElement.getException() != null) {
List<String> lines = StackTracePanel.parseStackTraceLine(testElement.getException());
for (String line : lines) {
String trimmedLine = line.trim();
Expand Down
Expand Up @@ -293,7 +293,7 @@ public static Image getTestStateImage(TestElement testElement) {
case SUCCESS: image = getImage(TEST_SUCCESS); break;
case FAILURE: image = getImage(TEST_FAILED); break;
case ERROR: image = getImage(TEST_ERROR); break;
case IGNORED: image = getImage(TEST_IGNORED); break;
case IGNORED_OR_ABORTED: image = getImage(TEST_IGNORED); break;
default: image = getImage(TEST); break;
}
} else {
Expand All @@ -302,7 +302,7 @@ public static Image getTestStateImage(TestElement testElement) {
case SUCCESS: image = getImage(TESTS_SUCCESS); break;
case FAILURE: image = getImage(TESTS_FAILED); break;
case ERROR: image = getImage(TESTS_ERROR); break;
case IGNORED: image = getImage(TESTS_IGNORED); break;
case IGNORED_OR_ABORTED: image = getImage(TESTS_IGNORED); break;
default: image = getImage(TESTS); break;
}
}
Expand Down

0 comments on commit f1d2dff

Please sign in to comment.