core/expat-2.0.1/tests/minicheck.c
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 02 Feb 2016 21:49:24 +0000
changeset 300 b6d834208d33
parent 296 xmlreaderimpl/support/expat-2.0.1/tests/minicheck.c@ea3dbc023c80
permissions -rw-r--r--
ExpatXMLReader and DOM3XMLReader moved to xmlsuite/core package ...to ease usage of the package. Therefore it's no longer needed to also build xmlsuite/xmlreaderimpl in order to actually parse something. Expat should provide a good default.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
172
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
/* Miniature re-implementation of the "check" library.
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 *
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
 * This is intended to support just enough of check to run the Expat
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
 * tests.  This interface is based entirely on the portion of the
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 * check library being used.
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
#include <stdio.h>
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
#include <stdlib.h>
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
#include <setjmp.h>
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
#include <assert.h>
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
#include "minicheck.h"
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
Suite *
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
suite_create(char *name)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    Suite *suite = (Suite *) calloc(1, sizeof(Suite));
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    if (suite != NULL) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
        suite->name = name;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    return suite;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
TCase *
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
tcase_create(char *name)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    TCase *tc = (TCase *) calloc(1, sizeof(TCase));
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    if (tc != NULL) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
        tc->name = name;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    return tc;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
suite_add_tcase(Suite *suite, TCase *tc) 
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    assert(suite != NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    assert(tc != NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    assert(tc->next_tcase == NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    tc->next_tcase = suite->tests;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    suite->tests = tc;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
tcase_add_checked_fixture(TCase *tc,
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
                          tcase_setup_function setup,
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
                          tcase_teardown_function teardown)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    assert(tc != NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    tc->setup = setup;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    tc->teardown = teardown;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
tcase_add_test(TCase *tc, tcase_test_function test)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    assert(tc != NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    if (tc->allocated == tc->ntests) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
        int nalloc = tc->allocated + 100;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
        size_t new_size = sizeof(tcase_test_function) * nalloc;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
        tcase_test_function *new_tests = realloc(tc->tests, new_size);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
        assert(new_tests != NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        if (new_tests != tc->tests) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
            free(tc->tests);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
            tc->tests = new_tests;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
        }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
        tc->allocated = nalloc;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    tc->tests[tc->ntests] = test;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    tc->ntests++;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
SRunner *
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
srunner_create(Suite *suite)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    SRunner *runner = calloc(1, sizeof(SRunner));
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    if (runner != NULL) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
        runner->suite = suite;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    return runner;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
static jmp_buf env;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
static char const *_check_current_function = NULL;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
static int _check_current_lineno = -1;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
static char const *_check_current_filename = NULL;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
_check_set_test_info(char const *function, char const *filename, int lineno)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    _check_current_function = function;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    _check_current_lineno = lineno;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    _check_current_filename = filename;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
static void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
add_failure(SRunner *runner, int verbosity)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
    runner->nfailures++;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    if (verbosity >= CK_VERBOSE) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
        printf("%s:%d: %s\n", _check_current_filename,
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
               _check_current_lineno, _check_current_function);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
srunner_run_all(SRunner *runner, int verbosity)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    Suite *suite;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    TCase *tc;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    assert(runner != NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    suite = runner->suite;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    tc = suite->tests;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    while (tc != NULL) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
        int i;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
        for (i = 0; i < tc->ntests; ++i) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
            runner->nchecks++;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
            if (tc->setup != NULL) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
                /* setup */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
                if (setjmp(env)) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
                    add_failure(runner, verbosity);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
                    continue;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
                }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
                tc->setup();
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
            }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
            /* test */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
            if (setjmp(env)) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
                add_failure(runner, verbosity);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
                continue;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
            }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
            (tc->tests[i])();
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
            /* teardown */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
            if (tc->teardown != NULL) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
                if (setjmp(env)) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
                    add_failure(runner, verbosity);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
                    continue;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
                }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
                tc->teardown();
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
            }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
        }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
        tc = tc->next_tcase;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    if (verbosity) {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
        int passed = runner->nchecks - runner->nfailures;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
        double percentage = ((double) passed) / runner->nchecks;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
        int display = (int) (percentage * 100);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
        printf("%d%%: Checks: %d, Failed: %d\n",
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
               display, runner->nchecks, runner->nfailures);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
_fail_unless(int condition, const char *file, int line, char *msg)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    /* Always print the error message so it isn't lost.  In this case,
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
       we have a failure, so there's no reason to be quiet about what
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
       it is.
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    if (msg != NULL)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
        printf("%s", msg);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    longjmp(env, 1);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
int
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
srunner_ntests_failed(SRunner *runner)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    assert(runner != NULL);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    return runner->nfailures;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
void
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
srunner_free(SRunner *runner)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
{
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    free(runner->suite);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    free(runner);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
}