xo-procedure2: + simple unit test

This commit is contained in:
Roland Conybeare 2026-01-26 16:51:58 -05:00
commit 5df004fb12
4 changed files with 67 additions and 1 deletions

View file

@ -79,7 +79,7 @@ xo_add_genfacetimpl(
)
add_subdirectory(src/procedure2)
#add_subdirectory(utest)
add_subdirectory(utest)
# ----------------------------------------------------------------

11
utest/CMakeLists.txt Normal file
View file

@ -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)

35
utest/DPrimitive.test.cpp Normal file
View file

@ -0,0 +1,35 @@
/** @file DPrimitive.test.cpp
*
* @author Roland Conybeare, Jan 2026
**/
#include <xo/procedure2/init_procedure2.hpp>
#include <xo/procedure2/init_primitives.hpp>
#include <catch2/catch.hpp>
namespace xo {
using xo::scm::Primitives;
namespace ut {
static InitEvidence s_init = InitSubsys<S_procedure2_tag>::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 */

View file

@ -0,0 +1,20 @@
/* file procedure2_utest_main.cpp */
#include <xo/subsys/Subsystem.hpp>
#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 */