diff options
Diffstat (limited to 'Tests/MacroTest')
-rw-r--r-- | Tests/MacroTest/CMakeLists.txt | 48 | ||||
-rw-r--r-- | Tests/MacroTest/macroTest.c | 7 |
2 files changed, 55 insertions, 0 deletions
diff --git a/Tests/MacroTest/CMakeLists.txt b/Tests/MacroTest/CMakeLists.txt new file mode 100644 index 0000000000..98fcbaf605 --- /dev/null +++ b/Tests/MacroTest/CMakeLists.txt @@ -0,0 +1,48 @@ +# a simple C only test case +PROJECT (littleMacroTest C) + +MACRO(FAILED testname) + MESSAGE(SEND_ERROR "${testname} failed ${ARGN}") +ENDMACRO(FAILED) + +MACRO(PASS testname) + MESSAGE("${testname} passed ${ARGN}") +ENDMACRO(PASS) + +# test ARGC +MACRO(weird_name) + IF("${ARGC}" EQUAL "3") + PASS("ARGC") + ELSE("${ARGC}" EQUAL "3") + FAILED("ARGC" "Got: ${ARGC}") + ENDIF("${ARGC}" EQUAL "3") +ENDMACRO(weird_name) +WeIrD_nAmE(a1 a2 a3) + +# test ARGN +MACRO(test_argn_macro argument) + IF("${ARGN}" EQUAL "3") + PASS("ARGN") + ELSE("${ARGN}" EQUAL "3") + FAILED("ARGN" "Got: ${ARGN}") + ENDIF("${ARGN}" EQUAL "3") +ENDMACRO(test_argn_macro) +Test_Argn_Macro(ignored 3) + +# case test +MACRO(strange_macro m) + SET("${m}" strange_macro) +ENDMACRO(strange_macro m) +STRANGE_MACRO(var) +set(second_var "second_var") +IF("${var}" EQUAL "strange_macro" AND "${second_var}" EQUAL "second_var") + PASS("Case Test" "(${var} ${second_var})") +ELSE("${var}" EQUAL "strange_macro" AND "${second_var}" EQUAL "second_var") + FAILED("Case test" "(${var} ${second_var})") +ENDIF("${var}" EQUAL "strange_macro" AND "${second_var}" EQUAL "second_var") + +# test backing up command +MACRO(ADD_EXECUTABLE exec) + _ADD_EXECUTABLE("mini${exec}" ${ARGN}) +ENDMACRO(ADD_EXECUTABLE) +ADD_EXECUTABLE(MacroTest macroTest.c) diff --git a/Tests/MacroTest/macroTest.c b/Tests/MacroTest/macroTest.c new file mode 100644 index 0000000000..e0ced6afd1 --- /dev/null +++ b/Tests/MacroTest/macroTest.c @@ -0,0 +1,7 @@ +#include <stdio.h> + +int main(int argc, char* argv[]) +{ + printf("Running command: %s with %d arguments\n", argv[0], argc); + return 0; +} |