1 /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * Copyright (C) 2007-2011 Kouhei Sutou <kou@clear-code.com> 4 * 5 * This library is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU Lesser General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 #ifndef __CUT_TEST_CONTEXT_H__ 21 #define __CUT_TEST_CONTEXT_H__ 22 23 #include <glib-object.h> 24 25 #include <cutter/cut-private.h> 26 #include <cutter/cut-public.h> 27 #include <cutter/cut-test-data.h> 28 #include <gcutter/gcut-public.h> 29 30 G_BEGIN_DECLS 31 32 #define CUT_TEST_CONTEXT_ERROR (cut_test_context_error_quark()) 33 34 #define CUT_TYPE_TEST_CONTEXT (cut_test_context_get_type()) 35 #define CUT_TEST_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CUT_TYPE_TEST_CONTEXT, CutTestContext)) 36 #define CUT_TEST_TEST_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CUT_TYPE_TEST_CONTEXT, CutTestContextClass)) 37 #define CUT_IS_TEST_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CUT_TYPE_TEST_CONTEXT)) 38 #define CUT_IS_TEST_TEST_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CUT_TYPE_TEST_CONTEXT)) 39 #define CUT_TEST_TEST_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), CUT_TYPE_TEST_CONTEXT, CutTestContextClass)) 40 41 typedef struct _CutTestContextClass CutTestContextClass; 42 43 struct _CutTestContext 44 { 45 GObject object; 46 }; 47 48 struct _CutTestContextClass 49 { 50 GObjectClass parent_class; 51 }; 52 53 typedef enum 54 { 55 CUT_TEST_CONTEXT_ERROR_FATAL 56 } CutTestContextError; 57 58 GQuark cut_test_context_error_quark (void); 59 60 GType cut_test_context_get_type (void) G_GNUC_CONST; 61 62 void cut_test_context_current_init (void); 63 void cut_test_context_current_quit (void); 64 65 CutTestContext *cut_test_context_new (CutRunContext *run_context, 66 CutTestSuite *test_suite, 67 CutTestCase *test_case, 68 CutTestIterator *test_iterator, 69 CutTest *test); 70 CutTestContext *cut_test_context_new_empty (void); 71 CutTestContext *cut_test_context_new_sub (CutTestContext *parent); 72 73 CutRunContext *cut_test_context_get_run_context (CutTestContext *context); 74 void cut_test_context_set_run_context (CutTestContext *context, 75 CutRunContext *run_context); 76 CutTestSuite *cut_test_context_get_test_suite (CutTestContext *context); 77 void cut_test_context_set_test_suite (CutTestContext *context, 78 CutTestSuite *test_suite); 79 CutTestCase *cut_test_context_get_test_case (CutTestContext *context); 80 void cut_test_context_set_test_case (CutTestContext *context, 81 CutTestCase *test_case); 82 CutTestIterator *cut_test_context_get_test_iterator 83 (CutTestContext *context); 84 void cut_test_context_set_test_iterator 85 (CutTestContext *context, 86 CutTestIterator *test_iterator); 87 CutTest *cut_test_context_get_test (CutTestContext *context); 88 void cut_test_context_set_test (CutTestContext *context, 89 CutTest *test); 90 91 void cut_test_context_set_multi_thread 92 (CutTestContext *context, 93 gboolean use_multi_thread); 94 gboolean cut_test_context_is_multi_thread 95 (CutTestContext *context); 96 97 void cut_test_context_set_data (CutTestContext *context, 98 CutTestData *test_data); 99 CutTestData *cut_test_context_get_data (CutTestContext *context, 100 guint index); 101 void cut_test_context_shift_data (CutTestContext *context); 102 gboolean cut_test_context_have_data (CutTestContext *context); 103 CutTestData *cut_test_context_get_current_data 104 (CutTestContext *context); 105 guint cut_test_context_get_n_data (CutTestContext *context); 106 107 void cut_test_context_set_failed (CutTestContext *context, 108 gboolean failed); 109 gboolean cut_test_context_is_failed (CutTestContext *context); 110 gboolean cut_test_context_need_test_run (CutTestContext *context); 111 112 void cut_test_context_emit_signal (CutTestContext *context, 113 CutTestResult *result); 114 115 gchar *cut_test_context_to_xml (CutTestContext *context); 116 void cut_test_context_to_xml_string (CutTestContext *context, 117 GString *string, 118 guint indent); 119 120 const gchar *cut_test_context_build_fixture_path_va_list 121 (CutTestContext *context, 122 const gchar *path, 123 va_list args); 124 GString *cut_test_context_get_fixture_data 125 (CutTestContext *context, 126 GError **error, 127 const gchar **full_path, 128 const gchar *path, 129 ...) G_GNUC_NULL_TERMINATED; 130 GString *cut_test_context_get_fixture_data_va_list 131 (CutTestContext *context, 132 GError **error, 133 const gchar **full_path, 134 const gchar *path, 135 va_list args); 136 137 gchar *cut_test_context_build_source_filename 138 (CutTestContext *context, 139 const gchar *filename); 140 141 G_END_DECLS 142 143 #endif /* __CUT_TEST_CONTEXT_H__ */ 144 145 /* 146 vi:ts=4:nowrap:ai:expandtab:sw=4 147 */ 148