From d49fcd76324d37c32d28fbaaed98491ba7129089 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 19:44:26 +0100 Subject: [PATCH 01/13] Add version-test --- test/manual/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index db941692..3906122e 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -12,3 +12,5 @@ target_compile_options(app PRIVATE $<$: /W4 /WX /permissive->) target_link_libraries(app PRIVATE cpp-argparse) + +add_test(NAME version-test COMMAND app --version) From 5b6912954fafd3dcc09f7ff252f221acd737db02 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 19:46:47 +0100 Subject: [PATCH 02/13] Extend version-test --- test/manual/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index 3906122e..7b775371 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -14,3 +14,4 @@ target_compile_options(app PRIVATE target_link_libraries(app PRIVATE cpp-argparse) add_test(NAME version-test COMMAND app --version) +set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") From dadcbaaaf3333c34e8b12659c7cc7da31558c7f2 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 19:48:37 +0100 Subject: [PATCH 03/13] Add running version-test as part of build --- test/manual/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index 7b775371..f9e3dcc6 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -15,3 +15,6 @@ target_link_libraries(app PRIVATE cpp-argparse) add_test(NAME version-test COMMAND app --version) set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") +add_custom_target(run_version_test ALL + COMMAND ${CMAKE_CTEST_COMMAND} -C debug --output-on-failure + DEPENDS app) From 0dd532d80aefc38452d1b9fe84de9c8b2de468f3 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 19:49:33 +0100 Subject: [PATCH 04/13] Add help-test --- test/manual/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index f9e3dcc6..e702ce90 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -18,3 +18,5 @@ set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") add_custom_target(run_version_test ALL COMMAND ${CMAKE_CTEST_COMMAND} -C debug --output-on-failure DEPENDS app) + +add_test(NAME help-test COMMAND app --help) From cd45fa96836c42be28ed599d4333c3a978b0d239 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 20:50:44 +0100 Subject: [PATCH 05/13] Rename custom target --- test/manual/CMakeLists.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index e702ce90..dd228cc7 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -15,8 +15,6 @@ target_link_libraries(app PRIVATE cpp-argparse) add_test(NAME version-test COMMAND app --version) set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") -add_custom_target(run_version_test ALL +add_custom_target(run_exit_test ALL COMMAND ${CMAKE_CTEST_COMMAND} -C debug --output-on-failure DEPENDS app) - -add_test(NAME help-test COMMAND app --help) From 4c2c34a3e10dfe3035b9090701bd46d772631dae Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 20:51:07 +0100 Subject: [PATCH 06/13] Cleanup: add newline --- test/manual/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index dd228cc7..824b0c43 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -15,6 +15,7 @@ target_link_libraries(app PRIVATE cpp-argparse) add_test(NAME version-test COMMAND app --version) set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") + add_custom_target(run_exit_test ALL COMMAND ${CMAKE_CTEST_COMMAND} -C debug --output-on-failure DEPENDS app) From c1612acb71d4043a4c0b5a85ff93123ade4c37d7 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 20:51:57 +0100 Subject: [PATCH 07/13] Add error-test --- test/manual/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index 824b0c43..007ec76d 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -16,6 +16,9 @@ target_link_libraries(app PRIVATE cpp-argparse) add_test(NAME version-test COMMAND app --version) set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") +add_test(NAME error-test COMMAND app) +set_property(TEST error-test PROPERTY WILL_FAIL true) + add_custom_target(run_exit_test ALL COMMAND ${CMAKE_CTEST_COMMAND} -C debug --output-on-failure DEPENDS app) From 2c48b9ff9c12c6caf3024a68b5e243bc36b55f4c Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 21:06:13 +0100 Subject: [PATCH 08/13] Add help-test --- test/manual/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index 007ec76d..f19aa5bb 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -13,6 +13,8 @@ target_compile_options(app PRIVATE /W4 /WX /permissive->) target_link_libraries(app PRIVATE cpp-argparse) +add_test(NAME help-test COMMAND app --help) + add_test(NAME version-test COMMAND app --version) set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") From 3d7ed9793b0ca10c18bda1ba49acf484533f8f5d Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 21:23:03 +0100 Subject: [PATCH 09/13] Extend help-test --- test/manual/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index f19aa5bb..a881f855 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -14,6 +14,7 @@ target_compile_options(app PRIVATE target_link_libraries(app PRIVATE cpp-argparse) add_test(NAME help-test COMMAND app --help) +set_property(TEST help-test PROPERTY PASS_REGULAR_EXPRESSION "usage: app \\[-h\\] \\[--optional OPTIONAL\\] \\[-v\\] positional\n\npositional arguments:\n positional\n\noptional arguments:\n -h, --help show this help message and exit\n --optional OPTIONAL\n -v, --version show program's version number and exit\n") add_test(NAME version-test COMMAND app --version) set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") From b60f4bd9e61babc9f5fe78102e8181925be1dd1a Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 21:33:24 +0100 Subject: [PATCH 10/13] Add tentative version of matching error message --- test/manual/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/manual/CMakeLists.txt b/test/manual/CMakeLists.txt index a881f855..9e2ff146 100644 --- a/test/manual/CMakeLists.txt +++ b/test/manual/CMakeLists.txt @@ -21,6 +21,7 @@ set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") add_test(NAME error-test COMMAND app) set_property(TEST error-test PROPERTY WILL_FAIL true) +#set_property(TEST error-test PROPERTY PASS_REGULAR_EXPRESSION "the following arguments are required: positional\nusage: app \\[-h\\] \\[--optional OPTIONAL\\] \\[-v\\] positional\n\npositional arguments:\n positional\n\noptional arguments:\n -h, --help show this help message and exit\n --optional OPTIONAL\n -v, --version show program's version number and exit\n") add_custom_target(run_exit_test ALL COMMAND ${CMAKE_CTEST_COMMAND} -C debug --output-on-failure From cb60d9702cfaf52d5167505da34d366ee60ab2ab Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 21:37:44 +0100 Subject: [PATCH 11/13] Rename directory --- CMakeLists.txt | 2 +- test/{manual => exit}/CMakeLists.txt | 0 test/{manual => exit}/main.cpp | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename test/{manual => exit}/CMakeLists.txt (100%) rename test/{manual => exit}/main.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index c119b4e4..1d005d67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_20) if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) enable_testing() add_subdirectory(test/unittest) - add_subdirectory(test/manual) + add_subdirectory(test/exit) add_subdirectory(thirdparty/doctest) add_subdirectory(tutorial) diff --git a/test/manual/CMakeLists.txt b/test/exit/CMakeLists.txt similarity index 100% rename from test/manual/CMakeLists.txt rename to test/exit/CMakeLists.txt diff --git a/test/manual/main.cpp b/test/exit/main.cpp similarity index 100% rename from test/manual/main.cpp rename to test/exit/main.cpp From 45415f9f3ba87029033c27adda796e8185b33942 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 4 Feb 2025 23:27:51 +0100 Subject: [PATCH 12/13] Split error-test to fix matching error message --- test/exit/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/exit/CMakeLists.txt b/test/exit/CMakeLists.txt index 9e2ff146..ad3f2ef5 100644 --- a/test/exit/CMakeLists.txt +++ b/test/exit/CMakeLists.txt @@ -19,9 +19,11 @@ set_property(TEST help-test PROPERTY PASS_REGULAR_EXPRESSION "usage: app \\[-h\\ add_test(NAME version-test COMMAND app --version) set_property(TEST version-test PROPERTY PASS_REGULAR_EXPRESSION "1\.0\.0") -add_test(NAME error-test COMMAND app) -set_property(TEST error-test PROPERTY WILL_FAIL true) -#set_property(TEST error-test PROPERTY PASS_REGULAR_EXPRESSION "the following arguments are required: positional\nusage: app \\[-h\\] \\[--optional OPTIONAL\\] \\[-v\\] positional\n\npositional arguments:\n positional\n\noptional arguments:\n -h, --help show this help message and exit\n --optional OPTIONAL\n -v, --version show program's version number and exit\n") +add_test(NAME error-test-1 COMMAND app) +set_property(TEST error-test-1 PROPERTY WILL_FAIL true) + +add_test(NAME error-test-2 COMMAND app) +set_property(TEST error-test-2 PROPERTY PASS_REGULAR_EXPRESSION "the following arguments are required: positional\nusage: app \\[-h\\] \\[--optional OPTIONAL\\] \\[-v\\] positional\n\npositional arguments:\n positional\n\noptional arguments:\n -h, --help show this help message and exit\n --optional OPTIONAL\n -v, --version show program's version number and exit\n") add_custom_target(run_exit_test ALL COMMAND ${CMAKE_CTEST_COMMAND} -C debug --output-on-failure From de7693e5f7fb3f43923237f737a712b1739a774a Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Thu, 6 Feb 2025 19:28:08 +0100 Subject: [PATCH 13/13] Explicitly set program name so it is the same on all platforms --- test/exit/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/exit/main.cpp b/test/exit/main.cpp index 968be925..ea4998d2 100644 --- a/test/exit/main.cpp +++ b/test/exit/main.cpp @@ -4,7 +4,7 @@ auto main(int argc, char * argv[]) -> int { - auto parser = argparse::ArgumentParser(); + auto parser = argparse::ArgumentParser().prog("app"); parser.add_argument("positional"); parser.add_argument("--optional"); parser.add_argument("-v", "--version").action(argparse::version).version("1.0.0");