From 4ce47e845323f67bb3a6e3ef1c6314eb459d7622 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 16 Sep 2023 15:27:56 +0100 Subject: Remove direct WASM backend --- .../backends/wasm/WasmCodeGenCallTests.java | 35 --------- .../wasm/WasmCodeGenDefineFunctionTests.java | 88 ---------------------- .../backends/wasm/WasmCodeGenDiscardTests.java | 24 ------ .../backends/wasm/WasmCodeGenFieldLoadTests.java | 38 ---------- .../compiler/backends/wasm/WasmCodeGenIfTests.java | 37 --------- .../backends/wasm/WasmCodeGenIntAddTests.java | 24 ------ .../backends/wasm/WasmCodeGenIntEqualsTests.java | 24 ------ .../backends/wasm/WasmCodeGenIntNotEqualTests.java | 24 ------ .../backends/wasm/WasmCodeGenIntSubTests.java | 24 ------ .../backends/wasm/WasmCodeGenLocalLoadTests.java | 27 ------- .../backends/wasm/WasmCodeGenLocalStoreTests.java | 24 ------ .../wasm/WasmCodeGenNamespaceFieldStoreTests.java | 41 ---------- .../wasm/WasmCodeGenNamespaceImportTests.java | 27 ------- .../backends/wasm/WasmCodeGenPushBoolTests.java | 34 --------- .../backends/wasm/WasmCodeGenPushIntTests.java | 26 ------- .../backends/wasm/WasmCodeGenPushStringTests.java | 34 --------- .../backends/wasm/WasmCodeGenPushUnitTests.java | 24 ------ .../backends/wasm/WasmCodeGenReturnTests.java | 24 ------ .../backends/wasm/WasmCodeGenStringAddTests.java | 24 ------ .../compiler/backends/wasm/WasmCodeGenTesting.java | 16 ---- .../compiler/backends/wasm/WasmExampleTests.java | 28 ------- .../backends/wasm/WasmPatioExampleTests.java | 2 +- 22 files changed, 1 insertion(+), 648 deletions(-) delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenCallTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDefineFunctionTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDiscardTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenFieldLoadTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIfTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntAddTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntEqualsTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntNotEqualTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntSubTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalLoadTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalStoreTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceFieldStoreTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceImportTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushBoolTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushIntTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushStringTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushUnitTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenReturnTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenStringAddTests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenTesting.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/wasm/WasmExampleTests.java (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenCallTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenCallTests.java deleted file mode 100644 index 0048b22f..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenCallTests.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; -import java.util.List; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenCallTests { - @Test - public void canCallFunctionWithNoArgs(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.call(0, List.of()); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } - - @Test - public void canCallFunctionWithArgs(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.call(2, List.of("b", "a")); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDefineFunctionTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDefineFunctionTests.java deleted file mode 100644 index 2a3fcab2..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDefineFunctionTests.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.ast.typed.FreeVariables; -import org.shedlang.compiler.sources.Sources; -import org.shedlang.compiler.stackir.instructions.DefineFunctionInstruction; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; -import java.util.List; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenDefineFunctionTests { - @Test - public void canDefineMinimalFunction(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = new DefineFunctionInstruction( - "f", - List.of(), - List.of(), - FreeVariables.empty(), - List.of( - Instructions.pushUnit(), - Instructions.return_() - ), - Sources.NULL - ); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } - - @Test - public void freeVariablesAreStoredInAndLoadedFromEnvironment(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = new DefineFunctionInstruction( - "f", - List.of(), - List.of(), - FreeVariables.builder().plus("a", Sources.NULL).plus("b", Sources.NULL).build(), - List.of( - Instructions.localLoad("a"), - Instructions.return_() - ), - Sources.NULL - ); - var context = WasmCodeGenContext.EMPTY - .addShedArg("b") - .addShedArg("c") - .addShedArg("a"); - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } - - @Test - public void positionalAndNamedParamsAreDefined(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = new DefineFunctionInstruction( - "f", - List.of(Instructions.param("param1"), Instructions.param("param2")), - List.of(Instructions.param("paramA"), Instructions.param("paramB")), - FreeVariables.builder().plus("a", Sources.NULL).plus("b", Sources.NULL).build(), - List.of( - Instructions.localLoad("a"), - Instructions.localLoad("param1"), - Instructions.intAdd(), - Instructions.localLoad("paramA"), - Instructions.intAdd(), - Instructions.return_() - ), - Sources.NULL - ); - var context = WasmCodeGenContext.EMPTY - .addShedArg("b") - .addShedArg("c") - .addShedArg("a"); - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDiscardTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDiscardTests.java deleted file mode 100644 index 7e42276e..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenDiscardTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenDiscardTests { - @Test - public void discardCompilesToDrop(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.discard(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenFieldLoadTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenFieldLoadTests.java deleted file mode 100644 index 03f1c457..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenFieldLoadTests.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; -import org.shedlang.compiler.typechecker.TypeCheckerContext; -import org.shedlang.compiler.types.NamespaceName; -import org.shedlang.compiler.types.Types; -import org.shedlang.compiler.util.P; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenFieldLoadTests { - @Test - public void fieldLoadPopsReceiverAndPushesFieldValue(Snapshotter snapshotter) throws IOException, InterruptedException { - var namespaceName = new NamespaceName(List.of("Example", "Project")); - var instruction = Instructions.fieldLoad(namespaceName, "y"); - var typeInfo = TypeCheckerContext.EMPTY - .addNamespaceFields(namespaceName, P.orderedMap( - Map.entry("x", Types.INT), - Map.entry("y", Types.INT), - Map.entry("z", Types.INT) - )) - .toTypeInfo(); - var context = WasmCodeGenContext.fromTypeInfo(typeInfo); - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIfTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIfTests.java deleted file mode 100644 index 76eb4a1a..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIfTests.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; -import java.util.List; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenIfTests { - @Test - public void ifIsCompiledToWasmIf(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.if_( - 1, - List.of( - Instructions.pushInt(1), - Instructions.pushInt(2), - Instructions.intAdd() - ), - List.of( - Instructions.pushInt(101), - Instructions.pushInt(102), - Instructions.intAdd() - ) - ); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntAddTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntAddTests.java deleted file mode 100644 index 4e960683..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntAddTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenIntAddTests { - @Test - public void intAddIsCompiledToI32Add(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.intAdd(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntEqualsTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntEqualsTests.java deleted file mode 100644 index 4e6eb0ff..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntEqualsTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenIntEqualsTests { - @Test - public void intEqualsIsCompiledToI32Eq(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.intEquals(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntNotEqualTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntNotEqualTests.java deleted file mode 100644 index dc924eb9..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntNotEqualTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenIntNotEqualTests { - @Test - public void intNotEqualIsCompiledToI32Ne(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.intNotEqual(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntSubTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntSubTests.java deleted file mode 100644 index f394d823..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenIntSubTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenIntSubTests { - @Test - public void intSubIsCompiledToI32Sub(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.intSub(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalLoadTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalLoadTests.java deleted file mode 100644 index 737f97cb..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalLoadTests.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenLocalLoadTests { - @Test - public void localLoadCompilesToLocalGet(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.localLoad("x"); - var context = WasmCodeGenContext.EMPTY - .addShedArg("y") - .addShedArg("x") - .addShedArg("z"); - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalStoreTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalStoreTests.java deleted file mode 100644 index 35a7931e..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenLocalStoreTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenLocalStoreTests { - @Test - public void localStoreCompilesToLocalSet(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.localStore("x"); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceFieldStoreTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceFieldStoreTests.java deleted file mode 100644 index c35f3e1a..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceFieldStoreTests.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.backends.wasm.structure.ast.modules.WasmAlignment; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; -import org.shedlang.compiler.typechecker.TypeCheckerContext; -import org.shedlang.compiler.types.NamespaceName; -import org.shedlang.compiler.types.Types; -import org.shedlang.compiler.util.P; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenNamespaceFieldStoreTests { - @Test - public void namespaceFieldStorePopsFromStackAndUpdatesFieldOnNamespace(Snapshotter snapshotter) throws IOException, InterruptedException { - var namespaceName = new NamespaceName(List.of("Example", "Project")); - var instruction = Instructions.namespaceFieldStore(namespaceName, "y"); - var typeInfo = TypeCheckerContext.EMPTY - .addNamespaceFields(namespaceName, P.orderedMap( - Map.entry("x", Types.INT), - Map.entry("y", Types.INT), - Map.entry("z", Types.INT) - )) - .toTypeInfo(); - var context = WasmCodeGenContext.fromTypeInfo(typeInfo) - .addData("shed__namespace__Example_Project", new byte[12], WasmAlignment.ALIGN_32_BIT) - .context(); - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceImportTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceImportTests.java deleted file mode 100644 index 7c2e61d6..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenNamespaceImportTests.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; -import org.shedlang.compiler.types.NamespaceName; - -import java.io.IOException; -import java.util.List; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenNamespaceImportTests { - @Test - public void namespaceImportCallsNamespaceImportFunction(Snapshotter snapshotter) throws IOException, InterruptedException { - var namespaceName = new NamespaceName(List.of("Example", "Project")); - var instruction = Instructions.namespaceImport(namespaceName); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushBoolTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushBoolTests.java deleted file mode 100644 index 1b61badf..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushBoolTests.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenPushBoolTests { - @Test - public void pushFalseIsCompiledToOperandInStack(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.pushBool(false); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } - - @Test - public void pushTrueIsCompiledToOperandInStack(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.pushBool(true); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushIntTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushIntTests.java deleted file mode 100644 index 8b356372..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushIntTests.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenPushIntTests { - // TODO: handle larger ints - - @Test - public void pushIntIsCompiledToOperandInStack(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.pushInt(42); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushStringTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushStringTests.java deleted file mode 100644 index 34d69178..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushStringTests.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenPushStringTests { - @Test - public void pushStringIsCompiledToDataAndIndexToData(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.pushString("hello"); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } - - @Test - public void canHaveMultipleStrings(Snapshotter snapshotter) throws IOException, InterruptedException { - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(Instructions.pushString("hello"), context); - result = WasmCodeGen.generateInstruction(Instructions.pushString("world"), result); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushUnitTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushUnitTests.java deleted file mode 100644 index 8c534c40..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenPushUnitTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenPushUnitTests { - @Test - public void pushUnitIsCompiledToOperandInStack(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.pushUnit(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenReturnTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenReturnTests.java deleted file mode 100644 index b5bf5898..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenReturnTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenReturnTests { - @Test - public void returnCompilesToReturnInstruction(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.return_(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenStringAddTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenStringAddTests.java deleted file mode 100644 index 2e4d9ed6..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenStringAddTests.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.shedlang.compiler.stackir.instructions.Instructions; -import org.shedlang.compiler.testing.snapshots.SnapshotResolver; -import org.shedlang.compiler.testing.snapshots.Snapshotter; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.WasmCodeGenTesting.objdumpContext; - -@ExtendWith({SnapshotResolver.class}) -public class WasmCodeGenStringAddTests { - @Test - public void stringAddIsCompiledToCallToRuntimeStringAdd(Snapshotter snapshotter) throws IOException, InterruptedException { - var instruction = Instructions.stringAdd(); - var context = WasmCodeGenContext.EMPTY; - - var result = WasmCodeGen.generateInstruction(instruction, context); - - snapshotter.assertSnapshot(objdumpContext(result)); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenTesting.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenTesting.java deleted file mode 100644 index 6138baec..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmCodeGenTesting.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import java.io.IOException; - -import static org.shedlang.compiler.backends.wasm.structure.WasmObjdump.objdump; - -public class WasmCodeGenTesting { - private WasmCodeGenTesting() { - } - - public static String objdumpContext(WasmCodeGenContext context) throws IOException, InterruptedException { - var function = context.toFunction("f"); - var module = context.addFunction(function).toModule(); - return objdump(module); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmExampleTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmExampleTests.java deleted file mode 100644 index 7d284300..00000000 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmExampleTests.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.shedlang.compiler.backends.wasm; - -import org.shedlang.compiler.backends.Backend; -import org.shedlang.compiler.backends.ExampleTests; - -import java.util.Optional; - -public class WasmExampleTests extends ExampleTests { - @Override - protected Backend backend() { - return WasmBackend.DIRECT; - } - - @Override - protected Optional binaryRunner() { - return Optional.of("wasmtime"); - } - - @Override - protected String executableName(String binary) { - return binary + ".wasm"; - } - - @Override - protected boolean isDisabled(String testName) { - return testName.equals("var") || testName.equals("while"); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/WasmPatioExampleTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/WasmPatioExampleTests.java index 611546e0..37ffa780 100644 --- a/src/test/java/org/shedlang/compiler/backends/wasm/WasmPatioExampleTests.java +++ b/src/test/java/org/shedlang/compiler/backends/wasm/WasmPatioExampleTests.java @@ -8,7 +8,7 @@ import java.util.Optional; public class WasmPatioExampleTests extends ExampleTests { @Override protected Backend backend() { - return WasmBackend.PATIO; + return WasmBackend.INSTANCE; } @Override -- cgit v1.2.3