diff --git a/annotations/annotations/src/main/java/module-info.java b/annotations/annotations/src/main/java/module-info.java new file mode 100644 index 000000000..9ac617bed --- /dev/null +++ b/annotations/annotations/src/main/java/module-info.java @@ -0,0 +1,3 @@ +module com.dylibso.chicory.annotations { + exports com.dylibso.chicory.annotations; +} diff --git a/build-time-compiler/src/main/java/module-info.java b/build-time-compiler/src/main/java/module-info.java new file mode 100644 index 000000000..b8e2c2549 --- /dev/null +++ b/build-time-compiler/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module com.dylibso.chicory.build.time.compiler { + requires transitive com.dylibso.chicory.compiler; + requires com.dylibso.chicory.runtime; + requires com.dylibso.chicory.wasm; + requires com.github.javaparser.core; + + exports com.dylibso.chicory.build.time.compiler; +} diff --git a/compiler-tests/src/test/java/com/dylibso/chicory/testing/TestModule.java b/compiler-tests/src/test/java/com/dylibso/chicory/testing/TestModule.java index b39f8655e..93280dcfa 100644 --- a/compiler-tests/src/test/java/com/dylibso/chicory/testing/TestModule.java +++ b/compiler-tests/src/test/java/com/dylibso/chicory/testing/TestModule.java @@ -1,6 +1,7 @@ package com.dylibso.chicory.testing; import com.dylibso.chicory.compiler.MachineFactoryCompiler; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.ImportValues; import com.dylibso.chicory.runtime.Instance; import com.dylibso.chicory.runtime.Store; @@ -40,7 +41,7 @@ public class TestModule { + "multiple start sections"; public static TestModule of(String classpath) { - try (var is = TestModule.class.getResourceAsStream(classpath)) { + try (var is = CorpusResources.getResource(classpath.substring(1))) { if (classpath.endsWith(".wat")) { byte[] parsed; try { diff --git a/compiler/pom.xml b/compiler/pom.xml index 49fcc3b9d..860c580ff 100644 --- a/compiler/pom.xml +++ b/compiler/pom.xml @@ -62,4 +62,23 @@ + + + + org.apache.maven.plugins + maven-compiler-plugin + + + default-testCompile + + + --add-modules + java.sql + + + + + + + diff --git a/compiler/src/main/java/com/dylibso/chicory/compiler/internal/Shader.java b/compiler/src/main/java/com/dylibso/chicory/compiler/internal/Shader.java index 0ac6cd4a6..bc1a6f7ad 100644 --- a/compiler/src/main/java/com/dylibso/chicory/compiler/internal/Shader.java +++ b/compiler/src/main/java/com/dylibso/chicory/compiler/internal/Shader.java @@ -68,6 +68,7 @@ public String map(String internalName) { static byte[] getBytecode(Class clazz) { var name = getInternalName(clazz) + ".class"; + // Okay when running with Java modules (JPMS), because .class are exempted from checks try (var in = clazz.getClassLoader().getResourceAsStream(name)) { if (in == null) { throw new IOException("Resource not found: " + name); diff --git a/compiler/src/main/java/module-info.java b/compiler/src/main/java/module-info.java new file mode 100644 index 000000000..5946b91fc --- /dev/null +++ b/compiler/src/main/java/module-info.java @@ -0,0 +1,11 @@ +module com.dylibso.chicory.compiler { + requires transitive com.dylibso.chicory.runtime; + requires transitive com.dylibso.chicory.wasm; + requires org.objectweb.asm; + requires org.objectweb.asm.commons; + requires org.objectweb.asm.util; + + exports com.dylibso.chicory.compiler; + exports com.dylibso.chicory.compiler.internal; + exports com.dylibso.chicory.experimental.aot; +} diff --git a/compiler/src/test/java/com/dylibso/chicory/approvals/ApprovalTest.java b/compiler/src/test/java/com/dylibso/chicory/approvals/ApprovalTest.java index 376a3aa45..12fa66411 100644 --- a/compiler/src/test/java/com/dylibso/chicory/approvals/ApprovalTest.java +++ b/compiler/src/test/java/com/dylibso/chicory/approvals/ApprovalTest.java @@ -1,12 +1,12 @@ package com.dylibso.chicory.approvals; import static com.dylibso.chicory.wasm.Parser.parse; -import static java.lang.ClassLoader.getSystemClassLoader; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.objectweb.asm.Type.getInternalName; import com.dylibso.chicory.compiler.internal.Compiler; import com.dylibso.chicory.compiler.internal.Shaded; +import com.dylibso.chicory.corpus.CorpusResources; import java.io.PrintWriter; import java.io.StringWriter; import java.nio.file.Files; @@ -68,7 +68,7 @@ public void verifyI32() { @Test public void verifyI32Renamed() { - var module = parse(getSystemClassLoader().getResourceAsStream("compiled/i32.wat.wasm")); + var module = parse(CorpusResources.getResource("compiled/i32.wat.wasm")); var result = Compiler.builder(module).withClassName("FOO").build().compile(); verifyClass(result.classBytes(), (name) -> !name.equals("FOO")); } @@ -105,8 +105,7 @@ public void verifyExceptions() { @Test public void functions10() { - var module = - parse(getSystemClassLoader().getResourceAsStream("compiled/functions_10.wat.wasm")); + var module = parse(CorpusResources.getResource("compiled/functions_10.wat.wasm")); var result = Compiler.builder(module).withMaxFunctionsPerClass(5).build().compile(); verifyClass(result.classBytes(), ApprovalTest::SKIP_Methods_CLASS); } @@ -117,7 +116,7 @@ private static void verifyGeneratedBytecode(String name) { private static void verifyGeneratedBytecode( String name, Function classSkipper) { - var module = parse(getSystemClassLoader().getResourceAsStream("compiled/" + name)); + var module = parse(CorpusResources.getResource("compiled/" + name)); var result = Compiler.builder(module).build().compile(); verifyClass(result.classBytes(), classSkipper); } diff --git a/compiler/src/test/java/com/dylibso/chicory/compiler/internal/CallTest.java b/compiler/src/test/java/com/dylibso/chicory/compiler/internal/CallTest.java index 1f9a61910..00c86c4f2 100644 --- a/compiler/src/test/java/com/dylibso/chicory/compiler/internal/CallTest.java +++ b/compiler/src/test/java/com/dylibso/chicory/compiler/internal/CallTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import com.dylibso.chicory.compiler.MachineFactoryCompiler; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.Instance; import com.dylibso.chicory.wasm.Parser; import org.junit.jupiter.api.Test; @@ -11,8 +12,7 @@ public class CallTest { @Test public void callLotsOfArgs() throws InterruptedException { - var module = - Parser.parse(CallTest.class.getResourceAsStream("/compiled/lots-of-args.wat.wasm")); + var module = Parser.parse(CorpusResources.getResource("compiled/lots-of-args.wat.wasm")); var instance = Instance.builder(module) .withMachineFactory(MachineFactoryCompiler::compile) @@ -26,8 +26,7 @@ public void callLotsOfArgs() throws InterruptedException { @Test @SuppressWarnings("deprecation") public void callLotsOfArgsOnDeprecatedAotMachine() throws InterruptedException { - var module = - Parser.parse(CallTest.class.getResourceAsStream("/compiled/lots-of-args.wat.wasm")); + var module = Parser.parse(CorpusResources.getResource("compiled/lots-of-args.wat.wasm")); var instance = Instance.builder(module) .withMachineFactory(MachineFactoryCompiler::compile) diff --git a/compiler/src/test/java/com/dylibso/chicory/compiler/internal/ExceptionTest.java b/compiler/src/test/java/com/dylibso/chicory/compiler/internal/ExceptionTest.java index 5e6076c65..03ceb7e74 100644 --- a/compiler/src/test/java/com/dylibso/chicory/compiler/internal/ExceptionTest.java +++ b/compiler/src/test/java/com/dylibso/chicory/compiler/internal/ExceptionTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import com.dylibso.chicory.compiler.MachineFactoryCompiler; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.Instance; import com.dylibso.chicory.wasm.Parser; import com.dylibso.chicory.wasm.WasmModule; @@ -13,7 +14,7 @@ public class ExceptionTest { private static final WasmModule MODULE = - Parser.parse(ExceptionTest.class.getResourceAsStream("/compiled/exceptions.wat.wasm")); + Parser.parse(CorpusResources.getResource("compiled/exceptions.wat.wasm")); private static int throwIfFn; private static int catchlessTryFn; diff --git a/compiler/src/test/java/com/dylibso/chicory/compiler/internal/InterruptionTest.java b/compiler/src/test/java/com/dylibso/chicory/compiler/internal/InterruptionTest.java index a1169a50b..b69cfe3f5 100644 --- a/compiler/src/test/java/com/dylibso/chicory/compiler/internal/InterruptionTest.java +++ b/compiler/src/test/java/com/dylibso/chicory/compiler/internal/InterruptionTest.java @@ -8,6 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import com.dylibso.chicory.compiler.MachineFactoryCompiler; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.Instance; import com.dylibso.chicory.wasm.ChicoryException; import com.dylibso.chicory.wasm.Parser; @@ -18,10 +19,7 @@ public class InterruptionTest { @Test public void shouldInterruptLoop() throws InterruptedException { - var module = - Parser.parse( - InterruptionTest.class.getResourceAsStream( - "/compiled/infinite-loop.c.wasm")); + var module = Parser.parse(CorpusResources.getResource("compiled/infinite-loop.c.wasm")); var instance = Instance.builder(module) .withMachineFactory(MachineFactoryCompiler::compile) @@ -33,8 +31,7 @@ public void shouldInterruptLoop() throws InterruptedException { @Test public void shouldInterruptCall() throws InterruptedException { - var module = - Parser.parse(InterruptionTest.class.getResourceAsStream("/compiled/power.c.wasm")); + var module = Parser.parse(CorpusResources.getResource("compiled/power.c.wasm")); var instance = Instance.builder(module) .withMachineFactory(MachineFactoryCompiler::compile) diff --git a/log/src/main/java/module-info.java b/log/src/main/java/module-info.java new file mode 100644 index 000000000..983487bf1 --- /dev/null +++ b/log/src/main/java/module-info.java @@ -0,0 +1,6 @@ +module com.dylibso.chicory.log { + requires static com.google.errorprone.annotations; + requires static java.logging; + + exports com.dylibso.chicory.log; +} diff --git a/machine-tests/src/test/java/com/dylibso/chicory/testing/MachinesTest.java b/machine-tests/src/test/java/com/dylibso/chicory/testing/MachinesTest.java index fc1d09b89..b7f9e9aad 100644 --- a/machine-tests/src/test/java/com/dylibso/chicory/testing/MachinesTest.java +++ b/machine-tests/src/test/java/com/dylibso/chicory/testing/MachinesTest.java @@ -8,6 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import com.dylibso.chicory.compiler.MachineFactoryCompiler; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.ImportTable; import com.dylibso.chicory.runtime.ImportValues; import com.dylibso.chicory.runtime.Instance; @@ -42,7 +43,7 @@ public final class MachinesTest { private WasmModule loadModule(String fileName) { - return Parser.parse(getClass().getResourceAsStream("/" + fileName)); + return Parser.parse(CorpusResources.getResource(fileName)); } private Instance.Builder quickJsInstanceBuilder() { diff --git a/machine-tests/src/test/java/com/dylibso/chicory/testing/ThreadsProposalTest.java b/machine-tests/src/test/java/com/dylibso/chicory/testing/ThreadsProposalTest.java index 5f3235186..bfc826388 100644 --- a/machine-tests/src/test/java/com/dylibso/chicory/testing/ThreadsProposalTest.java +++ b/machine-tests/src/test/java/com/dylibso/chicory/testing/ThreadsProposalTest.java @@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import com.dylibso.chicory.compiler.MachineFactoryCompiler; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.ByteArrayMemory; import com.dylibso.chicory.runtime.ByteBufferMemory; import com.dylibso.chicory.runtime.ImportMemory; @@ -28,7 +29,7 @@ public class ThreadsProposalTest { private static WasmModule loadModule(String fileName) { - return Parser.parse(ThreadsProposalTest.class.getResourceAsStream("/" + fileName)); + return Parser.parse(CorpusResources.getResource(fileName)); } @FunctionalInterface diff --git a/pom.xml b/pom.xml index 4ab8610aa..d16c31913 100644 --- a/pom.xml +++ b/pom.xml @@ -364,6 +364,11 @@ maven-antrun-plugin ${maven-antrun-plugin.version} + + org.apache.maven.plugins + maven-checkstyle-plugin + ${maven-checkstyle-plugin.version} + org.apache.maven.plugins maven-clean-plugin @@ -560,6 +565,10 @@ true + + + + @@ -619,6 +628,13 @@ + + + com.puppycrawl.tools + checkstyle + ${checkstyle.version} + + checkstyle @@ -752,6 +768,23 @@ src/test/resources/logging.properties + + + default-test + + false + + + + test-module-path + + test + + + true + + + @@ -820,11 +853,23 @@ 11 - - true - + + + org.apache.maven.plugins + maven-checkstyle-plugin + + true + + + + + checkstyle + none + + + org.apache.maven.plugins @@ -837,31 +882,6 @@ - - java17 - - [17,) - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - ${maven-checkstyle-plugin.version} - - - com.puppycrawl.tools - checkstyle - ${checkstyle.version} - - - - - - - - java21 diff --git a/runtime/src/main/java/module-info.java b/runtime/src/main/java/module-info.java new file mode 100644 index 000000000..14773474d --- /dev/null +++ b/runtime/src/main/java/module-info.java @@ -0,0 +1,7 @@ +module com.dylibso.chicory.runtime { + requires transitive com.dylibso.chicory.wasm; + + exports com.dylibso.chicory.runtime; + exports com.dylibso.chicory.runtime.alloc; + exports com.dylibso.chicory.runtime.internal; +} diff --git a/runtime/src/test/java/com/dylibso/chicory/runtime/InterruptionTest.java b/runtime/src/test/java/com/dylibso/chicory/runtime/InterruptionTest.java index b3d0ab7c5..c53c3cde2 100644 --- a/runtime/src/test/java/com/dylibso/chicory/runtime/InterruptionTest.java +++ b/runtime/src/test/java/com/dylibso/chicory/runtime/InterruptionTest.java @@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.wasm.ChicoryException; import com.dylibso.chicory.wasm.Parser; import java.util.concurrent.atomic.AtomicBoolean; @@ -17,8 +18,8 @@ public void shouldInterruptLoop() throws InterruptedException { var instance = Instance.builder( Parser.parse( - InterruptionTest.class.getResourceAsStream( - "/compiled/infinite-loop.c.wasm"))) + CorpusResources.getResource( + "compiled/infinite-loop.c.wasm"))) .build(); var function = instance.export("run"); assertInterruption(function::apply); @@ -27,10 +28,7 @@ public void shouldInterruptLoop() throws InterruptedException { @Test public void shouldInterruptCall() throws InterruptedException { var instance = - Instance.builder( - Parser.parse( - InterruptionTest.class.getResourceAsStream( - "/compiled/power.c.wasm"))) + Instance.builder(Parser.parse(CorpusResources.getResource("compiled/power.c.wasm"))) .build(); var function = instance.export("run"); assertInterruption(() -> function.apply(100)); diff --git a/runtime/src/test/java/com/dylibso/chicory/runtime/StoreTest.java b/runtime/src/test/java/com/dylibso/chicory/runtime/StoreTest.java index c239c8445..60ba1d0cc 100644 --- a/runtime/src/test/java/com/dylibso/chicory/runtime/StoreTest.java +++ b/runtime/src/test/java/com/dylibso/chicory/runtime/StoreTest.java @@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.wasm.Parser; import com.dylibso.chicory.wasm.WasmModule; import com.dylibso.chicory.wasm.types.FunctionType; @@ -13,7 +14,7 @@ public class StoreTest { private static WasmModule loadModule(String fileName) { - return Parser.parse(WasmModuleTest.class.getResourceAsStream("/" + fileName)); + return Parser.parse(CorpusResources.getResource(fileName)); } @Test diff --git a/runtime/src/test/java/com/dylibso/chicory/runtime/WasmModuleTest.java b/runtime/src/test/java/com/dylibso/chicory/runtime/WasmModuleTest.java index 8d68b6af7..ff5f83060 100644 --- a/runtime/src/test/java/com/dylibso/chicory/runtime/WasmModuleTest.java +++ b/runtime/src/test/java/com/dylibso/chicory/runtime/WasmModuleTest.java @@ -9,6 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.wasm.InvalidException; import com.dylibso.chicory.wasm.Parser; import com.dylibso.chicory.wasm.UninstantiableException; @@ -36,7 +37,7 @@ public class WasmModuleTest { private static WasmModule loadModule(String fileName) { - return Parser.parse(WasmModuleTest.class.getResourceAsStream("/" + fileName)); + return Parser.parse(CorpusResources.getResource(fileName)); } @Test diff --git a/simd/src/main/java/module-info.java b/simd/src/main/java/module-info.java new file mode 100644 index 000000000..ec5a36819 --- /dev/null +++ b/simd/src/main/java/module-info.java @@ -0,0 +1,5 @@ +module com.dylibso.chicory.simd { + requires transitive com.dylibso.chicory.runtime; + requires com.dylibso.chicory.wasm; + requires jdk.incubator.vector; +} diff --git a/simd/src/test/java/com/dylibso/chicory/simd/BasicSimdTest.java b/simd/src/test/java/com/dylibso/chicory/simd/BasicSimdTest.java index 0eea22b2f..2cb3e0cf1 100644 --- a/simd/src/test/java/com/dylibso/chicory/simd/BasicSimdTest.java +++ b/simd/src/test/java/com/dylibso/chicory/simd/BasicSimdTest.java @@ -2,6 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.Instance; import com.dylibso.chicory.wasm.Parser; import org.junit.jupiter.api.Test; @@ -14,8 +15,8 @@ public void shouldRunBasicExample() { var instance = Instance.builder( Parser.parse( - BasicSimdTest.class.getResourceAsStream( - "/compiled/simd-example.wat.wasm"))) + CorpusResources.getResource( + "compiled/simd-example.wat.wasm"))) .withMachineFactory(SimdInterpreterMachine::new) .build(); var main = instance.export("main"); diff --git a/wabt/src/main/java/module-info.java b/wabt/src/main/java/module-info.java new file mode 100644 index 000000000..0d074fd95 --- /dev/null +++ b/wabt/src/main/java/module-info.java @@ -0,0 +1,9 @@ +module com.dylibso.chicory.wabt { + requires com.dylibso.chicory.log; + requires com.dylibso.chicory.runtime; + requires com.dylibso.chicory.wasi; + requires com.dylibso.chicory.wasm; + requires io.roastedroot.zerofs.ZeroFs; + + exports com.dylibso.chicory.wabt; +} diff --git a/wasi/src/main/java/module-info.java b/wasi/src/main/java/module-info.java new file mode 100644 index 000000000..89439f532 --- /dev/null +++ b/wasi/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module com.dylibso.chicory.wasi { + requires static com.dylibso.chicory.annotations; + requires com.dylibso.chicory.log; + requires transitive com.dylibso.chicory.runtime; + requires static java.compiler; + + exports com.dylibso.chicory.wasi; +} diff --git a/wasi/src/test/java/wasi/WasiPreview1Test.java b/wasi/src/test/java/wasi/WasiPreview1Test.java index 26f878697..0b186c9f4 100644 --- a/wasi/src/test/java/wasi/WasiPreview1Test.java +++ b/wasi/src/test/java/wasi/WasiPreview1Test.java @@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.runtime.HostFunction; import com.dylibso.chicory.runtime.ImportValues; import com.dylibso.chicory.runtime.Instance; @@ -26,7 +27,7 @@ public class WasiPreview1Test { private static WasmModule loadModule(String fileName) { - return Parser.parse(WasiPreview1Test.class.getResourceAsStream("/" + fileName)); + return Parser.parse(CorpusResources.getResource(fileName)); } @Test diff --git a/wasm-corpus/pom.xml b/wasm-corpus/pom.xml index f7b860803..c28d07c74 100644 --- a/wasm-corpus/pom.xml +++ b/wasm-corpus/pom.xml @@ -19,6 +19,17 @@ + + org.apache.maven.plugins + maven-jar-plugin + + + + com.dylibso.chicory.corpus + + + + org.codehaus.mojo exec-maven-plugin diff --git a/wasm-corpus/src/main/java/com/dylibso/chicory/corpus/CorpusResources.java b/wasm-corpus/src/main/java/com/dylibso/chicory/corpus/CorpusResources.java new file mode 100644 index 000000000..a6f630f01 --- /dev/null +++ b/wasm-corpus/src/main/java/com/dylibso/chicory/corpus/CorpusResources.java @@ -0,0 +1,16 @@ +package com.dylibso.chicory.corpus; + +import java.io.InputStream; + +public final class CorpusResources { + + private CorpusResources() {} + + public static InputStream getResource(String name) { + InputStream stream = CorpusResources.class.getResourceAsStream("/" + name); + if (stream == null) { + throw new IllegalArgumentException("Resource not found: /" + name); + } + return stream; + } +} diff --git a/wasm/src/main/java/module-info.java b/wasm/src/main/java/module-info.java new file mode 100644 index 000000000..854fbc3bf --- /dev/null +++ b/wasm/src/main/java/module-info.java @@ -0,0 +1,5 @@ +module com.dylibso.chicory.wasm { + exports com.dylibso.chicory.wasm; + exports com.dylibso.chicory.wasm.io; + exports com.dylibso.chicory.wasm.types; +} diff --git a/wasm/src/test/java/com/dylibso/chicory/wasm/ParserTest.java b/wasm/src/test/java/com/dylibso/chicory/wasm/ParserTest.java index b38cf7b86..0646239c6 100644 --- a/wasm/src/test/java/com/dylibso/chicory/wasm/ParserTest.java +++ b/wasm/src/test/java/com/dylibso/chicory/wasm/ParserTest.java @@ -7,6 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.wasm.types.ActiveDataSegment; import com.dylibso.chicory.wasm.types.CustomSection; import com.dylibso.chicory.wasm.types.ExternalType; @@ -30,7 +31,7 @@ public class ParserTest { @Test public void shouldParseFile() throws IOException { - try (InputStream is = getClass().getResourceAsStream("/compiled/start.wat.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/start.wat.wasm")) { var module = Parser.parse(is); // check types section @@ -93,7 +94,7 @@ public void shouldParseFile() throws IOException { @Test public void shouldParseIterfact() throws IOException { - try (InputStream is = getClass().getResourceAsStream("/compiled/iterfact.wat.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/iterfact.wat.wasm")) { var module = Parser.parse(is); // check types section @@ -133,7 +134,7 @@ public void shouldParseAllFiles() throws IOException { public void shouldSupportCustomListener() throws IOException { var parser = Parser.builder().includeSectionId(SectionId.CUSTOM).build(); - try (InputStream is = getClass().getResourceAsStream("/compiled/count_vowels.rs.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/count_vowels.rs.wasm")) { parser.parse( is, s -> { @@ -150,7 +151,7 @@ public void shouldSupportCustomListener() throws IOException { @Test public void shouldParseFloats() throws IOException { - try (InputStream is = getClass().getResourceAsStream("/compiled/float.wat.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/float.wat.wasm")) { var module = Parser.parse(is); var codeSection = module.codeSection(); var fbody = codeSection.getFunctionBody(0); @@ -163,7 +164,7 @@ public void shouldParseFloats() throws IOException { @Test public void shouldProperlyParseSignedValue() throws IOException { - try (InputStream is = getClass().getResourceAsStream("/compiled/i32.wat.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/i32.wat.wasm")) { var module = Parser.parse(is); var codeSection = module.codeSection(); var fbody = codeSection.getFunctionBody(0); @@ -186,7 +187,7 @@ public void shouldProperlyParseSignedValue() throws IOException { @Test public void shouldParseLocalDefinitions() throws Exception { - try (InputStream is = getClass().getResourceAsStream("/compiled/define-locals.wat.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/define-locals.wat.wasm")) { var module = Parser.parse(is); var codeSection = module.codeSection(); var fbody = codeSection.getFunctionBody(0); @@ -197,7 +198,7 @@ public void shouldParseLocalDefinitions() throws Exception { @Test public void shouldParseNamesSection() throws IOException { - try (InputStream is = getClass().getResourceAsStream("/compiled/count_vowels.rs.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/count_vowels.rs.wasm")) { var module = Parser.parse(is); var nameSec = module.nameSection(); assertEquals(module.codeSection().functionBodyCount(), nameSec.functionNameCount()); @@ -208,7 +209,7 @@ public void shouldParseNamesSection() throws IOException { @Test public void shouldParseSIMD() throws IOException { - try (InputStream is = ParserTest.class.getResourceAsStream("/wasm/simd_load.0.wasm")) { + try (InputStream is = CorpusResources.getResource("wasm/simd_load.0.wasm")) { Parser.parse(is); } } @@ -229,8 +230,7 @@ static List wasmCorpusFiles() throws IOException { @Test public void shouldParseOnlyImportedTags() throws IOException { - try (InputStream is = - ParserTest.class.getResourceAsStream("/compiled/issue_906.wat.wasm")) { + try (InputStream is = CorpusResources.getResource("compiled/issue_906.wat.wasm")) { Parser.parse(is); } } diff --git a/wasm/src/test/java/com/dylibso/chicory/wasm/WasmModuleTest.java b/wasm/src/test/java/com/dylibso/chicory/wasm/WasmModuleTest.java index 6c92936a1..7146eb4a6 100644 --- a/wasm/src/test/java/com/dylibso/chicory/wasm/WasmModuleTest.java +++ b/wasm/src/test/java/com/dylibso/chicory/wasm/WasmModuleTest.java @@ -3,30 +3,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.dylibso.chicory.corpus.CorpusResources; import org.junit.jupiter.api.Test; public class WasmModuleTest { @Test public void shouldHaveTheSameHashCode() { - var mod1 = - Parser.parse( - WasmModuleTest.class.getResourceAsStream("/compiled/count_vowels.rs.wasm")); - var mod2 = - Parser.parse( - WasmModuleTest.class.getResourceAsStream("/compiled/count_vowels.rs.wasm")); + var mod1 = Parser.parse(CorpusResources.getResource("compiled/count_vowels.rs.wasm")); + var mod2 = Parser.parse(CorpusResources.getResource("compiled/count_vowels.rs.wasm")); assertEquals(mod1.hashCode(), mod2.hashCode()); } @Test public void shouldBeEquals() { - var mod1 = - Parser.parse( - WasmModuleTest.class.getResourceAsStream("/compiled/count_vowels.rs.wasm")); - var mod2 = - Parser.parse( - WasmModuleTest.class.getResourceAsStream("/compiled/count_vowels.rs.wasm")); + var mod1 = Parser.parse(CorpusResources.getResource("compiled/count_vowels.rs.wasm")); + var mod2 = Parser.parse(CorpusResources.getResource("compiled/count_vowels.rs.wasm")); assertTrue(mod1.equals(mod2)); } diff --git a/wasm/src/test/java/com/dylibso/chicory/wasm/types/ValTypeTest.java b/wasm/src/test/java/com/dylibso/chicory/wasm/types/ValTypeTest.java index df53c88c0..cc0a7f0ce 100644 --- a/wasm/src/test/java/com/dylibso/chicory/wasm/types/ValTypeTest.java +++ b/wasm/src/test/java/com/dylibso/chicory/wasm/types/ValTypeTest.java @@ -2,6 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; +import com.dylibso.chicory.corpus.CorpusResources; import com.dylibso.chicory.wasm.Parser; import org.junit.jupiter.api.Test; @@ -45,9 +46,7 @@ public void roundtrip() { @Test public void checkExternRef() { var module = - Parser.parse( - ValTypeTest.class.getResourceAsStream( - "/compiled/externref-example.wat.wasm")); + Parser.parse(CorpusResources.getResource("compiled/externref-example.wat.wasm")); assertEquals(3, module.typeSection().types().length);