Esempio n. 1
0
static void
show_test_case (cairo_t *cr, CutTestCase *test_case, CutTestResultStatus status,
                guint n_tests, guint n_successes, guint n_failures,
                guint n_errors, guint n_pendings, guint n_omissions)
{
    PangoLayout *layout;
    const gchar *utf8;
    int width, height;
    gdouble x, y;

    utf8 = cut_test_get_name(CUT_TEST(test_case));
    layout = show_text_with_page_feed(cr, utf8);
    if (!layout)
        return;

    cairo_get_current_point(cr, &x, &y);
    cairo_save(cr);
    pango_layout_get_pixel_size(layout, &width, &height);
    cairo_rectangle(cr, A4_WIDTH - 100 - 10, y + 2, 100, height - 4);
    cut_cairo_set_source_result_color(cr, status);
    cairo_fill_preserve(cr);
    cairo_set_line_width(cr, 0.5);
    cairo_set_source_rgb(cr, 0, 0, 0);
    cairo_stroke(cr);
    cairo_restore(cr);

    cairo_move_to(cr, x, y + height);
    g_object_unref(layout);
}
Esempio n. 2
0
static void
cb_crash_iterated_test (CutIteratedTest *iterated_test,
                        CutTestContext *test_context,
                        CutTestResult *result, gpointer data)
{
    cb_crash_test(CUT_TEST(iterated_test), test_context, result, data);
}
Esempio n. 3
0
static void
cb_ready_test_suite (CutRunContext *run_context, CutTestSuite *test_suite,
                     guint n_test_cases, guint n_tests,
                     CutXMLStream *stream)
{
    GString *string;
    gchar *str;

    string = g_string_new(NULL);

    g_string_append(string, "  <ready-test-suite>\n");

    cut_test_to_xml_string(CUT_TEST(test_suite), string, 4);

    str = g_strdup_printf("%d", n_test_cases);
    cut_utils_append_xml_element_with_value(string, 4, "n-test-cases", str);
    g_free(str);

    str = g_strdup_printf("%d", n_tests);
    cut_utils_append_xml_element_with_value(string, 4, "n-tests", str);
    g_free(str);

    g_string_append(string, "  </ready-test-suite>\n");

    flow(stream, "%s", string->str);

    g_string_free(string, TRUE);
}
Esempio n. 4
0
static void
cb_complete_iterated_test (CutRunContext *run_context,
                           CutIteratedTest *iterated_test,
                           CutTestContext *test_context, gboolean success,
                           CutConsoleUI *console)
{
    cb_complete_test(run_context, CUT_TEST(iterated_test),
                     test_context, success, console);
}
Esempio n. 5
0
static void
cb_start_test_case (CutRunContext *run_context, CutTestCase *test_case,
                    CutConsoleUI *console)
{
    if (console->verbose_level < CUT_VERBOSE_LEVEL_VERBOSE)
        return;

    print_with_color(console, CUT_CONSOLE_COLOR_GREEN_BACK,
                     "%s", cut_test_get_name(CUT_TEST(test_case)));
    g_print(":\n");
}
Esempio n. 6
0
gboolean
cut_test_runner_run_test_iterator (CutTestRunner *runner,
                                   CutTestIterator *test_iterator,
                                   CutTestContext *test_context)
{
    CutRunContext *context;

    context = CUT_RUN_CONTEXT(runner);
    connect_to_test_iterator(context, test_iterator);
    return cut_test_run(CUT_TEST(test_iterator), test_context, context);
}
Esempio n. 7
0
static void
cb_start_test_iterator (CutRunContext *run_context,
                        CutTestIterator *test_iterator,
                        CutConsoleUI *console)
{
    if (console->verbose_level < CUT_VERBOSE_LEVEL_VERBOSE)
        return;

    g_print("  ");
    print_with_color(console, CUT_CONSOLE_COLOR_BLUE_BACK,
                     "%s", cut_test_get_name(CUT_TEST(test_iterator)));
    g_print(":\n");
}
Esempio n. 8
0
static void
cb_start_iterated_test (CutRunContext *run_context,
                        CutIteratedTest *iterated_test,
                        CutTestContext *test_context, CutConsoleUI *console)
{
    const gchar *name = NULL;

    if (console->verbose_level < CUT_VERBOSE_LEVEL_VERBOSE)
        return;

    if (cut_test_context_have_data(test_context)) {
        CutTestData *data;

        data = cut_test_context_get_current_data(test_context);
        name = cut_test_data_get_name(data);
    }

    if (!name)
        name = cut_test_get_name(CUT_TEST(iterated_test));

    print_test_on_start(console, name, CUT_TEST(iterated_test), "  ");
}
Esempio n. 9
0
static void
cb_start_test_case (CutRunContext *run_context, CutTestCase *test_case,
                    CutXMLStream *stream)
{
    GString *string;

    string = g_string_new(NULL);

    g_string_append(string, "  <start-test-case>\n");
    cut_test_to_xml_string(CUT_TEST(test_case), string, 4);
    g_string_append(string, "  </start-test-case>\n");

    flow(stream, "%s", string->str);

    g_string_free(string, TRUE);
}
Esempio n. 10
0
void
test_load_function (void)
{
    CutTestContainer *container;
    GList *tests, *list;
    gint i;
    const gchar *target_test_names[] = {"/.*/", NULL};
    gchar *expected_functions[] = {
        "test_abcdefghijklmnopqratuvwzyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789",
        "test_stub_function1",
        "test_stub_function2",
        "test_stub_function3",
        NULL
    };

    loader = loader_new("test", "stub-test-functions." G_MODULE_SUFFIX);
    test_case = cut_loader_load_test_case(loader);
    cut_assert(test_case);

    container = CUT_TEST_CONTAINER(test_case);
    cut_assert_equal_int(4,
                         cut_test_container_get_n_tests(container, NULL));

    run_context = cut_test_runner_new();
    cut_run_context_set_target_test_names(run_context, target_test_names);
    cut_assert_equal_int(4,
                         cut_test_container_get_n_tests(container, run_context));

    tests = (GList *)cut_test_container_get_children(container);
    cut_assert(tests);

    test_names = g_ptr_array_new_with_free_func(g_free);
    for (list = tests, i = 0; list; list = g_list_next(list), i++) {
        CutTest *test;

        cut_assert(list->data);
        cut_assert(CUT_IS_TEST(list->data));

        test = CUT_TEST(list->data);
        g_ptr_array_add(test_names, g_strdup(cut_test_get_name(test)));
    }
    g_ptr_array_sort(test_names, compare_test_name);
    g_ptr_array_add(test_names, NULL);
    cut_assert_equal_string_array(expected_functions,
                                  (gchar **)test_names->pdata);
}
Esempio n. 11
0
static void
cb_complete_test_suite (CutRunContext *run_context, CutTestSuite *test_suite,
                        gboolean success, CutXMLStream *stream)
{
    GString *string;

    string = g_string_new(NULL);

    g_string_append(string, "  <complete-test-suite>\n");
    cut_test_to_xml_string(CUT_TEST(test_suite), string, 4);
    cut_utils_append_xml_element_with_boolean_value(string, 4,
                                                    "success", success);
    g_string_append(string, "  </complete-test-suite>\n");

    flow(stream, "%s", string->str);

    g_string_free(string, TRUE);
}
Esempio n. 12
0
void
test_load_cpp_namespace (void)
{
    CutTestContainer *container;
    GList *tests, *list;
    gint i;
    const gchar *target_test_names[] = {"/.*/", NULL};
    gchar *expected_functions[] = {
        "calc::test_add",
        "calc::test_sub",
        NULL
    };

    loader = loader_new("cpp", "stub-namespace." G_MODULE_SUFFIX);
    test_case = cut_loader_load_test_case(loader);
    cut_assert(test_case);

    container = CUT_TEST_CONTAINER(test_case);
    cut_assert_equal_int(2,
                         cut_test_container_get_n_tests(container, NULL));

    run_context = cut_test_runner_new();
    cut_run_context_set_target_test_names(run_context, target_test_names);
    cut_assert_equal_int(2,
                         cut_test_container_get_n_tests(container, run_context));

    tests = (GList *)cut_test_container_get_children(container);
    cut_assert(tests);

    test_names = g_ptr_array_new_with_free_func(g_free);
    for (list = tests, i = 0; list; list = g_list_next(list), i++) {
        CutTest *test;

        cut_assert(list->data);
        cut_assert(CUT_IS_TEST(list->data));

        test = CUT_TEST(list->data);
        g_ptr_array_add(test_names, g_strdup(cut_test_get_name(test)));
    }
    g_ptr_array_sort(test_names, compare_test_name);
    g_ptr_array_add(test_names, NULL);
    cut_assert_equal_string_array(expected_functions,
                                  (gchar **)test_names->pdata);
}
Esempio n. 13
0
static void
cb_test_iterator_result (CutRunContext  *run_context,
                         CutTestIterator *test_iterator,
                         CutTestResult *result,
                         CutXMLStream *stream)
{
    GString *string;

    string = g_string_new(NULL);

    g_string_append(string, "  <test-iterator-result>\n");
    cut_test_to_xml_string(CUT_TEST(test_iterator), string, 4);
    cut_test_result_to_xml_string(result, string, 4);
    g_string_append(string, "  </test-iterator-result>\n");

    flow(stream, "%s", string->str);

    g_string_free(string, TRUE);
}
Esempio n. 14
0
static void
cb_start_iterated_test (CutRunContext *run_context,
                        CutIteratedTest *iterated_test,
                        CutTestContext *test_context,
                        CutXMLStream *stream)
{
    GString *string;

    string = g_string_new(NULL);

    g_string_append(string, "  <start-iterated-test>\n");
    cut_test_to_xml_string(CUT_TEST(iterated_test), string, 4);
    cut_test_context_to_xml_string(test_context, string, 4);
    g_string_append(string, "  </start-iterated-test>\n");

    flow(stream, "%s", string->str);

    g_string_free(string, TRUE);
}
Esempio n. 15
0
static gboolean
run (void)
{
    gboolean success;
    CutTestContext *test_context;
    CutTest *test;

    test = CUT_TEST(test_iterator);
    connect_signals(test);
    test_context = cut_test_context_new(run_context,
                                        NULL, test_case, NULL, NULL);
    cut_test_context_current_push(test_context);
    success = cut_test_runner_run_test_iterator(CUT_TEST_RUNNER(run_context),
                                                test_iterator, test_context);
    cut_test_context_current_pop();
    disconnect_signals(test);

    g_object_unref(test_context);

    return success;
}
Esempio n. 16
0
static void
cb_complete_iterated_test (CutRunContext *run_context,
                           CutIteratedTest *iterated_test,
                           CutTestContext *test_context,
                           gboolean success,
                           CutXMLStream *stream)
{
    GString *string;

    string = g_string_new(NULL);

    g_string_append(string, "  <complete-iterated-test>\n");
    cut_test_to_xml_string(CUT_TEST(iterated_test), string, 4);
    cut_test_context_to_xml_string(test_context, string, 4);
    cut_utils_append_xml_element_with_boolean_value(string, 4,
                                                    "success", success);
    g_string_append(string, "  </complete-iterated-test>\n");

    flow(stream, "%s", string->str);

    g_string_free(string, TRUE);
}
Esempio n. 17
0
static void
cb_pass_assertion_iterated_test (CutIteratedTest *iterated_test,
                                 CutTestContext *test_context, gpointer data)
{
    cb_pass_assertion_test(CUT_TEST(iterated_test), test_context, data);
}
Esempio n. 18
0
static gboolean
equal_name (gconstpointer data1, gconstpointer data2)
{
    return g_str_equal(cut_test_get_name(CUT_TEST(data1)),
                       cut_test_get_name(CUT_TEST(data2)));
}