aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/shedlang/compiler/testing
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-20 19:22:55 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-20 19:22:55 +0100
commitabcddcedb332ac6154c5ef49eab78209a5d07c62 (patch)
tree02ddc238ad5b513b76d43b384e10871ae8af1798 /src/test/java/org/shedlang/compiler/testing
parent630842133c5de6edd61b28d0a5d704377c1bd962 (diff)
Add serialization to binary format of empty WASM module
Diffstat (limited to 'src/test/java/org/shedlang/compiler/testing')
-rw-r--r--src/test/java/org/shedlang/compiler/testing/ProcessRunner.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/testing/ProcessRunner.java b/src/test/java/org/shedlang/compiler/testing/ProcessRunner.java
new file mode 100644
index 00000000..c1bfd481
--- /dev/null
+++ b/src/test/java/org/shedlang/compiler/testing/ProcessRunner.java
@@ -0,0 +1,31 @@
+package org.shedlang.compiler.testing;
+
+import org.shedlang.compiler.backends.llvm.ExecutionResult;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class ProcessRunner {
+ private ProcessRunner() {
+ }
+
+ public static ExecutionResult run(List<String> command) throws IOException, InterruptedException {
+ var process = new ProcessBuilder()
+ .command(command)
+ .start();
+
+ var exitCode = process.waitFor();
+
+ try (
+ var stdoutReader = process.inputReader(StandardCharsets.UTF_8);
+ var stderrReader = process.errorReader(StandardCharsets.UTF_8)
+ ) {
+ var stdout = stdoutReader.lines().collect(Collectors.joining());
+ var stderr = stderrReader.lines().collect(Collectors.joining());
+
+ return new ExecutionResult(exitCode, stdout, stderr);
+ }
+ }
+}