From abcddcedb332ac6154c5ef49eab78209a5d07c62 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 20 Jun 2023 19:22:55 +0100 Subject: Add serialization to binary format of empty WASM module --- .../shedlang/compiler/testing/ProcessRunner.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/test/java/org/shedlang/compiler/testing/ProcessRunner.java (limited to 'src/test/java/org/shedlang/compiler/testing') 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 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); + } + } +} -- cgit v1.2.3