[CMake] CTest outside of CMake

Tim Gallagher tim.gallagher at gatech.edu
Mon Oct 17 11:04:47 EDT 2011


Hi,

Sorry I wasn't clearer. That section was from a script that we call with ctest. The entire section that runs things looks like

# Load our custom settings                                                                                                
ctest_read_custom_files("${CTEST_REPO_DIRECTORY}")
ctest_start("Nightly")
ctest_update()
foreach(TESTCASE ${LESLIE_AVAILABLE_TESTCASES})
  set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE} ${LESLIE_CONFIGURE_DICT}")
  ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
  set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE} ${LESLIE_BUILD_DICT}")
  ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
endforeach()
ctest_test(BUILD "${CTEST_REPO_DIRECTORY}")
ctest_submit()

And we call ctest with 

ctest -S CTestScript.cmake 

My question is, if I only want to run a few tests, ie only run tests 2, 3, 4:

ctest -S CTestScript.cmake -I 2,4

This only run the ctest_test() on tests 2, 3, and 4, but I don't know how to determine inside the script which tests will be run, so it configures/builds all of the available tests since I have that loop. 

So, is there a variable that gets set or some way to determine which tests are called from the command line inside the script in the event something like -I or -R flags are used? Is there a variable that contains the list of tests that CTest will run?

Hope that's clearer. Thanks,

Tim

----- Original Message -----
From: "Eric Noulard" <eric.noulard at gmail.com>
To: gtg085x at mail.gatech.edu
Cc: cmake at cmake.org
Sent: Monday, October 17, 2011 3:06:48 AM
Subject: Re: [CMake] CTest outside of CMake

2011/10/17 Tim Gallagher <tim.gallagher at gatech.edu>:
> Hi,
>
> We have our project set up to run a series of test cases, but we are treating it as if we are not using CMake. I found a tutorial online on how to set it up, and we have it running just fine when we want to run all of the tests. But, I haven't figured out how to do the configure/build steps for selected tests only.
>
> For example, each test has it's own configure command and build command. If I do
>
> ctest -I 2,2
>
> then it configures and builds all the tests, but will only run the second test.
>
> The driver script contains a section like:
>
> foreach(TESTCASE ${LESLIE_AVAILABLE_TESTCASES})
>  set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE} ${LESLIE_CONFIGURE_DICT}")
>  ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>  set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE} ${LESLIE_BUILD_DICT}")
>  ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
> endforeach()
>
> and the LESLIE_AVAILABLE_TESTCASES is a list of test cases names that match the add_test() test names. Is it possible when running CTest with -I or -R (or even without -I or -R) to figure out which tests it selects so we can build LESLIE_AVAILABLE_TESTCASES from that?

I'm not sure to understand your whole testing process flow,
Is the script above part of a ctest -S script?

Filtering some tests may be done with test NAMES or LABELS
see EXCLUDE / INCLUDE or
EXCLUDE_LABEL / INCLUDE_LABEL
 arguments of ctest_test (ctest --help-command ctest_test)

However you does not seem to use ctest_test ?
How do you run your ctest command (which arguments/options are you using)?

Concerning labels
see http://www.kitware.com/blog/home/post/11 and reference therein.



-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list