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); }
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); }
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); }
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); }
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"); }
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); }
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"); }
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), " "); }
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); }
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); }
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); }
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); }
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); }
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); }
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; }
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); }
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); }
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))); }