This source file includes following definitions.
- setup
- teardown
- START_PARAMETRIZED_TEST
- main
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 #define TEST_SUITE_NAME "/lib/vfs"
26
27 #include "tests/mctest.h"
28
29 #ifdef HAVE_CHARSET
30 #include "lib/charsets.h"
31 #endif
32
33 #include "lib/strutil.h"
34 #include "lib/vfs/xdirentry.h"
35 #include "lib/vfs/path.h"
36
37 #include "src/vfs/local/local.c"
38
39
40
41
42 static void
43 setup (void)
44 {
45 str_init_strings ("UTF-8");
46
47 vfs_init ();
48 vfs_init_localfs ();
49 vfs_setup_work_dir ();
50
51 #ifdef HAVE_CHARSET
52 mc_global.sysconfig_dir = (char *) TEST_SHARE_DIR;
53 load_codepages_list ();
54 #endif
55 }
56
57
58
59
60 static void
61 teardown (void)
62 {
63 #ifdef HAVE_CHARSET
64 free_codepages_list ();
65 #endif
66
67 vfs_shut ();
68 str_uninit_strings ();
69 }
70
71
72
73
74 static const struct test_path_length_ds
75 {
76 const char *input_path;
77 const size_t expected_length_element_encoding;
78 const size_t expected_length_terminal_encoding;
79 } test_path_length_ds[] =
80 {
81 {
82 NULL,
83 0,
84 0
85 },
86 {
87 "/",
88 1,
89 1
90 },
91 {
92 "/тестовый/путь",
93 26,
94 26
95 },
96 #ifdef HAVE_CHARSET
97 {
98 "/#enc:KOI8-R/тестовый/путь",
99 14,
100 38,
101 },
102 #endif
103 };
104
105
106
107
108 START_PARAMETRIZED_TEST (test_path_length, test_path_length_ds)
109
110 {
111
112 vfs_path_t *vpath;
113 char *path;
114 size_t actual_length_terminal_encoding, actual_length_element_encoding;
115
116 vpath = vfs_path_from_str (data->input_path);
117 path = vpath != NULL ? vfs_path_get_by_index (vpath, 0)->path : NULL;
118
119
120 actual_length_terminal_encoding = vfs_path_len (vpath);
121 actual_length_element_encoding = path != NULL ? strlen (path) : 0;
122
123
124 ck_assert_int_eq (actual_length_terminal_encoding, data->expected_length_terminal_encoding);
125 ck_assert_int_eq (actual_length_element_encoding, data->expected_length_element_encoding);
126
127 vfs_path_free (vpath, TRUE);
128 }
129
130 END_PARAMETRIZED_TEST
131
132
133
134
135 int
136 main (void)
137 {
138 TCase *tc_core;
139
140 tc_core = tcase_create ("Core");
141
142 tcase_add_checked_fixture (tc_core, setup, teardown);
143
144
145 mctest_add_parameterized_test (tc_core, test_path_length, test_path_length_ds);
146
147
148 return mctest_run_all (tc_core);
149 }
150
151