From 9e8ba6e00dc4a4137a5187dbe5fe5b1394219735 Mon Sep 17 00:00:00 2001
From: Melodi <62381002+Melodi17@users.noreply.github.com>
Date: Fri, 5 Sep 2025 10:20:03 +1000
Subject: stuff
---
Compiler.Testing/Compiler.Testing.csproj | 28 +++++++++++++++++++++
Compiler.Testing/SanityTests.cs | 43 ++++++++++++++++++++++++++++++++
Compiler.Testing/TestingHelpers.cs | 14 +++++++++++
3 files changed, 85 insertions(+)
create mode 100644 Compiler.Testing/Compiler.Testing.csproj
create mode 100644 Compiler.Testing/SanityTests.cs
create mode 100644 Compiler.Testing/TestingHelpers.cs
(limited to 'Compiler.Testing')
diff --git a/Compiler.Testing/Compiler.Testing.csproj b/Compiler.Testing/Compiler.Testing.csproj
new file mode 100644
index 0000000..ed9c322
--- /dev/null
+++ b/Compiler.Testing/Compiler.Testing.csproj
@@ -0,0 +1,28 @@
+
+
+
+ net9.0
+ latest
+ enable
+ enable
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Compiler.Testing/SanityTests.cs b/Compiler.Testing/SanityTests.cs
new file mode 100644
index 0000000..46c0323
--- /dev/null
+++ b/Compiler.Testing/SanityTests.cs
@@ -0,0 +1,43 @@
+namespace Compiler.Testing;
+
+using Q1;
+
+[TestFixture]
+public class SanityTests
+{
+ [Test]
+ public void BlankProgram()
+ {
+ string program = """
+ int main() { }
+ """;
+
+ string result = TestingHelpers.CompileString(program).Trim();
+ Assert.That(
+ result, Is.EqualTo(
+ """
+ jmp _main
+ _main:
+ mov 0, V0
+ ret
+ """));
+ }
+
+ [Test]
+ public void ReturnConstant()
+ {
+ string program = """
+ int main() { return 42; }
+ """;
+
+ string result = TestingHelpers.CompileString(program).Trim();
+ Assert.That(
+ result, Is.EqualTo(
+ """
+ jmp _main
+ _main:
+ mov 42, V0
+ ret
+ """));
+ }
+}
\ No newline at end of file
diff --git a/Compiler.Testing/TestingHelpers.cs b/Compiler.Testing/TestingHelpers.cs
new file mode 100644
index 0000000..a3d85fe
--- /dev/null
+++ b/Compiler.Testing/TestingHelpers.cs
@@ -0,0 +1,14 @@
+namespace Compiler.Testing;
+
+using Antlr4.Runtime;
+using Q1.Compiler;
+
+public class TestingHelpers
+{
+ public static string CompileString(string input)
+ {
+ CompilerOptions options = new() { CommentCompilationMode = CommentCompilationMode.None };
+ IEnumerable lines = Program.Compile(options, new AntlrInputStream(input));
+ return Program.Optimize(lines);
+ }
+}
\ No newline at end of file
--
cgit v1.3.1