File: test-cut-module.c

package info (click to toggle)
cutter-testing-framework 1.1.7-1.2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 18,556 kB
  • sloc: ansic: 79,864; xml: 38,680; sh: 10,266; makefile: 2,324; ruby: 845; cpp: 697
file content (118 lines) | stat: -rw-r--r-- 2,696 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <cutter.h>
#include <cutter/cut-module-factory.h>

#include "../lib/cuttest-utils.h"

void test_load_module (void);
void test_collect_names (void);
void test_collect_registered_types (void);
void test_load_modules_unique (void);
void test_fail_to_load_module (void);

static GList *modules = NULL;
static gchar *modules_dir = NULL;
static GLogFunc original_log_func = NULL;

static void
log_func (const gchar   *log_domain,
          GLogLevelFlags log_level,
          const gchar   *message,
          gpointer       user_data)
{
}

void
cut_startup (void)
{
    original_log_func = g_log_set_default_handler(log_func, NULL);

    modules_dir = g_build_filename(cuttest_get_base_dir(),
                                   "fixtures",
                                   "loader",
                                   "module",
#ifndef G_OS_WIN32
                                   ".libs",
#endif
                                   NULL);
    modules = cut_module_load_modules(modules_dir);
}

void
cut_shutdown (void)
{
    g_list_foreach(modules, (GFunc) cut_module_unload, NULL);
    g_list_free(modules);
    modules = NULL;

    g_free(modules_dir);
    g_log_set_default_handler(original_log_func, NULL);
}

void
test_load_module (void)
{
    cut_assert(modules);

    cut_assert(cut_module_find(modules, "test1"));
}

void
test_fail_to_load_module (void)
{
    cut_assert(modules);

    cut_assert(!cut_module_find(modules, "XXX"));
}

void
test_collect_names (void)
{
    GList *names;

    cut_assert(modules);

    names = cut_module_collect_names(modules);
    cut_assert(names);
    cut_assert_equal_int(3, g_list_length(names));

    cut_assert_equal_string("cannot-load-module", names->data);
    cut_assert_equal_string("test1", g_list_nth_data(names, 1));
    cut_assert_equal_string("test2", g_list_nth_data(names, 2));

    g_list_free(names);
}

void
test_collect_registered_types (void)
{
    GList *registered_types;

    cut_assert(modules);

    registered_types = cut_module_collect_registered_types(modules);
    cut_assert(registered_types);
    cut_assert_equal_int(2, g_list_length(registered_types));

    cut_assert_equal_string("CutModuleTest1", registered_types->data);
    cut_assert_equal_string("CutModuleTest2", g_list_next(registered_types)->data);

    g_list_free(registered_types);
}

void
test_load_modules_unique (void)
{
    GList *reloaded_modules;

    cut_assert(modules);
    cut_assert_equal_int(3, g_list_length(modules));

    reloaded_modules = cut_module_load_modules_unique(modules_dir, modules);
    cut_assert(reloaded_modules);

    cut_assert_equal_int(3, g_list_length(reloaded_modules));
}

/*
vi:ts=4:nowrap:ai:expandtab:sw=4
*/