protected static void process(File dir) throws IOException { File file = new File(dir, TESTS); if (!file.exists()) throw new IOException(file + " not found"); List<TestCase> test_cases = new ArrayList<>(); DataInputStream input = new DataInputStream(new FileInputStream(file)); try { for (; ; ) { TestCase test_case = new TestCase(); try { test_case.readFrom(input); test_cases.add(test_case); } catch (Exception e) { break; } } } finally { Util.close(input); } if (test_cases.isEmpty()) return; Reader stdout_reader = null, stderr_reader = null; File tmp = new File(dir, STDOUT); if (tmp.exists() && tmp.length() > 0) stdout_reader = new FileReader(tmp); tmp = new File(dir, STDERR); if (tmp.exists() && tmp.length() > 0) stderr_reader = new FileReader(tmp); File parent = dir.getParentFile(); File xml_file = new File(parent, "TESTS-" + dir.getName() + "-" + parent.getName() + ".xml"); Writer out = new FileWriter(xml_file); String classname = dir.getName(); String suffix = parent.getName(); if (suffix != null && !suffix.isEmpty()) classname = classname + "-" + suffix; try { generateReport(out, classname, test_cases, stdout_reader, stderr_reader); } finally { out.close(); if (stdout_reader != null) stdout_reader.close(); if (stderr_reader != null) stderr_reader.close(); } }