From 6dd4036bd828dac87b9f63d0a58693b30c46faed Mon Sep 17 00:00:00 2001 From: Elias Haugsbakk Date: Fri, 18 Sep 2026 19:10:54 +0200 Subject: split into separate packages/classes --- .../kompilator/AssemblyBuilderTest.java | 65 ---------------------- .../asmGeneration/AssemblyBuilderTest.java | 65 ++++++++++++++++++++++ 2 files changed, 65 insertions(+), 65 deletions(-) delete mode 100644 src/test/java/no/eliashaugsbakk/kompilator/AssemblyBuilderTest.java create mode 100644 src/test/java/no/eliashaugsbakk/kompilator/asmGeneration/AssemblyBuilderTest.java (limited to 'src/test') diff --git a/src/test/java/no/eliashaugsbakk/kompilator/AssemblyBuilderTest.java b/src/test/java/no/eliashaugsbakk/kompilator/AssemblyBuilderTest.java deleted file mode 100644 index 8d10be1..0000000 --- a/src/test/java/no/eliashaugsbakk/kompilator/AssemblyBuilderTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package no.eliashaugsbakk.kompilator; - -import java.util.List; -import org.junit.jupiter.api.Test; - -class AssemblyBuilderTest { - - @Test - void boilerplateGetsGenerated() { - // Setup - AssemblyBuilder builder = new AssemblyBuilder(); - - // Act - - // Assert - String result = builder.createAssembly(List.of()); - assert result.contains(""" - .intel_syntax noprefix - .global _start - .text - _start: - """); - - assert result.contains(""" - mov rax, 60 - xor rdi, rdi - syscall - """); - assert result.contains(".data"); - } - - @Test - void handlePrintGeneratesCorrectAssemblyForSingleStatement() { - // Setup - AssemblyBuilder builder = new AssemblyBuilder(); - builder.stringVariables.put("greeting", "Hello"); - - // Act - builder.handlePrint("print(greeting)"); - - // Assert - String result = builder.text.toString(); - assert result.contains("lea rsi, [greeting]"); - assert result.contains("lea rdx, [5]"); // "Hello" - } - - @Test - void handlePrintWorksCorrectlyWithMultiplePrintStatements() { - // Setup - AssemblyBuilder builder = new AssemblyBuilder(); - builder.stringVariables.put("msg1", "Hi"); - builder.stringVariables.put("msg2", "World"); - - // Act - builder.handlePrint("print(msg1)"); - builder.handlePrint("print(msg2)"); - - // Assert - String result = builder.text.toString(); - assert (result).contains("lea rsi, [msg1]"); - assert (result).contains("lea rsi, [msg2]"); - assert (result).contains("lea rdx, [2]"); // "Hi" - assert (result).contains("lea rdx, [5]"); // "World" - } -} diff --git a/src/test/java/no/eliashaugsbakk/kompilator/asmGeneration/AssemblyBuilderTest.java b/src/test/java/no/eliashaugsbakk/kompilator/asmGeneration/AssemblyBuilderTest.java new file mode 100644 index 0000000..aa14df6 --- /dev/null +++ b/src/test/java/no/eliashaugsbakk/kompilator/asmGeneration/AssemblyBuilderTest.java @@ -0,0 +1,65 @@ +package no.eliashaugsbakk.kompilator.asmGeneration; + +import java.util.List; +import org.junit.jupiter.api.Test; + +class AssemblyBuilderTest { + + @Test + void boilerplateGetsGenerated() { + // Setup + AssemblyBuilder builder = new AssemblyBuilder(); + + // Act + + // Assert + String result = builder.createAssembly(List.of()); + assert result.contains(""" + .intel_syntax noprefix + .global _start + .text + _start: + """); + + assert result.contains(""" + mov rax, 60 + xor rdi, rdi + syscall + """); + assert result.contains(".data"); + } + + @Test + void handlePrintGeneratesCorrectAssemblyForSingleStatement() { + // Setup + AssemblyBuilder builder = new AssemblyBuilder(); + builder.stringVariables.put("greeting", "Hello"); + + // Act + builder.handlePrint("print(greeting)"); + + // Assert + String result = builder.text.toString(); + assert result.contains("lea rsi, [greeting]"); + assert result.contains("lea rdx, [5]"); // "Hello" + } + + @Test + void handlePrintWorksCorrectlyWithMultiplePrintStatements() { + // Setup + AssemblyBuilder builder = new AssemblyBuilder(); + builder.stringVariables.put("msg1", "Hi"); + builder.stringVariables.put("msg2", "World"); + + // Act + builder.handlePrint("print(msg1)"); + builder.handlePrint("print(msg2)"); + + // Assert + String result = builder.text.toString(); + assert (result).contains("lea rsi, [msg1]"); + assert (result).contains("lea rsi, [msg2]"); + assert (result).contains("lea rdx, [2]"); // "Hi" + assert (result).contains("lea rdx, [5]"); // "World" + } +} -- cgit v1.2.3