package jetbrains.mps.baseLanguage.unitTest.execution; /*Generated by MPS */ import java.util.List; import org.junit.runner.Description; import java.util.regex.Pattern; import java.util.regex.Matcher; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; public class TestEvent { public static final String START_TEST_PREFIX = "<START_TEST>"; public static final String FINISH_TEST_PREFIX = "<FINISH_TEST>"; public static final String FAILURE_TEST_PREFIX = "<TEST_FAILURE_BEGIN>"; public static final String FAILURE_TEST_SUFFIX = "<TEST_FAILURE_END>"; public static final String ASSUMPTION_FAILURE_TEST_PREFIX = "<TEST_ASSUMPTION_FAILURE_BEGIN>"; public static final String ASSUMPTION_FAILURE_TEST_SUFFIX = "<TEST_ASSUMPTION_FAILURE_END>"; public static final String IGNORE_FAILURE_TEST_PREFIX = "<TEST_IGNORE_BEGIN>"; public static final String IGNORE_FAILURE_TEST_SUFFIX = "<TEST_IGNORE_END>"; private static List<String> ALL_TOKENS; private final String myToken; private final String myTestCaseName; private final String myTestMethodName; private final long myMemoryUsage; private final long myTime; public TestEvent(String token, Description description) { myToken = token; myTestCaseName = description.getTestClass().getName(); myTestMethodName = description.getMethodName(); Runtime runtime = Runtime.getRuntime(); myMemoryUsage = runtime.totalMemory() - runtime.freeMemory(); myTime = System.currentTimeMillis(); } public TestEvent(String token, String testCaseName, String testMethodName, long memoryUsage, long time) { myToken = token; myTestCaseName = testCaseName; myTestMethodName = testMethodName; myMemoryUsage = memoryUsage; myTime = time; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append(this.myToken); builder.append(this.myTestCaseName); if (this.myTestMethodName != null) { builder.append(':').append(this.myTestMethodName); } builder.append(":memory=").append(this.myMemoryUsage); builder.append(":time=").append(this.myTime); return builder.toString(); } public String getToken() { return this.myToken; } public String getTestCaseName() { return this.myTestCaseName; } public String getTestMethodName() { return this.myTestMethodName; } public long getMemoryUsage() { return this.myMemoryUsage; } public long getTime() { return this.myTime; } public boolean isTestCaseEvent() { return myTestMethodName == null; } @Override public boolean equals(Object p0) { if (p0 == null || !(p0 instanceof TestEvent)) { return false; } TestEvent event = (TestEvent) p0; return event.myToken.equals(this.myToken) && event.myTestCaseName.equals(this.myTestCaseName) && event.myTestMethodName.equals(this.myTestMethodName); } @Override public int hashCode() { return this.myToken.hashCode() + 31 * this.myTestCaseName.hashCode() + 19 * this.myTestMethodName.hashCode(); } public static String getEventToken(String messageString) { String token = null; for (String expectedToken : TestEvent.ALL_TOKENS) { if (messageString.startsWith(expectedToken)) { token = expectedToken; break; } } return token; } public static TestEvent parse(String messageString) { TestEvent testEvent = null; String expectedToken = getEventToken(messageString); if (expectedToken != null) { testEvent = parse(expectedToken, messageString); } return testEvent; } private static TestEvent parse(String expectedToken, String messageString) { TestEvent testEvent = null; if (messageString.startsWith(expectedToken)) { String params = messageString.substring(expectedToken.length()); { Pattern _pattern_0 = REGEXP_6m48zo_a0a0b0b0pb; Matcher _matcher_0 = _pattern_0.matcher(params); if (_matcher_0.matches()) { testEvent = new TestEvent(expectedToken, _matcher_0.group(1), _matcher_0.group(2), Long.parseLong(_matcher_0.group(3)), Long.parseLong(_matcher_0.group(4))); } } } return testEvent; } static { TestEvent.ALL_TOKENS = ListSequence.fromListAndArray(new ArrayList<String>(), TestEvent.START_TEST_PREFIX, TestEvent.FINISH_TEST_PREFIX, TestEvent.FAILURE_TEST_PREFIX, TestEvent.FAILURE_TEST_SUFFIX, TestEvent.ASSUMPTION_FAILURE_TEST_PREFIX, TestEvent.ASSUMPTION_FAILURE_TEST_SUFFIX, TestEvent.IGNORE_FAILURE_TEST_PREFIX, TestEvent.IGNORE_FAILURE_TEST_SUFFIX); } private static Pattern REGEXP_6m48zo_a0a0b0b0pb = Pattern.compile("([^:]+)(?::([^:]+))?:memory=(\\d+):time=(\\d+)", 0); }