<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Hello,<div><br></div><div>My problem is actually really simple I have a .cpp file and the program just basically take an int as an argument, if the argument is from certain numbers it returns a 1 otherwise 0.</div><div>Now I need to create a unit test that would allow me to do this... how can I check the return value of the program? The add_test command just adds the test to be performed using a</div><div>specific argument but it never tests the output...</div><div><br></div><div>Alex</div><div><br><div></div><br><br><br><br>> Date: Fri, 28 Aug 2009 13:53:33 -0400<br>> From: drescherjm@gmail.com<br>> To: cmake@cmake.org<br>> Subject: [CMake] Fwd: generating CTest tests<br>> <br>> ---------- Forwarded message ----------<br>> From: John Drescher <drescherjm@gmail.com><br>> Date: Fri, Aug 28, 2009 at 1:53 PM<br>> Subject: Re: [CMake] generating CTest tests<br>> To: Alex H <aditya15417@hotmail.com><br>> <br>> <br>> On Fri, Aug 28, 2009 at 1:38 PM, Alex H<aditya15417@hotmail.com> wrote:<br>>> Hello,<br>>> In the ADD_TEST command in the example below I mentioned the test name is<br>>> test1, is this only a naming thing or does it mean<br>>> that I have to have an actual file called test1 in the system to be run by<br>>> the executable? Sorry, I read the documentation several times and<br>>> still don't understand as somewhere on the documentation it also mentions<br>>> test files, I am not sure what to put inside this test file though.<br>>> Should I put this ADD_TEST inside the test file or the CMakeLists.txt?<br>>> Thanks<br>>> Alex<br>>><br>> <br>> You make a separate target for this. Here is an example.<br>> <br>> I have a main project Called QtBasicUtils in that main project I have<br>> in the main application CMakeLists.txt<br>> <br>> option (BUILD_TESTING "Build Tests" ON)<br>> <br>> IF(BUILD_TESTING)<br>> ENABLE_TESTING()<br>> add_subdirectory(Testing)<br>> ENDIF(BUILD_TESTING)<br>> <br>> <br>> And then in the CMakeLists.txt file in QtBasicUtils/Testing<br>> <br>> #This file contains the automated unit testing for QtBasicUtils<br>> <br>> LINK_LIBRARIES(BasicTest QtBasicUtils ${QT_LIBRARIES})<br>> include_directories( ${PROJECT_BINARY_DIR} ${PROJECT_BINARY_DIR}/..<br>> ${PROJECT_SOURCE_DIR}/include ./include)<br>> <br>> set(TEST_SRCS<br>> ./src/basic.cxx<br>> ./src/testxml.cxx<br>> ./src/testUserProps.cxx<br>> )<br>> <br>> set(TEST_HDRS<br>> ./include/testxml.h<br>> ./include/testUserProps.h<br>> )<br>> <br>> <br>> add_executable(BasicTest ${TEST_SRCS} ${TEST_HDRS})<br>> <br>> add_dependencies(BasicTest QtBasicUtils)<br>> <br>> file(WRITE ${EXECUTABLE_OUTPUT_PATH}/test0.txt "+FLOATARGS 1.0 2.0 2.0<br>> 2.0 2.0 -S9.0")<br>> <br>> add_test(FileCMD0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> @${EXECUTABLE_OUTPUT_PATH}/test0.txt)<br>> <br>> #This will fail because the file should not exist.<br>> add_test(FileCMD1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> @${EXECUTABLE_OUTPUT_PATH}/../test111111111111111111.txt)<br>> SET_TESTS_PROPERTIES(FileCMD1 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(Test0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +?)<br>> ADD_TEST(Test1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +Test 1.0)<br>> ADD_TEST(StringListArg0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +STRLSTARG 1 2 3 4 . -S10)<br>> ADD_TEST(StringListArg1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +STRLSTARG 1 2 3 . -S6)<br>> ADD_TEST(StringListOpt0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +STRLSTOPT -I1 2 3 . -S6)<br>> ADD_TEST(StringListOpt1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +STRLSTOPT -I1 2 3 4 . -S10)<br>> <br>> ADD_TEST(BoolOpt1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +BOOLOPT -B)<br>> ADD_TEST(BoolOpt2 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +BOOLOPT -B-)<br>> SET_TESTS_PROPERTIES(BoolOpt2 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(ExtBoolOpt1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +EXTBOOLOPT --use_extended=+)<br>> ADD_TEST(ExtBoolOpt2 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +EXTBOOLOPT --use_extended=-)<br>> ADD_TEST(ExtBoolOpt3 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +EXTBOOLOPT --use_extended+)<br>> ADD_TEST(ExtBoolOpt4 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +EXTBOOLOPT --use_extended-)<br>> ADD_TEST(ExtBoolOpt5 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +EXTBOOLOPT --use_extended)<br>> SET_TESTS_PROPERTIES(ExtBoolOpt2 PROPERTIES WILL_FAIL TRUE)<br>> SET_TESTS_PROPERTIES(ExtBoolOpt4 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(FloatArgs0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 1.0 -S5.0)<br>> ADD_TEST(FloatArgs1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 2.0 -S6.0)<br>> ADD_TEST(FloatArgs2 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 1.0 1.0 -S5.0)<br>> ADD_TEST(FloatArgs3 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 1.0 2.0 -S6.0)<br>> ADD_TEST(FloatArgs4 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 1.0 1.0 1.0 1.0 1.0 -S5.0)<br>> ADD_TEST(FloatArgs5 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 2.0 2.0 2.0 2.0 2.0 -S10.0)<br>> ADD_TEST(FloatArgs6 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS -2.0 2.0 2.0 2.0 2.0 -S6.0)<br>> <br>> ADD_TEST(FloatArgs7 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 1.0 2.0 2.0 2.0 2.0 -S10.0)<br>> SET_TESTS_PROPERTIES(FloatArgs7 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(FloatArgs8 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +FLOATARGS 1.0 2.0 2.0 2.0 2.0 1.0 -S10.0)<br>> SET_TESTS_PROPERTIES(FloatArgs8 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(DoubleArgs0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 1.0 -S5.0)<br>> ADD_TEST(DoubleArgs1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 2.0 -S6.0)<br>> ADD_TEST(DoubleArgs2 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 1.0 1.0 -S5.0)<br>> ADD_TEST(DoubleArgs3 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 1.0 2.0 -S6.0)<br>> ADD_TEST(DoubleArgs4 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 1.0 1.0 1.0 1.0 1.0 -S5.0)<br>> ADD_TEST(DoubleArgs5 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 2.0 2.0 2.0 2.0 2.0 -S10.0)<br>> ADD_TEST(DoubleArgs6 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS -2.0 2.0 2.0 2.0 2.0 -S6.0)<br>> <br>> ADD_TEST(DoubleArgs7 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 1.0 2.0 2.0 2.0 2.0 -S10.0)<br>> SET_TESTS_PROPERTIES(DoubleArgs7 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(DoubleArgs8 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +DOUBLEARGS 1.0 2.0 2.0 2.0 2.0 1.0 -S10.0)<br>> SET_TESTS_PROPERTIES(DoubleArgs8 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(XMLExport0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +XMLEXP 0)<br>> ADD_TEST(XMLExport1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +XMLEXP 1)<br>> ADD_TEST(XMLExport2 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +XMLEXP 2)<br>> ADD_TEST(XMLExport3 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +XMLEXP 3)<br>> ADD_TEST(XMLExport4 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +XMLEXP 4)<br>> ADD_TEST(XMLExport5 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +XMLEXP 5)<br>> ADD_TEST(XMLExport6 ${EXECUTABLE_OUTPUT_PATH}/BasicTest +XMLEXP 6)<br>> <br>> ADD_TEST(UserProp0 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 0)<br>> ADD_TEST(UserProp1 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 1)<br>> ADD_TEST(UserProp2 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 2)<br>> ADD_TEST(UserProp3 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 3)<br>> SET_TESTS_PROPERTIES(UserProp3 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(UserProp4 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 4)<br>> SET_TESTS_PROPERTIES(UserProp4 PROPERTIES WILL_FAIL TRUE)<br>> <br>> ADD_TEST(UserProp5 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 5)<br>> ADD_TEST(UserProp6 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 6)<br>> ADD_TEST(UserProp7 ${EXECUTABLE_OUTPUT_PATH}/BasicTest<br>> +USERPROP 7)<br>> <br>> <br>> I hope this helps.<br>> John<br>> <br>> <br>> <br>> -- <br>> John M. Drescher<br>> _______________________________________________<br>> Powered by www.kitware.com<br>> <br>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html<br>> <br>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ<br>> <br>> Follow this link to subscribe/unsubscribe:<br>> http://www.cmake.org/mailman/listinfo/cmake<br></div><br /><hr />Be seen with Buddy! Tag your picture and win exciting prizes! <a href='http://discover.windowslive.com/en-id/messenger/messengeris10/#/be-seen-with-buddy' target='_new'>Click here</a></body>
</html>