From 11295b64b2eb01eeef25c659b7c8ef9df46b9a7a Mon Sep 17 00:00:00 2001 From: David Phillips Date: Wed, 18 Dec 2024 19:04:42 +0800 Subject: [PATCH] Change WASI test runner behavior to match Python runner The reference implementation does not support or validate stderr. For stdout, it treats a default specification for a missing JSON file as if the field is not present, rather than an empty string (thus ignoring anything that the test outputs to stdout). --- .../java/com/dylibso/chicory/maven/Specification.java | 9 +-------- .../java/com/dylibso/chicory/maven/WasiTestGenMojo.java | 9 ++------- .../java/com/dylibso/chicory/wasi/WasiTestRunner.java | 2 -- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/Specification.java b/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/Specification.java index 53d52bf2d..330022b41 100644 --- a/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/Specification.java +++ b/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/Specification.java @@ -15,7 +15,6 @@ public class Specification { private final List dirs; private final Map env; private final int exitCode; - private final Optional stderr; private final Optional stdout; @JsonCreator @@ -24,13 +23,11 @@ public Specification( @JsonProperty("dirs") List dirs, @JsonProperty("env") Map env, @JsonProperty("exit_code") int exitCode, - @JsonProperty("stderr") String stderr, @JsonProperty("stdout") String stdout) { this.args = requireNonNullElse(args, emptyList()); this.dirs = requireNonNullElse(dirs, emptyList()); this.env = requireNonNullElse(env, emptyMap()); this.exitCode = exitCode; - this.stderr = Optional.ofNullable(stderr); this.stdout = Optional.ofNullable(stdout); } @@ -50,15 +47,11 @@ public int exitCode() { return exitCode; } - public Optional stderr() { - return stderr; - } - public Optional stdout() { return stdout; } public static Specification createDefault() { - return new Specification(emptyList(), emptyList(), emptyMap(), 0, "", ""); + return new Specification(emptyList(), emptyList(), emptyMap(), 0, null); } } diff --git a/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/WasiTestGenMojo.java b/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/WasiTestGenMojo.java index 346e225cc..ad368f323 100644 --- a/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/WasiTestGenMojo.java +++ b/wasi-test-gen-plugin/src/main/java/com/dylibso/chicory/maven/WasiTestGenMojo.java @@ -199,11 +199,6 @@ public void execute() throws MojoExecutionException { new NameExpr("var exitCode"), new NameExpr(String.valueOf(specification.exitCode())), AssignExpr.Operator.ASSIGN)) - .addStatement( - new AssignExpr( - new NameExpr("Optional stderr"), - new NameExpr(optionalOf(specification.stderr())), - AssignExpr.Operator.ASSIGN)) .addStatement( new AssignExpr( new NameExpr("Optional stdout"), @@ -211,8 +206,8 @@ public void execute() throws MojoExecutionException { AssignExpr.Operator.ASSIGN)) .addStatement( new NameExpr( - "WasiTestRunner.execute(test, args, dirs, env, exitCode," - + " stderr, stdout)")); + "WasiTestRunner.execute(" + + "test, args, dirs, env, exitCode, stdout)")); } dest.add( diff --git a/wasi-tests/src/test/java/com/dylibso/chicory/wasi/WasiTestRunner.java b/wasi-tests/src/test/java/com/dylibso/chicory/wasi/WasiTestRunner.java index 881479fdd..ea1121c36 100644 --- a/wasi-tests/src/test/java/com/dylibso/chicory/wasi/WasiTestRunner.java +++ b/wasi-tests/src/test/java/com/dylibso/chicory/wasi/WasiTestRunner.java @@ -30,7 +30,6 @@ public static void execute( List dirs, Map env, int exitCode, - Optional stderr, Optional stdout) { try (FileSystem fs = @@ -76,7 +75,6 @@ public static void execute( assertEquals(exitCode, actualExitCode, "exit code"); stdout.ifPresent(expected -> assertEquals(expected, stdoutStream.output(), "stdout")); - stderr.ifPresent(expected -> assertEquals(expected, stderrStream.output(), "stderr")); } catch (IOException e) { throw new UncheckedIOException(e); }