summaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/common
diff options
context:
space:
mode:
authorJ08nY2018-07-05 19:30:16 +0200
committerJ08nY2018-07-05 19:30:16 +0200
commit1bfa90811a0b4ea02d98ea7dedcfc07bec89d19c (patch)
tree4686c4dc4fe4aa99749fdb377ed9dfa2f382146b /src/cz/crcs/ectester/common
parent8b932a878959d53fc449f22de406a9adc6d9edf0 (diff)
downloadECTester-1bfa90811a0b4ea02d98ea7dedcfc07bec89d19c.tar.gz
ECTester-1bfa90811a0b4ea02d98ea7dedcfc07bec89d19c.tar.zst
ECTester-1bfa90811a0b4ea02d98ea7dedcfc07bec89d19c.zip
Add ability to skip tests/run only a part of a test suite.
Diffstat (limited to 'src/cz/crcs/ectester/common')
-rw-r--r--src/cz/crcs/ectester/common/output/BaseTextTestWriter.java19
-rw-r--r--src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java4
-rw-r--r--src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java4
-rw-r--r--src/cz/crcs/ectester/common/output/TeeTestWriter.java8
-rw-r--r--src/cz/crcs/ectester/common/output/TestWriter.java9
-rw-r--r--src/cz/crcs/ectester/common/test/TestSuite.java22
6 files changed, 41 insertions, 25 deletions
diff --git a/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java b/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java
index c3ce640..eef767b 100644
--- a/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java
+++ b/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java
@@ -38,20 +38,18 @@ public abstract class BaseTextTestWriter implements TestWriter {
}
/**
- *
* @param t
* @return
*/
protected abstract String testableString(Testable t);
/**
- *
* @param suite
* @return
*/
protected abstract String deviceString(TestSuite suite);
- private String testString(Test t, String prefix) {
+ private String testString(Test t, String prefix, int index) {
boolean compound = t instanceof CompoundTest;
Result result = t.getResult();
@@ -61,7 +59,8 @@ public abstract class BaseTextTestWriter implements TestWriter {
out.append(compound ? "┳ " : "━ ");
int width = BASE_WIDTH - (prefix.length() + out.length());
String widthSpec = "%-" + String.valueOf(width) + "s";
- out.append(String.format(widthSpec, t.getDescription()));
+ String desc = ((prefix.equals("")) ? "(" + index + ") " : "") + t.getDescription();
+ out.append(String.format(widthSpec, desc));
out.append(" ┃ ");
Colors.Foreground valueColor;
if (result.getValue().ok()) {
@@ -82,10 +81,10 @@ public abstract class BaseTextTestWriter implements TestWriter {
for (int i = 0; i < tests.length; ++i) {
if (i == tests.length - 1) {
out.append(prefix).append(" ┗ ");
- out.append(testString(tests[i], prefix + " "));
+ out.append(testString(tests[i], prefix + " ", index));
} else {
out.append(prefix).append(" ┣ ");
- out.append(testString(tests[i], prefix + " ┃ "));
+ out.append(testString(tests[i], prefix + " ┃ ", index));
}
if (i != tests.length - 1) {
@@ -100,10 +99,10 @@ public abstract class BaseTextTestWriter implements TestWriter {
}
@Override
- public void outputTest(Test t) {
+ public void outputTest(Test t, int index) {
if (!t.hasRun())
return;
- output.println(testString(t, ""));
+ output.println(testString(t, "", index));
output.flush();
}
@@ -122,8 +121,8 @@ public abstract class BaseTextTestWriter implements TestWriter {
}
@Override
- public void outputError(Test t, Throwable cause) {
- output.println(testString(t, ""));
+ public void outputError(Test t, Throwable cause, int index) {
+ output.println(testString(t, "", index));
output.print(errorString(cause));
output.flush();
}
diff --git a/src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java b/src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java
index 4e0c236..b666e08 100644
--- a/src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java
+++ b/src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java
@@ -112,14 +112,14 @@ public abstract class BaseXMLTestWriter implements TestWriter {
}
@Override
- public void outputTest(Test t) {
+ public void outputTest(Test t, int index) {
if (!t.hasRun())
return;
tests.appendChild(testElement(t));
}
@Override
- public void outputError(Test t, Throwable cause) {
+ public void outputError(Test t, Throwable cause, int index) {
tests.appendChild(testElement(t));
}
diff --git a/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java b/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java
index cab2632..e3c7952 100644
--- a/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java
+++ b/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java
@@ -89,14 +89,14 @@ public abstract class BaseYAMLTestWriter implements TestWriter {
}
@Override
- public void outputTest(Test t) {
+ public void outputTest(Test t, int index) {
if (!t.hasRun())
return;
tests.add(testObject(t));
}
@Override
- public void outputError(Test t, Throwable cause) {
+ public void outputError(Test t, Throwable cause, int index) {
tests.add(testObject(t));
}
diff --git a/src/cz/crcs/ectester/common/output/TeeTestWriter.java b/src/cz/crcs/ectester/common/output/TeeTestWriter.java
index 35912fa..58a0a15 100644
--- a/src/cz/crcs/ectester/common/output/TeeTestWriter.java
+++ b/src/cz/crcs/ectester/common/output/TeeTestWriter.java
@@ -21,16 +21,16 @@ public class TeeTestWriter implements TestWriter {
}
@Override
- public void outputTest(Test t) {
+ public void outputTest(Test t, int index) {
for (TestWriter writer : writers) {
- writer.outputTest(t);
+ writer.outputTest(t, index);
}
}
@Override
- public void outputError(Test t, Throwable cause) {
+ public void outputError(Test t, Throwable cause, int index) {
for (TestWriter writer : writers) {
- writer.outputError(t, cause);
+ writer.outputError(t, cause, index);
}
}
diff --git a/src/cz/crcs/ectester/common/output/TestWriter.java b/src/cz/crcs/ectester/common/output/TestWriter.java
index 7de23a5..eb95804 100644
--- a/src/cz/crcs/ectester/common/output/TestWriter.java
+++ b/src/cz/crcs/ectester/common/output/TestWriter.java
@@ -21,15 +21,16 @@ public interface TestWriter {
/**
*
* @param t
+ * @param index
*/
- void outputTest(Test t);
+ void outputTest(Test t, int index);
/**
- *
- * @param t
+ * @param t
* @param cause
+ * @param index
*/
- void outputError(Test t, Throwable cause);
+ void outputError(Test t, Throwable cause, int index);
/**
*
diff --git a/src/cz/crcs/ectester/common/test/TestSuite.java b/src/cz/crcs/ectester/common/test/TestSuite.java
index 5f26f52..b12680a 100644
--- a/src/cz/crcs/ectester/common/test/TestSuite.java
+++ b/src/cz/crcs/ectester/common/test/TestSuite.java
@@ -10,6 +10,9 @@ public abstract class TestSuite {
protected String[] description;
private TestWriter writer;
private Test running;
+ private int ran = 0;
+ private int runFrom = 0;
+ private int runTo = -1;
public TestSuite(TestWriter writer, String name, String... description) {
this.writer = writer;
@@ -21,11 +24,21 @@ public abstract class TestSuite {
* Run the <code>TestSuite</code>.
*/
public void run() {
+ run(0);
+ }
+
+ public void run(int from) {
+ run(from, -1);
+ }
+
+ public void run(int from, int to) {
+ this.runFrom = from;
+ this.runTo = to;
writer.begin(this);
try {
runTests();
} catch (TestException e) {
- writer.outputError(running, e);
+ writer.outputError(running, e, ran);
} catch (Exception e) {
writer.end();
throw new TestSuiteException(e);
@@ -55,8 +68,11 @@ public abstract class TestSuite {
* @throws TestException
*/
protected <T extends Test> T doTest(T t) {
- runTest(t);
- writer.outputTest(t);
+ if (ran >= runFrom && (runTo < 0 || ran <= runTo)) {
+ runTest(t);
+ writer.outputTest(t, ran);
+ }
+ ran++;
return t;
}