Exemplo n.º 1
0
/*----------------------------------------------------------------------*/
static ContextSuite *add_new_context_suite(TestSuite *parent, const char* context_name, ContextSuite *next) {
    ContextSuite *new_context_suite = (ContextSuite *)calloc(1, sizeof(ContextSuite));
    new_context_suite->context_name = string_dup(context_name);
    new_context_suite->suite = create_named_test_suite(context_name);
    new_context_suite->next = next;
    add_suite_(parent, context_name, new_context_suite->suite);
    return new_context_suite;
}
Exemplo n.º 2
0
TestSuite *create_log_debug_suite(void)
{
    TestSuite *suite = create_named_test_suite("debug() suite");

    add_test(suite, debug_no_output_low_verbose);
    add_test(suite, debug_default_output_stderr);
    add_test(suite, debug_stub_no_debug);
    add_test(suite, debug_output);
    add_test(suite, debug_sets_default_keeps_filename);

    add_debug_syslog(suite);

    set_setup(suite, log_init_globals);

    return suite;
}
Exemplo n.º 3
0
TestSuite *create_config_suite(void)
{
    TestSuite *suite = create_named_test_suite(
	"Config suite");

    add_test(suite, config_inits);
    ADD_CF_P_TESTS(suite, origin);
    ADD_CF_P_TESTS(suite, organization);
    add_test(suite, get_string_default_null);
    add_test(suite, get_string_finds_var);
    add_test(suite, get_string_doesnt_find_unexisting);
    add_test(suite, get_string_finds_same_var_from_start);
    add_test(suite, get_string_finds_different_when_continue);

    return suite;
}
Exemplo n.º 4
0
/*----------------------------------------------------------------------*/
static int run_tests(TestReporter *reporter, const char *suite_name, const char *symbolic_name,
                     void *test_library_handle, TestItem test_items[], bool verbose) {
    int status;
    ContextSuite *context_suites = NULL;
    TestSuite *suite = create_named_test_suite(suite_name);

    const int number_of_matches = add_matching_tests_to_suite(test_library_handle, symbolic_name,
                                                              test_items, suite, &context_suites);

    if (error_when_matching(number_of_matches))
        return EXIT_FAILURE;

    if (symbolic_name != NULL && number_of_matches == 1) {
        bool found = matching_test_exists(symbolic_name, test_items);
        if (verbose)
            printf(" to only run one test: '%s' ...\n", symbolic_name);
        if (!found) {
            fprintf(stderr, "ERROR: No such test: '%s' in '%s'\n", symbolic_name, suite_name);
            return EXIT_FAILURE;
        }
        status = run_single_test(suite, test_name_of(symbolic_name), reporter);
    } else {
        if (verbose) {
            if (number_of_matches != count(test_items))
                printf(" to run %d matching tests ...\n", number_of_matches);
            else
                printf(" to run all %d discovered tests ...\n", count(test_items));
        }
        if (number_of_matches > 0)
            status = run_test_suite(suite, reporter);
        else {
            fprintf(stderr, "ERROR: No such test: '%s' in '%s'\n", symbolic_name, suite_name);
            status = EXIT_FAILURE;
        }
    }

    destroy_test_suite(suite);
    destroy_context_suites(context_suites);
    return(status);
}