From 32f156b218e9156a9414c90a1b036c865f94b6d9 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 28 Oct 2009 23:29:13 -0400 Subject: [PATCH] Add more coverage and use the ARGS option of try_run --- Tests/TryCompile/CMakeLists.txt | 11 +++++++++++ Tests/TryCompile/expect_arg.c | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 Tests/TryCompile/expect_arg.c diff --git a/Tests/TryCompile/CMakeLists.txt b/Tests/TryCompile/CMakeLists.txt index 75adb99af..62bed8782 100644 --- a/Tests/TryCompile/CMakeLists.txt +++ b/Tests/TryCompile/CMakeLists.txt @@ -142,6 +142,17 @@ IF(NOT "${TRY_OUT}" MATCHES "hello world") MESSAGE(SEND_ERROR " TRY_OUT didn't contain \"hello world\": \"${TRY_OUT}\"") ENDIF(NOT "${TRY_OUT}" MATCHES "hello world") +TRY_RUN(ARG_TEST_RUN ARG_TEST_COMPILE + ${TryCompile_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp + ${TryCompile_SOURCE_DIR}/expect_arg.c + OUTPUT_VARIABLE TRY_OUT + ARGS arg1 arg2) +IF(NOT ARG_TEST_COMPILE) + MESSAGE(SEND_ERROR "expect_arg failed compiling: ${TRY_OUT}") +ENDIF(NOT ARG_TEST_COMPILE) +IF(NOT "${ARG_TEST_RUN}" STREQUAL "0") + MESSAGE(SEND_ERROR "expect_arg failed running with exit code ${ARG_TEST_RUN} ${TRY_OUT}") +ENDIF(NOT "${ARG_TEST_RUN}" STREQUAL "0") # try to run a file that should compile and run, but return an error TRY_RUN(SHOULD_EXIT_WITH_ERROR SHOULD_COMPILE diff --git a/Tests/TryCompile/expect_arg.c b/Tests/TryCompile/expect_arg.c new file mode 100644 index 000000000..7ca49aa43 --- /dev/null +++ b/Tests/TryCompile/expect_arg.c @@ -0,0 +1,22 @@ +#include +#include +int main(int ac, char*av[]) +{ + int i; + printf("ac = [%d]\n", ac); + for(i =0; i < ac; i++) + { + printf("arg[%d] = %s\n", i, av[i]); + } + if(ac == 3) + { + if(strcmp(av[1], "arg1") ==0 + && strcmp(av[2], "arg2") ==0) + { + printf("arg1 and arg2 present and accounted for!\n"); + return 0; + } + } + printf("arg1 and arg2 missing!\n"); + return -1; +}