From 554f7f21f155dced1b020f0655cd4f2a320c0ab4 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 24 Apr 2026 14:40:10 +0300 Subject: [PATCH] meta: CTest integration; expand test coverage Signed-off-by: NotAShelf Change-Id: I3e6bf966985f6212e99d146cb18e4e2f6a6a6964 --- CMakeLists.txt | 14 ++++++++++++++ flake.nix | 18 ++++++++++-------- tests/fixtures/lambda_pattern.nixr | Bin 0 -> 530 bytes tests/fixtures/string_interp.nixr | Bin 0 -> 198 bytes tests/language/interp_test.nix | 2 ++ tests/language/pattern_test.nix | 5 +++++ 6 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 tests/fixtures/lambda_pattern.nixr create mode 100644 tests/fixtures/string_interp.nixr create mode 100644 tests/language/interp_test.nix create mode 100644 tests/language/pattern_test.nix diff --git a/CMakeLists.txt b/CMakeLists.txt index 10ed5a2..1516e03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,9 +17,11 @@ pkg_check_modules(NIX_MAIN REQUIRED IMPORTED_TARGET nix-main) add_executable(nix-irc src/irc/main.cpp src/irc/parser.cpp + src/irc/lexer.cpp src/irc/resolver.cpp src/irc/ir_gen.cpp src/irc/serializer.cpp + src/irc/types.cpp ) target_include_directories(nix-irc PRIVATE @@ -38,10 +40,12 @@ target_link_libraries(nix-irc PRIVATE add_library(nix-ir-plugin MODULE src/plugin.cpp src/irc/parser.cpp + src/irc/lexer.cpp src/irc/resolver.cpp src/irc/ir_gen.cpp src/irc/serializer.cpp src/irc/evaluator.cpp + src/irc/types.cpp ) # Include directories from pkg-config @@ -65,6 +69,10 @@ target_link_libraries(nix-ir-plugin PRIVATE ${NIX_MAIN_LINK_LIBRARIES} ) +# Set output directories to build/ +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + # Set output name set_target_properties(nix-ir-plugin PROPERTIES PREFIX "" @@ -79,6 +87,8 @@ add_executable(regression_test tests/regression_test.cpp src/irc/serializer.cpp src/irc/parser.cpp + src/irc/lexer.cpp + src/irc/types.cpp ) target_include_directories(regression_test PRIVATE @@ -93,3 +103,7 @@ target_link_libraries(regression_test PRIVATE ${NIX_EXPR_LINK_LIBRARIES} ${NIX_UTIL_LINK_LIBRARIES} ) + +# CTest integration +enable_testing() +add_test(NAME regression_test COMMAND regression_test) diff --git a/flake.nix b/flake.nix index 4f98a7f..ad043d0 100644 --- a/flake.nix +++ b/flake.nix @@ -11,17 +11,19 @@ in { default = pkgs.mkShell { name = "nixir"; - buildInputs = with pkgs; [ + buildInputs = with pkgs; let + nixForLinking = nixVersions.nixComponents_2_32; + in [ boost.dev libblake3.dev + pegtl - nixVersions.nixComponents_2_32.nix-store - nixVersions.nixComponents_2_32.nix-expr - nixVersions.nixComponents_2_32.nix-cmd - nixVersions.nixComponents_2_32.nix-fetchers - nixVersions.nixComponents_2_32.nix-main - nixVersions.nixComponents_2_32.nix-util - nixVersions.nix_2_32 + nixForLinking.nix-store + nixForLinking.nix-expr + nixForLinking.nix-cmd + nixForLinking.nix-fetchers + nixForLinking.nix-main + nixForLinking.nix-util ]; nativeBuildInputs = with pkgs; [ diff --git a/tests/fixtures/lambda_pattern.nixr b/tests/fixtures/lambda_pattern.nixr new file mode 100644 index 0000000000000000000000000000000000000000..4e34156f4a465bee6cbb5d9e3eee6e334f32f298 GIT binary patch literal 530 zcmZvYOAf*?3`A4D5-W}XoPhog!3H5#Y+F{oQ0fMNo8f_W$k6-WqSZy$T?Ajy=F;_EXnsw6E-BMarngYNSEP;;Cdx>O3yy& zdL6Am5Qw2ubuI*AR!IHAav?RtC=2y-LJ%g7vQS#1b`s`iZ{MOpKpMvQw(Y)Yy`0<1t>o?n!c!U$wkfCvUH5CH@nK%A7HpA%n} zm;=(oz-Ry>!CJtQ=|!ojC7F5YATuDsxurQJnGh~WcXEDiL1{^93PgkpC;~PwIU_YW X8===*=Fi)W*wW0(76$l*M literal 0 HcmV?d00001 diff --git a/tests/language/interp_test.nix b/tests/language/interp_test.nix new file mode 100644 index 0000000..73b4c16 --- /dev/null +++ b/tests/language/interp_test.nix @@ -0,0 +1,2 @@ +# Test string interpolation +let x = "world"; in "Hello ${x}!" diff --git a/tests/language/pattern_test.nix b/tests/language/pattern_test.nix new file mode 100644 index 0000000..e654f6c --- /dev/null +++ b/tests/language/pattern_test.nix @@ -0,0 +1,5 @@ +# Test lambda patterns +({ + name, + version ? "1.0", +}: "${name}-${version}") {name = "test";}