The following diff switch the cmake test task to ctest(1). This enables us to
easily debug/report the tests.

In the normal state everything is as always. `make test` looks like:

===>  Regression tests for cmocka-1.1.3
Test project /usr/ports/pobj/cmocka-1.1.3/build-amd64
      Start  1: test_alloc
 1/44 Test  #1: test_alloc ........................   Passed    0.00 sec
      Start  2: test_group_setup_assert
 2/44 Test  #2: test_group_setup_assert ...........   Passed    0.00 sec

...

42/44 Test #42: assert_module_test ................   Passed    0.00 sec
      Start 43: waiter_test_wrap
43/44 Test #43: waiter_test_wrap ..................   Passed    0.00 sec
      Start 44: test_uptime
44/44 Test #44: test_uptime .......................   Passed    0.00 sec

100% tests passed, 0 tests failed out of 44

Total Test time (real) =   0.11 sec


... but with the debug options it looks like:

`env MODCMAKE_DEBUG=yes make test`

41/44 Test #41: assert_macro_test .................   Passed    0.00 sec
test 42
      Start 42: assert_module_test

42: Test command: 
/usr/ports/pobj/cmocka-1.1.3/build-amd64/example/assert_module_test
42: Test timeout computed to be: 1500
42: [==========] Running 3 test(s).
42: [ RUN      ] increment_value_fail
42: [  ERROR   ] --- ASSERT: value
42: [   LINE   ] --- 
/usr/ports/pobj/cmocka-1.1.3/cmocka-1.1.3/example/assert_module.c:30: error: 
Failure!
42: [  FAILED  ] increment_value_fail
42: [ RUN      ] increment_value_assert
42: Expected assertion value occurred
42: [       OK ] increment_value_assert
42: [ RUN      ] decrement_value_fail
42: Expected assert in decrement_value(NULL)
42: [  ERROR   ] --- [   LINE   ] --- 
/usr/ports/pobj/cmocka-1.1.3/cmocka-1.1.3/example/assert_module_test.c:46: 
error: Failure!
42: [  FAILED  ] decrement_value_fail
42: [==========] 3 test(s) run.
42: [  PASSED  ] 1 test(s).
42: [  FAILED  ] 2 test(s), listed below:
42: [  FAILED  ] increment_value_fail
42: [  FAILED  ] decrement_value_fail
42: 
42:  2 FAILED TEST(S)
42/44 Test #42: assert_module_test ................   Passed    0.00 sec
test 43
      Start 43: waiter_test_wrap

43: Test command: 
/usr/ports/pobj/cmocka-1.1.3/build-amd64/example/mock/chef_wrap/waiter_test_wrap
43: Test timeout computed to be: 1500
43: [==========] Running 2 test(s).
43: [ RUN      ] test_order_hotdog
43: [       OK ] test_order_hotdog
43: [ RUN      ] test_bad_dish
43: [       OK ] test_bad_dish
43: [==========] 2 test(s) run.
43: [  PASSED  ] 2 test(s).
43/44 Test #43: waiter_test_wrap ..................   Passed    0.00 sec

That means that also stderr from the test can be seen. It's very helpful to me.
You can also override CTEST_FLAGS and use a lot of ctest options to improve the
output:

https://cmake.org/cmake/help/latest/manual/ctest.1.html

What do you say?

Best Regards,

RS


Index: cmake.port.mk
===================================================================
RCS file: /cvs/ports/devel/cmake/cmake.port.mk,v
retrieving revision 1.65
diff -u -p -u -p -r1.65 cmake.port.mk
--- cmake.port.mk       21 Aug 2019 05:47:40 -0000      1.65
+++ cmake.port.mk       21 Aug 2019 16:30:03 -0000
@@ -26,8 +26,14 @@ MODCMAKE_BUILD_TARGET = cd ${WRKBUILD} &
        ${NINJA} ${NINJA_FLAGS} ${ALL_TARGET}
 MODCMAKE_INSTALL_TARGET = cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \
        ${FAKE_SETUP} ${NINJA} ${NINJA_FLAGS} ${FAKE_TARGET}
+
+MODCMAKE_DEBUG ?=              No
+.if ${MODCMAKE_DEBUG:L} == "yes"
+CTEST_FLAGS ?= -VV
+.endif
+
 MODCMAKE_TEST_TARGET = cd ${WRKBUILD} && exec ${SETENV} ${ALL_TEST_ENV} \
-       ${NINJA} ${NINJA_FLAGS} ${TEST_FLAGS} ${TEST_TARGET}
+               ${LOCALBASE}/bin/ctest -j ${MAKE_JOBS} ${CTEST_FLAGS}
 
 .if !target(do-build)
 do-build:
@@ -68,11 +74,10 @@ CONFIGURE_ENV +=    MODJAVA_VER=${MODJAVA_V
                        MODTCL_LIB=${MODTCL_LIB} \
                        MODTK_LIB=${MODTK_LIB}
 
-MODCMAKE_DEBUG ?=              No
-
 .if empty(CONFIGURE_STYLE)
 CONFIGURE_STYLE=       cmake
 .endif
+
 MODCMAKE_configure=    cd ${WRKBUILD} && ${SETENV} \
        CC="${CC}" CFLAGS="${CFLAGS}" \
        CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \
@@ -92,8 +97,6 @@ MODCMAKE_BUILD_SUFFIX =       -release.cmake
 SUBST_VARS +=  MODCMAKE_BUILD_SUFFIX
 
 SEPARATE_BUILD ?=      Yes
-
-TEST_TARGET ?= test
 
 MODCMAKE_WANTCOLOR ?= No
 MODCMAKE_VERBOSE ?= Yes

Reply via email to