From 36ed86b07c10add92a8277413ddba0419736b781 Mon Sep 17 00:00:00 2001 From: samsonium Date: Thu, 15 Oct 2026 03:07:20 +0300 Subject: [PATCH] feat: add tests --- CMakeLists.txt | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 5 +++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fa89e5c..8ff03fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,3 +25,69 @@ add_executable(fz src/vm/fzl_vm_debug.c src/vm/main.c) +# +# ========== Compilation tests ========== +# + +enable_testing() + +add_test( + NAME compile_hw + COMMAND fzc -o "${CMAKE_CURRENT_BINARY_DIR}/hw.fzb" "${CMAKE_CURRENT_SOURCE_DIR}/exl/hw.fzs" +) +add_test( + NAME compile_print_empty + COMMAND fzc -o "${CMAKE_CURRENT_BINARY_DIR}/print_empty.fzb" "${CMAKE_CURRENT_SOURCE_DIR}/exl/print_empty.fzs" +) +add_test( + NAME compile_problematic_hw + COMMAND fzc -o "${CMAKE_CURRENT_BINARY_DIR}/problematic_hw.fzb" "${CMAKE_CURRENT_SOURCE_DIR}/exl/problematic_hw.fzs" +) +add_test( + NAME compile_base_math + COMMAND fzc -o "${CMAKE_CURRENT_BINARY_DIR}/base_math.fzb" "${CMAKE_CURRENT_SOURCE_DIR}/exl/base_math.fzs" +) +add_test( + NAME compile_variables + COMMAND fzc -o "${CMAKE_CURRENT_BINARY_DIR}/variables.fzb" "${CMAKE_CURRENT_SOURCE_DIR}/exl/variables.fzs" +) +add_test( + NAME compile_conditions + COMMAND fzc -o "${CMAKE_CURRENT_BINARY_DIR}/conditions.fzb" "${CMAKE_CURRENT_SOURCE_DIR}/exl/conditions.fzs" +) +add_test( + NAME compile_fn + COMMAND fzc -o "${CMAKE_CURRENT_BINARY_DIR}/fn.fzb" "${CMAKE_CURRENT_SOURCE_DIR}/exl/fn.fzs" +) + +set_tests_properties(compile_problematic_hw PROPERTIES WILL_FAIL TRUE) + +# +# ========== Runtime tests ========== +# + +add_test( + NAME runtime_hw + COMMAND fz "${CMAKE_CURRENT_BINARY_DIR}/hw.fzb" +) +add_test( + NAME runtime_print_empty + COMMAND fz "${CMAKE_CURRENT_BINARY_DIR}/print_empty.fzb" +) +add_test( + NAME runtime_base_math + COMMAND fz "${CMAKE_CURRENT_BINARY_DIR}/base_math.fzb" +) +add_test( + NAME runtime_variables + COMMAND fz "${CMAKE_CURRENT_BINARY_DIR}/variables.fzb" +) +add_test( + NAME runtime_conditions + COMMAND fz "${CMAKE_CURRENT_BINARY_DIR}/conditions.fzb" +) +add_test( + NAME runtime_fn + COMMAND fz "${CMAKE_CURRENT_BINARY_DIR}/fn.fzb" +) + diff --git a/Makefile b/Makefile index 29f7c94..304ff91 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: configure build debug-c debug-vm +.PHONY: configure build debug-c debug-vm test configure: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug @@ -12,3 +12,6 @@ debug-c: build debug-vm: build gdb --args ./build/fz ${FILE} +test: build + ctest --output-on-failure --test-dir build +