SimGrid  3.14.159
Versatile Simulation of Distributed Systems

Detailed Description

Unit testing implementation (see Adding unit tests)

This module is mainly intended to allow the tests of SimGrid itself and may lack the level of genericity that you would expect as a user. Only use it in external projects at your own risk (but it works rather well for us). We play with the idea of migrating to an external solution for our unit tests, possibly offering more features, but having absolutely no dependencies is a nice feature of SimGrid (and this code is sufficient to cover our needs, actually, so why should we bother switching?)

Unit testing is not intended to write integration tests. Please refer to Adding integration tests for that instead.

Macros

#define XBT_TEST_SUITE(suite_name, suite_title)
 Provide information about the suite declared in this file. More...
 
#define XBT_TEST_UNIT(name, func, title)
 Declare a new test units (containing individual tests) More...
 
#define xbt_test_add(...)
 Declare that a new test begins (printf-like parameters, describing the test) More...
 
#define xbt_test_fail(...)
 Declare that the lastly started test failed (printf-like parameters, describing failure cause) More...
 
#define xbt_test_assert(...)
 The lastly started test is actually an assert. More...
 
#define _xbt_test_assert_ARG1(cond)   _xbt_test_assert_CHECK(cond, "%s", #cond)
 
#define _xbt_test_assert_ARGN(cond, ...)   _xbt_test_assert_CHECK(cond, __VA_ARGS__)
 
#define _xbt_test_assert_CHECK(cond, ...)   do { if (!(cond)) xbt_test_fail(__VA_ARGS__); } while (0)
 
#define xbt_test_log(...)
 Report some details to help debugging when the test fails (shown only on failure) More...
 

Functions

void _xbt_test_add (const char *file, int line, const char *fmt,...) XBT_ATTRIB_PRINTF(3
 
void void _xbt_test_fail (const char *file, int line, const char *fmt,...) XBT_ATTRIB_PRINTF(3
 
void void void _xbt_test_log (const char *file, int line, const char *fmt,...) XBT_ATTRIB_PRINTF(3
 
void xbt_test_exception (xbt_ex_t e)
 Declare that the lastly started test failed because of the provided exception. More...
 
void xbt_test_expect_failure ()
 Declare that the lastly started test was expected to fail (and actually failed) More...
 
void xbt_test_skip ()
 Declare that the lastly started test should be skipped today. More...
 

Macro Definition Documentation

◆ XBT_TEST_SUITE

#define XBT_TEST_SUITE (   suite_name,
  suite_title 
)

Provide information about the suite declared in this file.

Actually, this macro is only used by the script extracting the test units, but that should be transparent for you.

Parameters
suite_namethe short name of this suite, to be used in the –tests argument of testall afterward. Avoid spaces and any other strange chars
suite_titleinstructive title that testall should display when your suite is run

◆ XBT_TEST_UNIT

#define XBT_TEST_UNIT (   name,
  func,
  title 
)

Declare a new test units (containing individual tests)

Parameters
namethe short name that will be used in test all to enable/disable this test
funca valid function name that will be used to contain all code of this unit
titlehuman informative description of your test (displayed in testall)

◆ xbt_test_add

#define xbt_test_add (   ...)

Declare that a new test begins (printf-like parameters, describing the test)

◆ xbt_test_fail

#define xbt_test_fail (   ...)

Declare that the lastly started test failed (printf-like parameters, describing failure cause)

◆ xbt_test_assert

#define xbt_test_assert (   ...)

The lastly started test is actually an assert.

  • If provided a uniq parameter, this is assumed to be a condition that is expected to be true
  • If provided more parameters, the first one is a condition, and the other ones are printf-like arguments that are to be displayed when the condition fails.

◆ _xbt_test_assert_ARG1

#define _xbt_test_assert_ARG1 (   cond)    _xbt_test_assert_CHECK(cond, "%s", #cond)

◆ _xbt_test_assert_ARGN

#define _xbt_test_assert_ARGN (   cond,
  ... 
)    _xbt_test_assert_CHECK(cond, __VA_ARGS__)

◆ _xbt_test_assert_CHECK

#define _xbt_test_assert_CHECK (   cond,
  ... 
)    do { if (!(cond)) xbt_test_fail(__VA_ARGS__); } while (0)

◆ xbt_test_log

#define xbt_test_log (   ...)

Report some details to help debugging when the test fails (shown only on failure)

Function Documentation

◆ _xbt_test_add()

void _xbt_test_add ( const char *  file,
int  line,
const char *  fmt,
  ... 
)

◆ _xbt_test_fail()

void void _xbt_test_fail ( const char *  file,
int  line,
const char *  fmt,
  ... 
)

◆ _xbt_test_log()

void void void _xbt_test_log ( const char *  file,
int  line,
const char *  fmt,
  ... 
)

◆ xbt_test_exception()

void xbt_test_exception ( xbt_ex_t  e)

Declare that the lastly started test failed because of the provided exception.

◆ xbt_test_expect_failure()

void xbt_test_expect_failure ( )

Declare that the lastly started test was expected to fail (and actually failed)

◆ xbt_test_skip()

void xbt_test_skip ( )

Declare that the lastly started test should be skipped today.