diff --git a/CMakeLists.txt b/CMakeLists.txt index 929c48b..04751f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,7 +79,7 @@ xo_add_genfacetimpl( ) add_subdirectory(src/procedure2) -#add_subdirectory(utest) +add_subdirectory(utest) # ---------------------------------------------------------------- diff --git a/utest/CMakeLists.txt b/utest/CMakeLists.txt new file mode 100644 index 0000000..2e5f147 --- /dev/null +++ b/utest/CMakeLists.txt @@ -0,0 +1,11 @@ +# built unittest xo-procedure2/utest + +set(UTEST_EXE utest.procedure2) +set(UTEST_SRCS + procedure2_utest_main.cpp + DPrimitive.test.cpp +) + +xo_add_utest_executable(${UTEST_EXE} ${UTEST_SRCS}) +xo_self_dependency(${UTEST_EXE} xo_procedure2) +xo_external_target_dependency(${UTEST_EXE} Catch2 Catch2::Catch2) diff --git a/utest/DPrimitive.test.cpp b/utest/DPrimitive.test.cpp new file mode 100644 index 0000000..db501da --- /dev/null +++ b/utest/DPrimitive.test.cpp @@ -0,0 +1,35 @@ +/** @file DPrimitive.test.cpp + * + * @author Roland Conybeare, Jan 2026 + **/ + +#include +#include +#include + +namespace xo { + using xo::scm::Primitives; + + namespace ut { + static InitEvidence s_init = InitSubsys::require(); + + TEST_CASE("DPrimitive-init", "[procedure2][DPrimitive]") + { + REQUIRE(s_init.evidence()); + } + + TEST_CASE("DPrimitive-n_args", "[procedure2][DPrimitive]") + { + // s_mul_gco_gco_pm takes 2 AGCObject args + REQUIRE(Primitives::s_mul_gco_gco_pm.n_args() == 2); + } + + TEST_CASE("DPrimitive-is_nary", "[procedure2][DPrimitive]") + { + REQUIRE(Primitives::s_mul_gco_gco_pm.is_nary() == false); + } + + } /*namespace ut*/ +} /*namespace xo*/ + +/* end DPrimitive.test.cpp */ diff --git a/utest/procedure2_utest_main.cpp b/utest/procedure2_utest_main.cpp new file mode 100644 index 0000000..477099b --- /dev/null +++ b/utest/procedure2_utest_main.cpp @@ -0,0 +1,20 @@ +/* file procedure2_utest_main.cpp */ + +#include + +#define CATCH_CONFIG_RUNNER +#include "catch2/catch.hpp" + +int +main(int argc, char* argv[]) +{ + using xo::Subsystem; + + Subsystem::initialize_all(); + + int result = Catch::Session().run(argc, argv); + + return result; +} + +/* end procedure2_utest_main.cpp */