Difference between revisions of "NA-MIC-kit-curriculum/Testing-Based Programming/How to add Tests in CMake"

From NAMIC Wiki
Jump to: navigation, search
(Created page with 'This is a basic tutorial on how to set up testing in your project.')
 
Line 1: Line 1:
 
This is a basic tutorial on how to set up testing in your project.
 
This is a basic tutorial on how to set up testing in your project.
 +
 +
We start with a very simple case here, and progressively will add more interesting features
 +
 +
= Hello World =
 +
 +
We start by creating a minimal project with only
 +
 +
* main.cxx
 +
* CMakeLists.txt
 +
 +
== main.cxx ==
 +
 +
Here is the main file
 +
 +
  #include <iostream>
 +
  #include <stdlib.h>
 +
 +
  int main( int argc, char * argv [] )
 +
  {
 +
    const unsigned int N = atoi( argv[1] );
 +
 +
    for( unsigned int i=0; i < N; i++ )
 +
    {
 +
      std::cout << "Hello World ! " << i << std::endl;
 +
      }
 +
    return 0;
 +
  }
 +
 +
== CMakeLists.txt ==
 +
 +
The key commands for testing are
 +
 +
* INCLUDE(CTest)
 +
* ADD_TEST(testname executable arg1 arg2 arg3 ... argN)
 +
 +
Here is the minimal CMakeLists.txt file
 +
 +
  CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 +
  PROJECT(TestingTutorial)
 +
  INCLUDE(CTest)
 +
  ADD_EXECUTABLE(TestMain main.cxx)
 +
  ADD_TEST(test1  TestMain  5)
 +
  ADD_TEST(test2  TestMain  8)

Revision as of 14:26, 12 December 2009

Home < NA-MIC-kit-curriculum < Testing-Based Programming < How to add Tests in CMake

This is a basic tutorial on how to set up testing in your project.

We start with a very simple case here, and progressively will add more interesting features

Hello World

We start by creating a minimal project with only

  • main.cxx
  • CMakeLists.txt

main.cxx

Here is the main file

 #include <iostream>
 #include <stdlib.h>
 int main( int argc, char * argv [] )
 {
   const unsigned int N = atoi( argv[1] );
   for( unsigned int i=0; i < N; i++ )
    {
     std::cout << "Hello World ! " << i << std::endl;
     }
   return 0;
 }

CMakeLists.txt

The key commands for testing are

  • INCLUDE(CTest)
  • ADD_TEST(testname executable arg1 arg2 arg3 ... argN)

Here is the minimal CMakeLists.txt file

 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 
 PROJECT(TestingTutorial)
 INCLUDE(CTest)
 ADD_EXECUTABLE(TestMain main.cxx)
 ADD_TEST(test1   TestMain  5)
 ADD_TEST(test2   TestMain  8)