diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-20 19:22:55 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-20 19:22:55 +0100 |
| commit | abcddcedb332ac6154c5ef49eab78209a5d07c62 (patch) | |
| tree | 02ddc238ad5b513b76d43b384e10871ae8af1798 /src/test/java/org/shedlang/compiler/testing | |
| parent | 630842133c5de6edd61b28d0a5d704377c1bd962 (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.java | 31 |
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); + } + } +} |
