Cliff Jansen created PROTON-238:

             Summary: Initial CTest support
                 Key: PROTON-238
             Project: Qpid Proton
          Issue Type: New Feature
          Components: proton-c
    Affects Versions: 0.3
         Environment: Mainly proton-c and interop testing.
            Reporter: Cliff Jansen
            Assignee: Cliff Jansen

This is a proposal for starting to use CMake's built in CTest capabilities in 
order to allow a unified test mechanism on multiple platforms.

For the supplied review patch, it assumes that instead of using trunk/ 
and calling proton-test directly, you do:

  cd path/to/trunk
  mkdir build
  cd build
  cmake ..

Assuming the make succeeds, this will test two targets for now (proton-c and 
proton-jni), but the newer proposed tests (i.e. performance) can be added as 

Once the desired work flow is captured, this can be tweaked to run in a 
platform neutral way.  CMake even has the capability to run CTest from inside 
the Visual Studio IDE.  Concepts and strategies are stolen from the qpid/cpp 

By default, you just get a brief summary of the tests.  Also try

  ctest -V   [ to see the full output ]
  ctest -N   [ to list the available tests ]
  ctest -R proton-c  [ just run the one test in this case, or a regexp if 
supplied ]
  ctest -E <regexp>  [ run all tests except ones that match regexp ]

Fancier tests can use cmake scripts to do things in a platform neutral manner 
(move files around), run the test from a different directory, etc.  Python 
scripts and Java programs are already platform neutral, so there is no need to 
make changes for those. 

Tests can be conditionally configured (in the example proton-jni will not be 
configured if maven or java aren't found).

Note that if you wish to just build and test proton-c, there is no requirement 
to build from within the specific directory .../trunk/build.  This restriction 
currently exists for testing proton-jni using maven, but perhaps that can be 
relaxed in future.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

Reply via email to