[CMake] building tests
Michael Wild
themiwi at gmail.com
Thu Jul 8 00:56:50 EDT 2010
On 8. Jul, 2010, at 4:40 , Paul Harris wrote:
> On 7 July 2010 23:05, Michael Wild <themiwi at gmail.com> wrote:
>
>>
>> On 7. Jul, 2010, at 16:01 , Paul Harris wrote:
>>
>>> Hi all,
>>>
>>> I have looked and can't find the answer, so I turn to the list.
>>>
>>> I have a CMakeLists.txt and a subdirectory called utils, which also has
>> its
>>> own CMakeLists.txt
>>>
>>> In the parent CML.txt, I have something like:
>>>
>>> ENABLE_TESTING()
>>> add_subdirectory(utils)
>>>
>>> In my utils CML.txt, I have
>>>
>>> ADD_EXECUTABLE(unit_1 units/unit_1.cpp)
>>> ADD_TEST( unit_1 ${EXECUTABLE_OUTPUT_PATH}/unit_1 )
>>>
>>
>> Simplify this to
>>
>> ADD_TEST(unit_1 unit_1)
>>
>> CMake will figure out by itself that unit_1 is a target and invoke the
>> executable correctly (your code would break for multi-configuration IDE
>> generators).
>>
>>
> This does not work for me. If I do not have the EXECUTABLE_OUTPUT_PATH in
> add_test, I get a message like this when i run "make test" (shortened for
> brevity):
>
> 1/ 1 Testing unit_string_numeric_utils Could not find executable
> unit_string_numeric_utils
> Looked in the following places:
> unit_string_numeric_utils
> unit_string_numeric_utils
> Release/unit_string_numeric_utils
> Release/unit_string_numeric_utils
Mmmh, works fine for me:
--------->8---------
cmake_minimum_required(VERSION 2.8)
project(tmp)
enable_testing()
add_executable(unit1 unit1.cpp)
add_test(unit1 unit1)
---------<8---------
Where unit1.cpp is just a simple hello-world program. Running it:
--------->8---------
$ mkdir build
$ cd build
$ cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/mwild/tmp/cmake/tests/build
$ make all test
Scanning dependencies of target unit1
[100%] Building CXX object CMakeFiles/unit1.dir/unit1.cpp.o
Linking CXX executable unit1
[100%] Built target unit1
Running tests...
Test project /Users/mwild/tmp/cmake/tests/build
Start 1: unit1
1/1 Test #1: unit1 ............................ Passed 0.00 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 0.01 sec
---------<8---------
Michael
More information about the CMake
mailing list