< prev index next >

test/jdk/com/sun/tools/jextract/JextractToolRunner.java

Print this page

        

@@ -32,10 +32,11 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.SimpleFileVisitor;
 import java.nio.file.attribute.BasicFileAttributes;
+import java.util.Objects;
 import java.util.spi.ToolProvider;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotEquals;
 import static org.testng.Assert.assertNotNull;

@@ -68,34 +69,50 @@
 
     protected Path getOutputFilePath(String fileName) {
         return outputDir.resolve(fileName).toAbsolutePath();
     }
 
-    protected static int checkJextract(String expected, String... options) {
-        StringWriter writer = new StringWriter();
-        PrintWriter pw = new PrintWriter(writer);
+    protected static class JextractResult {
+        private int exitCode;
+        private String output;
 
-        int result = JEXTRACT_TOOL.run(pw, pw, options);
-        String output = writer.toString();
-        System.err.println(output);
-        if (expected != null) {
-            if (!output.contains(expected)) {
-                throw new AssertionError("Output does not contain " + expected);
+        JextractResult(int exitCode, String output) {
+            this.exitCode = exitCode;
+            this.output = output;
             }
+
+        protected JextractResult checkSuccess() {
+            assertEquals(exitCode, 0, "Sucess excepted, failed: " + exitCode);
+            return this;
         }
 
-        return result;
+        protected JextractResult checkFailure() {
+            assertNotEquals(exitCode, 0, "Failure excepted, succeeded!");
+            return this;
     }
 
-    protected static void checkSuccess(String expected, String... options) {
-        int result = checkJextract(expected, options);
-        assertEquals(result, 0, "Sucess excepted, failed: " + result);
+        protected JextractResult checkContainsOutput(String expected) {
+            Objects.requireNonNull(expected);
+            assertTrue(output.contains(expected), "Output does not contain string: " + expected);
+            return this;
     }
 
-    protected static void checkFailure(String expected, String... options) {
-        int result = checkJextract(expected, options);
-        assertNotEquals(result, 0, "Failure excepted, succeeded!");
+        protected JextractResult checkMatchesOutput(String regex) {
+            Objects.requireNonNull(regex);
+            assertTrue(output.matches(regex), "Output does not match regex: " + regex);
+            return this;
+        }
+    }
+
+    protected static JextractResult run(String... options) {
+        StringWriter writer = new StringWriter();
+        PrintWriter pw = new PrintWriter(writer);
+
+        int result = JEXTRACT_TOOL.run(pw, pw, options);
+        String output = writer.toString();
+        System.err.println(output);
+        return new JextractResult(result, output);
     }
 
     protected static void deleteFile(Path path) {
         try {
             Files.delete(path);
< prev index next >