This source file includes following definitions.
- g_get_current_dir
- mc_stat
- 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
26 #define TEST_SUITE_NAME "/lib/vfs"
27
28 #include "tests/mctest.h"
29
30 #include <stdlib.h>
31
32 #include "lib/strutil.h"
33 #include "lib/vfs/xdirentry.h"
34 #include "src/vfs/local/local.c"
35
36
37
38
39 char *
40 g_get_current_dir (void)
41 {
42 return g_strdup ("/some/path");
43 }
44
45
46
47 static gboolean mc_stat__is_2nd_call_different = FALSE;
48 static gboolean mc_stat__call_count = 0;
49
50
51 int
52 mc_stat (const vfs_path_t * vpath, struct stat *my_stat)
53 {
54 (void) vpath;
55
56 if (mc_stat__call_count++ > 1 && mc_stat__is_2nd_call_different)
57 {
58 my_stat->st_ino = 2;
59 my_stat->st_dev = 22;
60 }
61 else
62 {
63 my_stat->st_ino = 1;
64 my_stat->st_dev = 11;
65 }
66 if (mc_stat__call_count > 2)
67 {
68 mc_stat__call_count = 0;
69 }
70 return 0;
71 }
72
73
74
75
76 static void
77 setup (void)
78 {
79 str_init_strings (NULL);
80
81 vfs_init ();
82 vfs_init_localfs ();
83 vfs_setup_work_dir ();
84 }
85
86
87
88
89 static void
90 teardown (void)
91 {
92 vfs_shut ();
93 str_uninit_strings ();
94 }
95
96
97
98
99
100 static const struct test_vfs_setup_cwd_symlink_ds
101 {
102 gboolean is_2nd_call_different;
103 const char *expected_result;
104 } test_vfs_setup_cwd_symlink_ds[] =
105 {
106 {
107 TRUE,
108 "/some/path"
109 },
110 {
111 FALSE,
112 "/some/path2"
113 },
114 };
115
116
117
118
119 START_PARAMETRIZED_TEST (test_vfs_setup_cwd_symlink, test_vfs_setup_cwd_symlink_ds)
120
121 {
122
123 vfs_set_raw_current_dir (NULL);
124 mc_stat__is_2nd_call_different = data->is_2nd_call_different;
125 mc_stat__call_count = 0;
126 setenv ("PWD", "/some/path2", 1);
127
128
129 vfs_setup_cwd ();
130
131
132 mctest_assert_str_eq (vfs_get_current_dir (), data->expected_result);
133 }
134
135 END_PARAMETRIZED_TEST
136
137
138
139
140 int
141 main (void)
142 {
143 TCase *tc_core;
144
145 tc_core = tcase_create ("Core");
146
147 tcase_add_checked_fixture (tc_core, setup, teardown);
148
149
150 mctest_add_parameterized_test (tc_core, test_vfs_setup_cwd_symlink,
151 test_vfs_setup_cwd_symlink_ds);
152
153
154 return mctest_run_all (tc_core);
155 }
156
157