From 834271b63b577d25ec3a082dddc4869427916808 Mon Sep 17 00:00:00 2001 From: Eduard Valeyev Date: Fri, 6 Feb 2026 13:31:30 -0500 Subject: [PATCH 1/2] [cmake] namespace test/example/demo targets to avoid polluting global namespace with overly generic names like "demo" --- CMakeLists.txt | 273 +++++++++++++++++++++++++++---------------------- 1 file changed, 148 insertions(+), 125 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5eef21d..7f2db34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,8 +88,6 @@ endif() target_link_libraries(tapp-reference PUBLIC tapp-api) -enable_testing() - option(TAPP_REFERENCE_ENABLE_TBLIS "Build and link TBLIS and TBLIS bindings" OFF) option(TAPP_REFERENCE_BUILD_EXERCISE "Build contraction exercise with TODOs in it." OFF) @@ -158,175 +156,200 @@ if(TAPP_REFERENCE_ENABLE_TBLIS) tblis-static ) +endif() + +# ---------------------------------------------------------------------------- +# testing + +include(CTest) + +if(BUILD_TESTING) + # ---------------------------------------------------------------------------- - # testing + # TBLIS test + + if(TAPP_REFERENCE_ENABLE_TBLIS) + add_executable(tapp-reference-test++) + + target_sources( + tapp-reference-test++ + PRIVATE + test/test.cpp + test/test.h + ) + + target_link_libraries( + tapp-reference-test++ + PRIVATE + tapp-reference + ) + + set_property( + TARGET tapp-reference-test++ + PROPERTY + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO + ) - add_executable(test++) + add_test( + NAME tapp-reference-test++ + COMMAND $ + ) + endif() + + # ---------------------------------------------------------------------------- + # demo + + add_executable(tapp-reference-demo) target_sources( - test++ + tapp-reference-demo PRIVATE - test/test.cpp - test/test.h + test/demo.c + test/helpers.c + test/helpers.h ) target_link_libraries( - test++ + tapp-reference-demo PRIVATE tapp-reference ) - set_property( - TARGET test++ - PROPERTY - CXX_STANDARD 20 - CXX_STANDARD_REQUIRED YES - CXX_EXTENSIONS NO - ) - add_test( - NAME test++ - COMMAND $ + NAME tapp-reference-demo + COMMAND $ ) -endif() + # ---------------------------------------------------------------------------- + # driver -add_executable(demo) + add_executable(tapp-reference-driver) -target_sources( - demo - PRIVATE - test/demo.c - test/helpers.c - test/helpers.h - ) + target_sources( + tapp-reference-driver + PRIVATE + examples/driver/driver.c + test/helpers.c + test/helpers.h + ) + + target_include_directories( + tapp-reference-driver + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/test + ) target_link_libraries( - demo - PRIVATE - tapp-reference - ) + tapp-reference-driver + PRIVATE + tapp-reference + ) + add_test( + NAME tapp-reference-driver + COMMAND $ + ) -add_test( - NAME demo - COMMAND $ - ) + # ---------------------------------------------------------------------------- + # exercise: contraction -add_executable(driver) + if(TAPP_REFERENCE_BUILD_EXERCISE) + add_executable(tapp-reference-exercise_contraction) -target_sources( - driver - PRIVATE - examples/driver/driver.c - test/helpers.c - test/helpers.h - ) - - target_include_directories( - driver - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/test - ) + target_sources( + tapp-reference-exercise_contraction + PRIVATE + examples/exercise_contraction/exercise_contraction.c + test/helpers.c + test/helpers.h + ) - target_link_libraries( - driver - PRIVATE - tapp-reference - ) + target_include_directories( + tapp-reference-exercise_contraction + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/test + ) + + target_link_libraries( + tapp-reference-exercise_contraction + PRIVATE + tapp-reference + ) + + add_test( + NAME tapp-reference-exercise_contraction + COMMAND $ + ) + endif() + # ---------------------------------------------------------------------------- + # exercise: contraction answers -add_test( - NAME driver - COMMAND $ - ) + add_executable(tapp-reference-exercise_contraction_answers) -if(TAPP_REFERENCE_BUILD_EXERCISE) - add_executable(exercise_contraction) - target_sources( - exercise_contraction + tapp-reference-exercise_contraction_answers PRIVATE - examples/exercise_contraction/exercise_contraction.c + examples/exercise_contraction/answers/exercise_contraction_answers.c test/helpers.c test/helpers.h ) - - target_include_directories( - exercise_contraction + + target_include_directories( + tapp-reference-exercise_contraction_answers PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/test - ) + ${CMAKE_CURRENT_SOURCE_DIR}/test + ) target_link_libraries( - exercise_contraction - PRIVATE - tapp-reference - ) - + tapp-reference-exercise_contraction_answers + PRIVATE + tapp-reference + ) add_test( - NAME exercise_contraction - COMMAND $ + NAME tapp-reference-exercise_contraction_answers + COMMAND $ ) -endif() -add_executable(exercise_contraction_answers) + # ---------------------------------------------------------------------------- + # exercise: tucker -target_sources( - exercise_contraction_answers - PRIVATE - examples/exercise_contraction/answers/exercise_contraction_answers.c - test/helpers.c - test/helpers.h - ) + add_library(tapp-reference-exercise_tucker SHARED) - target_include_directories( - exercise_contraction_answers - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/test - ) + target_sources( + tapp-reference-exercise_tucker + PUBLIC + examples/exercise_tucker/tapp_tucker/exercise_tucker.h + PRIVATE + examples/exercise_tucker/tapp_tucker/exercise_tucker.c + ) target_link_libraries( - exercise_contraction_answers - PRIVATE - tapp-reference - ) - + tapp-reference-exercise_tucker + PRIVATE + tapp-reference + ) -add_test( - NAME exercise_contraction_answers - COMMAND $ - ) + # ---------------------------------------------------------------------------- + # exercise: tucker answers - add_library(exercise_tucker SHARED) + add_library(tapp-reference-exercise_tucker_answers SHARED) -target_sources( - exercise_tucker - PUBLIC - examples/exercise_tucker/tapp_tucker/exercise_tucker.h - PRIVATE - examples/exercise_tucker/tapp_tucker/exercise_tucker.c - ) + target_sources( + tapp-reference-exercise_tucker_answers + PUBLIC + examples/exercise_tucker/tapp_tucker/answers/exercise_tucker_answers.h + PRIVATE + examples/exercise_tucker/tapp_tucker/answers/exercise_tucker_answers.c + ) target_link_libraries( - exercise_tucker - PRIVATE - tapp-reference - ) - - add_library(exercise_tucker_answers SHARED) - -target_sources( - exercise_tucker_answers - PUBLIC - examples/exercise_tucker/tapp_tucker/answers/exercise_tucker_answers.h - PRIVATE - examples/exercise_tucker/tapp_tucker/answers/exercise_tucker_answers.c - ) + tapp-reference-exercise_tucker_answers + PRIVATE + tapp-reference + ) - target_link_libraries( - exercise_tucker_answers - PRIVATE - tapp-reference - ) +endif() From a9ed2d79a53e06d59a6a6f30ce746b10682a6ae6 Mon Sep 17 00:00:00 2001 From: Eduard Valeyev Date: Fri, 6 Feb 2026 14:33:38 -0500 Subject: [PATCH 2/2] [ci] amend valgrind job to use namespaced test executable name --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 79e01a5..eb0e807 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -151,4 +151,4 @@ jobs: ... } EOF - valgrind --error-exitcode=1 --leak-check=full --suppressions=tblis.supp ./test++ + valgrind --error-exitcode=1 --leak-check=full --suppressions=tblis.supp ./tapp-reference-test++