aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/reader/output/FileTestWriter.java
diff options
context:
space:
mode:
authorJ08nY2018-02-11 03:04:40 +0100
committerJ08nY2018-02-11 03:04:40 +0100
commit5097e783310242cfb782c62d84d65a4b3a387a72 (patch)
treeae513c0401b16ac4e109492e35c15232cdddcb55 /src/cz/crcs/ectester/reader/output/FileTestWriter.java
parent91e83f3caea0d08c59bfbe3603cfa413ef1f0624 (diff)
downloadECTester-5097e783310242cfb782c62d84d65a4b3a387a72.tar.gz
ECTester-5097e783310242cfb782c62d84d65a4b3a387a72.tar.zst
ECTester-5097e783310242cfb782c62d84d65a4b3a387a72.zip
Allow outputing test suite results into more formats and files.
Diffstat (limited to '')
-rw-r--r--src/cz/crcs/ectester/reader/output/FileTestWriter.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/reader/output/FileTestWriter.java b/src/cz/crcs/ectester/reader/output/FileTestWriter.java
new file mode 100644
index 0000000..6cfece1
--- /dev/null
+++ b/src/cz/crcs/ectester/reader/output/FileTestWriter.java
@@ -0,0 +1,54 @@
+package cz.crcs.ectester.reader.output;
+
+import cz.crcs.ectester.common.output.TeeTestWriter;
+import cz.crcs.ectester.common.output.TestWriter;
+
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.util.regex.Pattern;
+
+/**
+ * @author Jan Jancar johny@neuromancer.sk
+ */
+public class FileTestWriter extends TeeTestWriter {
+
+ private static final Pattern PREFIX = Pattern.compile("(text|xml|yaml|yml):.+");
+
+ public FileTestWriter(String defaultFormat, boolean systemOut, String[] files) throws ParserConfigurationException, FileNotFoundException {
+ int fLength = files == null ? 0 : files.length;
+ writers = new TestWriter[systemOut ? fLength + 1 : fLength];
+ System.err.println(writers.length);
+ if (systemOut) {
+ writers[0] = createWriter(defaultFormat, System.out);
+ }
+ for (int i = 0; i < fLength; ++i) {
+ String fName = files[i];
+ String format = null;
+ if (PREFIX.matcher(fName).matches()) {
+ String[] split = fName.split(":",2);
+ format = split[0];
+ fName = split[1];
+ }
+ writers[i + 1] = createWriter(format, new PrintStream(new FileOutputStream(fName)));
+ }
+ }
+
+ private TestWriter createWriter(String format, PrintStream out) throws ParserConfigurationException {
+ if (format == null) {
+ return new TextTestWriter(out);
+ }
+ switch (format) {
+ case "text":
+ return new TextTestWriter(out);
+ case "xml":
+ return new XMLTestWriter(out);
+ case "yaml":
+ case "yml":
+ return new YAMLTestWriter(out);
+ default:
+ return null;
+ }
+ }
+}