CTest:FAQ

From KitwarePublic
Jump to navigationJump to search

General information and availability

What is CTest

CTest is a cross-platform, open-source testing system distributed with CMake. CTest can peform several operations on the source code, that include retrieving from CVS or Subversion repository, configure, build, perform set of predefined runtime tests. It also includes several advanced tests such as coverage and memory checking. The results can be submitted to a Dart testing dashboard.

What is the current release?

CTest release schedule is tied with CMake. This release is available at:

http://www.cmake.org/HTML/Download.html

Nightly development can be accessed through CVS.

See http://www.cmake.org/HTML/Download.html for more information.

I found a Bug! What should I do?

Please report the bug in our bug tracker: http://www.cmake.org/Bug .

Please make sure to look at the old bugs not to include duplicates, include detailed instructions of the bug and how to reproduce it.

I want a new feature in CTest. What should I do?

Report a feature request in our Bug tracker http://www.cmake.org/Bug .

Please make sure to look at the old feature requests not to include duplicates, include detailed instructions of the feature and proposed implementation.

Using CTest

My test does not return non-zero on failure. What can I do?

After adding test using:

ADD_TEST(MyTest ${EXEC_DIR}/MyTest)

Add test properties for pass and failure:

SET_TESTS_PROPERTIES(MyTest PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR;FAIL;Test failed")
SET_TESTS_PROPERTIES(MyTest PROPERTIES PASS_REGULAR_EXPRESSION "Test passed")

Platform-specific questions

How can I perform coverage test?

Currently coverage is only supported on gcc compiler. To perform coverage test, make sure that your code is build with debug symbols, without optimization, and with special flags. These flags are:

-fprofile-arcs -ftest-coverage

Also make sure to pass these flags to C compiler, CXX compiler, and the linker. For example:

 CXXFLAGS="-g -O0 -Wall -W -Wshadow -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wno-deprecated -Woverloaded-virtual -Wwrite-strings -fprofile-arcs -ftest-coverage"
 CFLAGS="-g -O0 -Wall -W -fprofile-arcs -ftest-coverage"
 LDFLAGS="-fprofile-arcs -ftest-coverage"

Can I script CTest?

Yes, please look at the CTest Scripting Tutorial.



CMake: [Welcome | Site Map]