diff options
Diffstat (limited to 'src/CompilerKit/test/Compilers')
| -rw-r--r-- | src/CompilerKit/test/Compilers/.gitkeep | 0 | ||||
| -rw-r--r-- | src/CompilerKit/test/Compilers/CMakeLists.txt | 23 | ||||
| -rw-r--r-- | src/CompilerKit/test/Compilers/NectarCodegen.test.cpp | 20 |
3 files changed, 43 insertions, 0 deletions
diff --git a/src/CompilerKit/test/Compilers/.gitkeep b/src/CompilerKit/test/Compilers/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/CompilerKit/test/Compilers/.gitkeep diff --git a/src/CompilerKit/test/Compilers/CMakeLists.txt b/src/CompilerKit/test/Compilers/CMakeLists.txt new file mode 100644 index 0000000..2d1a2f2 --- /dev/null +++ b/src/CompilerKit/test/Compilers/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.10) +project(NeCTICodeGen) + +include(FetchContent) +FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip +) + +# For Windows: Prevent overriding the parent project's compiler/linker settings +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) + +enable_testing() + +add_executable(CodegenTestBasic NectarCodegen.test.cpp) +target_link_libraries(CodegenTestBasic gtest_main) + +set_property(TARGET CodegenTestBasic PROPERTY CXX_STANDARD 20) +target_include_directories(CodegenTestBasic PUBLIC ../../) + +include(GoogleTest) +gtest_discover_tests(CodegenTestBasic) diff --git a/src/CompilerKit/test/Compilers/NectarCodegen.test.cpp b/src/CompilerKit/test/Compilers/NectarCodegen.test.cpp new file mode 100644 index 0000000..27a908e --- /dev/null +++ b/src/CompilerKit/test/Compilers/NectarCodegen.test.cpp @@ -0,0 +1,20 @@ +// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org) +// Licensed under the Apache License, Version 2.0 (See accompanying +// file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0) +// Official repository: https://github.com/ne-foss-org/nectar + +/// @brief Codegen Unit test, from the C++ unit to the final executable. +/// @author Amlal El Mahrouss + +#include <gtest/gtest.h> + +TEST(CodegenTest, BasicCodegenTestGrep) { + // Compile C++ source to assembly + auto compile_result = std::system("pef-amd64-necdrv ../../../../snippets/test_snippets/inner.nc > /dev/null 2>&1"); + EXPECT_TRUE(compile_result == 0) << "C++ compiler driver failed to compile sample.cc"; +} + +TEST(CodegenTest, BasicCodegenTestAssemble) { + auto expr = std::system("pef-amd64-asm ../../../../snippets/test_snippets/inner.masm > /dev/null 2>&1"); + EXPECT_TRUE(expr == 0) << "ASM Driver did not compile the easy ASM unit."; +} |
