diff options
| author | J08nY | 2024-08-19 19:03:05 +0200 |
|---|---|---|
| committer | J08nY | 2024-08-19 19:03:05 +0200 |
| commit | fd7d7ef22318ae600ec7d62df222a9bacc180c06 (patch) | |
| tree | 3862017f1a3329eae262a3ae3ea7f2ae5e0794df /common | |
| parent | bd1531f687332ff39736af25a22821d5cefc44ad (diff) | |
| download | ECTester-fd7d7ef22318ae600ec7d62df222a9bacc180c06.tar.gz ECTester-fd7d7ef22318ae600ec7d62df222a9bacc180c06.tar.zst ECTester-fd7d7ef22318ae600ec7d62df222a9bacc180c06.zip | |
Diffstat (limited to 'common')
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); |
