mt_defs(3)

bofc manual pages

mt_defs(3)



 

NAME

mt_defs, mt_defs_ext - defines variables for test framework  

SYNOPSIS

#include <mtest.h>

mt_defs()
mt_defs_ext()  

DESCRIPTION

mt_defs(3) defines all variables needed by the test framework. This must be called exactly once in a global scope, before calling any of the mtest function. Calling this macro in two places will lead to 'double definition' linker error. As a rule of thumb, it is good to call this macro in test-main.c file after #include.

If all tests are in a single file (like test-main.c) calling mt_defs(3) is sufficient, but if tests are splitted into more .c files, you should also call mt_defs_ext(3) in all .c files that uses mtest functions. As with mt_defs(3), it should be called before any call to mtest function.

Note, don't call mt_defs_ext(3) if mt_defs (3) has already been called in a single file.  

EXAMPLE


    /* test-main.c */


    #include <mtest.h>


    #include "t1.h"
    #include "t2.h"
    #include "library-under-test.h"


    mt_defs();


    static void test_zero(void)
    {
        mt_assert(foo() == 0);
    }


    int main(void)
    {
        mt_run(test_zero);
        mt_run(test_one);
        test_group();


        mt_return();
    }


    /* t1.c */


    #include <mtest.h>


    #include "t1.h"
    #include "library-under-test.h"


    mt_defs_ext();


    void test_one(void)
    {
        mt_assert(bar() == 0);
    }


    /* t2.c */


    #include <mtest.h>


    #include "t2.h"
    #include "library-under-test.h"


    mt_defs_ext();


    static void test_two(void)
    {
        mt_assert(baz() == 0);
    }


    static void test_three(void)
    {
        mt_assert(qux() == 0);
    }


    void test_group(void)
    {
        mt_run(test_two);
        mt_run(test_three);
    }  

SEE ALSO

mt_run(3), mt_run_named(3), mt_assert(3), mt_fail(3), mt_fok(3), mt_ferr(3), mt_return(3) mtest_overview(7)

bofc.pl

3 September 2018 (1.1.3)

mt_defs(3)