aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorJ08nY2024-08-19 19:03:05 +0200
committerJ08nY2024-08-19 19:03:05 +0200
commitfd7d7ef22318ae600ec7d62df222a9bacc180c06 (patch)
tree3862017f1a3329eae262a3ae3ea7f2ae5e0794df /common
parentbd1531f687332ff39736af25a22821d5cefc44ad (diff)
downloadECTester-fd7d7ef22318ae600ec7d62df222a9bacc180c06.tar.gz
ECTester-fd7d7ef22318ae600ec7d62df222a9bacc180c06.tar.zst
ECTester-fd7d7ef22318ae600ec7d62df222a9bacc180c06.zip
Diffstat (limited to 'common')
-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
4 files changed, 33 insertions, 3 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);