From 80a8f616dd9495619a74b1e920dae662d98b1ecb Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 27 Dec 2023 23:59:40 +0000 Subject: Rename PatioToLlvmTests to PatioToAmd64Tests --- .../compiler/backends/llvm/PatioToAmd64Tests.java | 77 ++++++++++++++++++++++ .../compiler/backends/llvm/PatioToLlvmTests.java | 77 ---------------------- 2 files changed, 77 insertions(+), 77 deletions(-) create mode 100644 src/test/java/org/shedlang/compiler/backends/llvm/PatioToAmd64Tests.java delete mode 100644 src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/PatioToAmd64Tests.java b/src/test/java/org/shedlang/compiler/backends/llvm/PatioToAmd64Tests.java new file mode 100644 index 00000000..ede84e08 --- /dev/null +++ b/src/test/java/org/shedlang/compiler/backends/llvm/PatioToAmd64Tests.java @@ -0,0 +1,77 @@ +package org.shedlang.compiler.backends.llvm; + +import org.shedlang.compiler.backends.llvm.codegen.PatioToLlvm; +import org.shedlang.compiler.backends.llvm.codegen.PatioToLlvmGlobalContext; +import org.shedlang.compiler.backends.llvm.ir.ast.LlvmBasicBlock; +import org.shedlang.compiler.backends.llvm.ir.ast.LlvmFunctionDefinition; +import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmCall; +import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmReturn; +import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmTrunc; +import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableGlobal; +import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableLocal; +import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes; +import org.shedlang.compiler.backends.paths.PartialTargetPath; +import org.shedlang.compiler.patio.PatioExampleTests; +import org.shedlang.compiler.patio.PatioCompilationUnit; +import org.shedlang.compiler.testing.ExecutionResult; +import org.shedlang.compiler.testing.TestProcessRunner; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; + +public class PatioToAmd64Tests extends PatioExampleTests { + @Override + protected ExecutionResult run(PatioCompilationUnit patio) throws IOException, InterruptedException { + var llvmModuleResult = PatioToLlvm.generateCompilationUnit( + patio, + PatioToLlvmGlobalContext.EMPTY + ); + var llvmModule = llvmModuleResult.value(); + + llvmModule = llvmModule.addTopLevelEntity(new LlvmFunctionDefinition( + "main", + LlvmTypes.INT_32, + List.of(), + List.of( + new LlvmBasicBlock( + Optional.empty(), + List.of( + new LlvmCall( + new LlvmVariableLocal("exitCode"), + LlvmTypes.INT_64, + new LlvmVariableGlobal(FUNCTION_NAME), + List.of() + ), + new LlvmTrunc( + new LlvmVariableLocal("exitCode32"), + LlvmTypes.INT_64, + new LlvmVariableLocal("exitCode"), + LlvmTypes.INT_32 + ) + ), + new LlvmReturn(LlvmTypes.INT_32, new LlvmVariableLocal("exitCode32")) + ) + ) + )); + + Files.createDirectories(Path.of("tests-tmp")); + var workingDirectory = Files.createTempDirectory(Path.of("tests-tmp"), "LlvmShidToPatio"); + + var objectFilePath = LlvmCompiler.compileLlvmModule( + llvmModule, + new PartialTargetPath(workingDirectory.resolve("main")) + ); + + var executablePath = workingDirectory.resolve("main"); + + LlvmBackend.forTarget(LlvmTarget.AMD64).link( + List.of(objectFilePath), + executablePath + ); + + return TestProcessRunner.runCaptureOutput(List.of(executablePath.toString())); + } +} diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java deleted file mode 100644 index 41345c95..00000000 --- a/src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.shedlang.compiler.backends.llvm; - -import org.shedlang.compiler.backends.llvm.codegen.PatioToLlvm; -import org.shedlang.compiler.backends.llvm.codegen.PatioToLlvmGlobalContext; -import org.shedlang.compiler.backends.llvm.ir.ast.LlvmBasicBlock; -import org.shedlang.compiler.backends.llvm.ir.ast.LlvmFunctionDefinition; -import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmCall; -import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmReturn; -import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmTrunc; -import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableGlobal; -import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableLocal; -import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes; -import org.shedlang.compiler.backends.paths.PartialTargetPath; -import org.shedlang.compiler.patio.PatioExampleTests; -import org.shedlang.compiler.patio.PatioCompilationUnit; -import org.shedlang.compiler.testing.ExecutionResult; -import org.shedlang.compiler.testing.TestProcessRunner; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Optional; - -public class PatioToLlvmTests extends PatioExampleTests { - @Override - protected ExecutionResult run(PatioCompilationUnit patio) throws IOException, InterruptedException { - var llvmModuleResult = PatioToLlvm.generateCompilationUnit( - patio, - PatioToLlvmGlobalContext.EMPTY - ); - var llvmModule = llvmModuleResult.value(); - - llvmModule = llvmModule.addTopLevelEntity(new LlvmFunctionDefinition( - "main", - LlvmTypes.INT_32, - List.of(), - List.of( - new LlvmBasicBlock( - Optional.empty(), - List.of( - new LlvmCall( - new LlvmVariableLocal("exitCode"), - LlvmTypes.INT_64, - new LlvmVariableGlobal(FUNCTION_NAME), - List.of() - ), - new LlvmTrunc( - new LlvmVariableLocal("exitCode32"), - LlvmTypes.INT_64, - new LlvmVariableLocal("exitCode"), - LlvmTypes.INT_32 - ) - ), - new LlvmReturn(LlvmTypes.INT_32, new LlvmVariableLocal("exitCode32")) - ) - ) - )); - - Files.createDirectories(Path.of("tests-tmp")); - var workingDirectory = Files.createTempDirectory(Path.of("tests-tmp"), "LlvmShidToPatio"); - - var objectFilePath = LlvmCompiler.compileLlvmModule( - llvmModule, - new PartialTargetPath(workingDirectory.resolve("main")) - ); - - var executablePath = workingDirectory.resolve("main"); - - LlvmBackend.forTarget(LlvmTarget.AMD64).link( - List.of(objectFilePath), - executablePath - ); - - return TestProcessRunner.runCaptureOutput(List.of(executablePath.toString())); - } -} -- cgit v1.2.3