summaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/reader/output
diff options
context:
space:
mode:
authorJ08nY2017-10-25 20:17:07 +0200
committerJ08nY2017-10-25 20:17:07 +0200
commit2c6c2a2d35292368b7263fedb6db508da7ded4c4 (patch)
treee5c3c549c0ee58af6f50b1c73dc11d93f6498da3 /src/cz/crcs/ectester/reader/output
parent69a4116df7b54ddfdaba2f8aa80ecb9e9a2ed9a7 (diff)
downloadECTester-2c6c2a2d35292368b7263fedb6db508da7ded4c4.tar.gz
ECTester-2c6c2a2d35292368b7263fedb6db508da7ded4c4.tar.zst
ECTester-2c6c2a2d35292368b7263fedb6db508da7ded4c4.zip
Split ResponseWriter into separate class, introduce TestRunner.
Diffstat (limited to 'src/cz/crcs/ectester/reader/output')
-rw-r--r--src/cz/crcs/ectester/reader/output/OutputWriter.java18
-rw-r--r--src/cz/crcs/ectester/reader/output/ResponseWriter.java39
-rw-r--r--src/cz/crcs/ectester/reader/output/TeeOutputStream.java4
-rw-r--r--src/cz/crcs/ectester/reader/output/TestWriter.java15
-rw-r--r--src/cz/crcs/ectester/reader/output/TextTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/TextOutputWriter.java)38
-rw-r--r--src/cz/crcs/ectester/reader/output/XMLTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/XMLOutputWriter.java)17
-rw-r--r--src/cz/crcs/ectester/reader/output/YAMLTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/YAMLOutputWriter.java)15
7 files changed, 80 insertions, 66 deletions
diff --git a/src/cz/crcs/ectester/reader/output/OutputWriter.java b/src/cz/crcs/ectester/reader/output/OutputWriter.java
deleted file mode 100644
index 09185b1..0000000
--- a/src/cz/crcs/ectester/reader/output/OutputWriter.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cz.crcs.ectester.reader.output;
-
-import cz.crcs.ectester.reader.response.Response;
-import cz.crcs.ectester.reader.test.Test;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-
-/**
- * @author Jan Jancar johny@neuromancer.sk
- */
-public interface OutputWriter {
- void begin();
- void outputResponse(Response r);
- void outputTest(Test t);
- void end();
-}
diff --git a/src/cz/crcs/ectester/reader/output/ResponseWriter.java b/src/cz/crcs/ectester/reader/output/ResponseWriter.java
new file mode 100644
index 0000000..120fdba
--- /dev/null
+++ b/src/cz/crcs/ectester/reader/output/ResponseWriter.java
@@ -0,0 +1,39 @@
+package cz.crcs.ectester.reader.output;
+
+import cz.crcs.ectester.reader.Util;
+import cz.crcs.ectester.reader.response.Response;
+
+import java.io.PrintStream;
+
+/**
+ * @author Jan Jancar johny@neuromancer.sk
+ */
+public class ResponseWriter {
+ private PrintStream output;
+
+ public ResponseWriter(PrintStream output) {
+ this.output = output;
+ }
+
+ public String responseSuffix(Response r) {
+ StringBuilder suffix = new StringBuilder();
+ for (int j = 0; j < r.getNumSW(); ++j) {
+ short sw = r.getSW(j);
+ if (sw != 0) {
+ suffix.append(" ").append(Util.getSWString(sw));
+ }
+ }
+ if (suffix.length() == 0) {
+ suffix.append(" [").append(Util.getSW(r.getNaturalSW())).append("]");
+ }
+ return String.format("%4d ms : %s", r.getDuration() / 1000000, suffix);
+ }
+
+ public void outputResponse(Response r) {
+ String out = "";
+ out += String.format("%-70s:", r.getDescription()) + " : ";
+ out += responseSuffix(r);
+ output.println(out);
+ output.flush();
+ }
+}
diff --git a/src/cz/crcs/ectester/reader/output/TeeOutputStream.java b/src/cz/crcs/ectester/reader/output/TeeOutputStream.java
index e18d32b..2a1af99 100644
--- a/src/cz/crcs/ectester/reader/output/TeeOutputStream.java
+++ b/src/cz/crcs/ectester/reader/output/TeeOutputStream.java
@@ -22,14 +22,14 @@ public class TeeOutputStream extends OutputStream {
@Override
public void flush() throws IOException {
- for (OutputStream out :outputs) {
+ for (OutputStream out : outputs) {
out.flush();
}
}
@Override
public void close() throws IOException {
- for (OutputStream out :outputs) {
+ for (OutputStream out : outputs) {
out.close();
}
}
diff --git a/src/cz/crcs/ectester/reader/output/TestWriter.java b/src/cz/crcs/ectester/reader/output/TestWriter.java
new file mode 100644
index 0000000..74c76fb
--- /dev/null
+++ b/src/cz/crcs/ectester/reader/output/TestWriter.java
@@ -0,0 +1,15 @@
+package cz.crcs.ectester.reader.output;
+
+import cz.crcs.ectester.reader.test.Test;
+import cz.crcs.ectester.reader.test.TestSuite;
+
+/**
+ * @author Jan Jancar johny@neuromancer.sk
+ */
+public interface TestWriter {
+ void begin(TestSuite suite);
+
+ void outputTest(Test t);
+
+ void end();
+}
diff --git a/src/cz/crcs/ectester/reader/output/TextOutputWriter.java b/src/cz/crcs/ectester/reader/output/TextTestWriter.java
index 7f9cdae..80c7204 100644
--- a/src/cz/crcs/ectester/reader/output/TextOutputWriter.java
+++ b/src/cz/crcs/ectester/reader/output/TextTestWriter.java
@@ -1,52 +1,30 @@
package cz.crcs.ectester.reader.output;
-import cz.crcs.ectester.reader.Util;
-import cz.crcs.ectester.reader.response.Response;
import cz.crcs.ectester.reader.test.Test;
+import cz.crcs.ectester.reader.test.TestSuite;
import java.io.PrintStream;
/**
* @author Jan Jancar johny@neuromancer.sk
*/
-public class TextOutputWriter implements OutputWriter {
+public class TextTestWriter implements TestWriter {
private PrintStream output;
+ private ResponseWriter respWriter;
- public TextOutputWriter(PrintStream output) {
+ public TextTestWriter(PrintStream output) {
this.output = output;
+ this.respWriter = new ResponseWriter(output);
}
@Override
- public void begin() {
+ public void begin(TestSuite suite) {
}
private String testPrefix(Test t) {
return String.format("%-4s", t.getResult() == Test.Result.SUCCESS ? "OK" : "NOK");
}
- private String responseSuffix(Response r) {
- StringBuilder suffix = new StringBuilder();
- for (int j = 0; j < r.getNumSW(); ++j) {
- short sw = r.getSW(j);
- if (sw != 0) {
- suffix.append(" ").append(Util.getSWString(sw));
- }
- }
- if (suffix.length() == 0) {
- suffix.append(" [").append(Util.getSW(r.getNaturalSW())).append("]");
- }
- return String.format("%4d ms : %s", r.getDuration() / 1000000, suffix);
- }
-
- @Override
- public void outputResponse(Response r) {
- String out = "";
- out += String.format("%-70s:", r.getDescription()) + " : ";
- out += responseSuffix(r);
- output.println(out);
- output.flush();
- }
-
private String testString(Test t) {
if (!t.hasRun())
return null;
@@ -55,7 +33,7 @@ public class TextOutputWriter implements OutputWriter {
if (t instanceof Test.Simple) {
Test.Simple test = (Test.Simple) t;
out.append(String.format("%-70s:", testPrefix(t) + " : " + test.getDescription())).append(" : ");
- out.append(responseSuffix(test.getResponse()));
+ out.append(respWriter.responseSuffix(test.getResponse()));
} else if (t instanceof Test.Compound) {
Test.Compound test = (Test.Compound) t;
Test[] tests = test.getTests();
@@ -76,6 +54,8 @@ public class TextOutputWriter implements OutputWriter {
@Override
public void outputTest(Test t) {
+ if (!t.hasRun())
+ return;
output.println(testString(t));
output.flush();
}
diff --git a/src/cz/crcs/ectester/reader/output/XMLOutputWriter.java b/src/cz/crcs/ectester/reader/output/XMLTestWriter.java
index b9f8c8f..29a97db 100644
--- a/src/cz/crcs/ectester/reader/output/XMLOutputWriter.java
+++ b/src/cz/crcs/ectester/reader/output/XMLTestWriter.java
@@ -3,13 +3,17 @@ package cz.crcs.ectester.reader.output;
import cz.crcs.ectester.reader.Util;
import cz.crcs.ectester.reader.response.Response;
import cz.crcs.ectester.reader.test.Test;
+import cz.crcs.ectester.reader.test.TestSuite;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.*;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.OutputStream;
@@ -17,18 +21,18 @@ import java.io.OutputStream;
/**
* @author Jan Jancar johny@neuromancer.sk
*/
-public class XMLOutputWriter implements OutputWriter {
+public class XMLTestWriter implements TestWriter {
private OutputStream output;
private Document doc;
private Node root;
- public XMLOutputWriter(OutputStream output) throws ParserConfigurationException {
+ public XMLTestWriter(OutputStream output) throws ParserConfigurationException {
this.output = output;
this.doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
}
@Override
- public void begin() {
+ public void begin(TestSuite suite) {
root = doc.createElement("testRun");
doc.appendChild(root);
}
@@ -64,11 +68,6 @@ public class XMLOutputWriter implements OutputWriter {
return responseElem;
}
- @Override
- public void outputResponse(Response r) {
- root.appendChild(responseElement(r));
- }
-
private Element testElement(Test t) {
Element testElem = doc.createElement("test");
diff --git a/src/cz/crcs/ectester/reader/output/YAMLOutputWriter.java b/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java
index 211bd47..10d9bb9 100644
--- a/src/cz/crcs/ectester/reader/output/YAMLOutputWriter.java
+++ b/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java
@@ -3,6 +3,7 @@ package cz.crcs.ectester.reader.output;
import cz.crcs.ectester.reader.Util;
import cz.crcs.ectester.reader.response.Response;
import cz.crcs.ectester.reader.test.Test;
+import cz.crcs.ectester.reader.test.TestSuite;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
@@ -15,16 +16,16 @@ import java.util.Map;
/**
* @author Jan Jancar johny@neuromancer.sk
*/
-public class YAMLOutputWriter implements OutputWriter {
+public class YAMLTestWriter implements TestWriter {
private PrintStream output;
private List<Object> testRun;
- public YAMLOutputWriter(PrintStream output) {
+ public YAMLTestWriter(PrintStream output) {
this.output = output;
}
@Override
- public void begin() {
+ public void begin(TestSuite suite) {
output.println("---");
testRun = new LinkedList<>();
}
@@ -44,11 +45,6 @@ public class YAMLOutputWriter implements OutputWriter {
return responseObj;
}
- @Override
- public void outputResponse(Response r) {
- testRun.add(responseObject(r));
- }
-
private Map<String, Object> testObject(Test t) {
Map<String, Object> testObj = new HashMap<>();
@@ -74,6 +70,8 @@ public class YAMLOutputWriter implements OutputWriter {
@Override
public void outputTest(Test t) {
+ if (!t.hasRun())
+ return;
testRun.add(testObject(t));
}
@@ -81,6 +79,7 @@ public class YAMLOutputWriter implements OutputWriter {
public void end() {
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ options.setPrettyFlow(true);
Yaml yaml = new Yaml(options);
Map<String, List<Object>> result = new HashMap<>();