aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java26
-rw-r--r--common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java1
-rw-r--r--common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java1
-rw-r--r--common/src/main/java/cz/crcs/ectester/common/test/Test.java8
-rw-r--r--reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java3
5 files changed, 35 insertions, 4 deletions
diff --git a/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java
index a90bc56..177022b 100644
--- a/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java
+++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java
@@ -6,7 +6,9 @@ import cz.crcs.ectester.common.test.*;
import java.io.PrintStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.time.Duration;
import java.util.Date;
+import java.util.concurrent.TimeUnit;
/**
* An absctract basis of a TextTestWriter, which outputs in a human readable format, into console.
@@ -58,13 +60,13 @@ public abstract class BaseTextTestWriter implements TestWriter {
String line = "";
if (root) {
- char[] charLine = new char[BASE_WIDTH + 24];
- new String(new char[BASE_WIDTH + 24]).replace("\0", "━").getChars(0, charLine.length - 1, charLine, 0);
+ char[] charLine = new char[BASE_WIDTH + 26];
+ new String(new char[BASE_WIDTH + 26]).replace("\0", "━").getChars(0, charLine.length - 1, charLine, 0);
charLine[0] = '■';
charLine[4] = '┳';
charLine[BASE_WIDTH + 1] = '┳';
charLine[BASE_WIDTH + 13] = '┳';
- charLine[BASE_WIDTH + 23] = '┓';
+ charLine[BASE_WIDTH + 25] = '┓';
line = new String(charLine) + System.lineSeparator();
}
@@ -96,6 +98,24 @@ public abstract class BaseTextTestWriter implements TestWriter {
}
out.append(Colors.colored(String.format("%-9s", result.getValue().name()), Colors.Attribute.BOLD, valueColor));
out.append(" ┃ ");
+ long totalNanos = t.getDuration();
+ double totalSeconds = totalNanos / 1e9;
+ double totalMillis = totalNanos / 1e6;
+ double totalMicros = totalNanos / 1e3;
+ if (totalSeconds < 1) {
+ if (totalMillis < 1) {
+ if (totalMicros < 1) {
+ out.append(String.format("%7d ns", totalNanos));
+ } else {
+ out.append(String.format("%6.2f µs", totalMicros));
+ }
+ } else {
+ out.append(String.format("%6.2f ms", totalMillis));
+ }
+ } else {
+ out.append(String.format("%6.2f s", totalSeconds));
+ }
+ out.append(" ┃ ");
if (compound) {
CompoundTest test = (CompoundTest) t;
diff --git a/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java
index 5157ef0..6a85b86 100644
--- a/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java
+++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java
@@ -111,6 +111,7 @@ public abstract class BaseXMLTestWriter implements TestWriter {
if (index != -1) {
testElem.setAttribute("index", String.valueOf(index));
}
+ testElem.setAttribute("duration", String.valueOf(t.getDuration()));
return testElem;
}
diff --git a/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java
index e9efbc1..d7975fc 100644
--- a/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java
+++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java
@@ -87,6 +87,7 @@ public abstract class BaseYAMLTestWriter implements TestWriter {
if (index != -1) {
testObj.put("index", index);
}
+ testObj.put("duration", t.getDuration());
return testObj;
}
diff --git a/common/src/main/java/cz/crcs/ectester/common/test/Test.java b/common/src/main/java/cz/crcs/ectester/common/test/Test.java
index 8bf9502..21ee295 100644
--- a/common/src/main/java/cz/crcs/ectester/common/test/Test.java
+++ b/common/src/main/java/cz/crcs/ectester/common/test/Test.java
@@ -10,6 +10,7 @@ import static cz.crcs.ectester.common.test.Result.Value;
public abstract class Test implements Testable, Cloneable {
protected boolean hasRun;
protected boolean hasStarted;
+ protected long duration;
protected Result result;
public Result getResult() {
@@ -48,6 +49,10 @@ public abstract class Test implements Testable, Cloneable {
return hasStarted;
}
+ public long getDuration() {
+ return duration;
+ }
+
@Override
public void reset() {
hasRun = false;
@@ -68,7 +73,10 @@ public abstract class Test implements Testable, Cloneable {
return;
try {
hasStarted = true;
+ long elapsed = -System.nanoTime();
runSelf();
+ elapsed += System.nanoTime();
+ duration = elapsed;
hasRun = true;
} catch (TestException e) {
result = new Result(Value.ERROR, e);
diff --git a/reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java b/reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java
index da8dbfc..2960fc4 100644
--- a/reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java
+++ b/reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java
@@ -13,7 +13,7 @@ import java.util.regex.Pattern;
*/
public class FileTestWriter extends BaseFileTestWriter {
- private static final Pattern PREFIX = Pattern.compile("(text|xml|yaml|yml):.+");
+ private static final Pattern PREFIX = Pattern.compile("(text|txt|xml|yaml|yml):.+");
public FileTestWriter(String defaultFormat, boolean systemOut, String[] files) throws ParserConfigurationException, FileNotFoundException {
super(defaultFormat, systemOut, files);
@@ -37,6 +37,7 @@ public class FileTestWriter extends BaseFileTestWriter {
}
switch (format) {
case "text":
+ case "txt":
return new TextTestWriter(out);
case "xml":
return new XMLTestWriter(out);