- tests/lib/utilunix__my_system-fork_child.c
This source file includes following definitions.
- START_TEST
- START_TEST
- START_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/utilunix"
27
28 #include "tests/mctest.h"
29
30 #include "lib/util.h"
31
32 #include "utilunix__my_system-common.c"
33
34
35
36
37 START_TEST (fork_child)
38
39 {
40 int actual_value;
41
42 fork__return_value = 0;
43
44
45 actual_value = my_system (0, "/bin/some-command", "some parameter");
46
47
48 ck_assert_int_eq (actual_value, 0);
49
50 VERIFY_SIGACTION_CALLS ();
51 VERIFY_SIGNAL_CALLS ();
52
53 mctest_assert_str_eq (execvp__file__captured, "/bin/some-command");
54 ck_assert_int_eq (execvp__args__captured->len, 2);
55
56 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 0), "/bin/some-command");
57 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 1), "some parameter");
58
59
60 ck_assert_int_eq (my_exit__status__captured, 127);
61 }
62
63 END_TEST
64
65
66
67
68
69 START_TEST (fork_child_tokens)
70
71 {
72 int actual_value;
73
74 fork__return_value = 0;
75
76
77 actual_value = my_system (0, "vi +", "foo.txt");
78
79
80 ck_assert_int_eq (actual_value, 0);
81
82 VERIFY_SIGACTION_CALLS ();
83 VERIFY_SIGNAL_CALLS ();
84
85 mctest_assert_str_eq (execvp__file__captured, "vi");
86 ck_assert_int_eq (execvp__args__captured->len, 3);
87
88 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 0), "vi");
89 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 1), "+");
90 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 2), "foo.txt");
91
92
93 ck_assert_int_eq (my_exit__status__captured, 127);
94 }
95
96 END_TEST
97
98
99
100
101
102 START_TEST (fork_child_tokens2)
103
104 {
105 int actual_value;
106
107 fork__return_value = 0;
108
109
110 actual_value = my_system (0, "qwe -a 'aa bb' -b -c cc -d \"dd ee\" -f ff\\ gg", "foo.txt");
111
112
113 ck_assert_int_eq (actual_value, 0);
114
115 VERIFY_SIGACTION_CALLS ();
116 VERIFY_SIGNAL_CALLS ();
117
118 mctest_assert_str_eq (execvp__file__captured, "qwe");
119 ck_assert_int_eq (execvp__args__captured->len, 11);
120
121 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 0), "qwe");
122 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 1), "-a");
123 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 2), "'aa bb'");
124 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 3), "-b");
125 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 4), "-c");
126 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 5), "cc");
127 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 6), "-d");
128 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 7), "\"dd ee\"");
129 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 8), "-f");
130 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 9), "ff\\ gg");
131 mctest_assert_str_eq (g_ptr_array_index (execvp__args__captured, 10), "foo.txt");
132
133
134 ck_assert_int_eq (my_exit__status__captured, 127);
135 }
136
137 END_TEST
138
139
140
141
142 int
143 main (void)
144 {
145 TCase *tc_core;
146
147 tc_core = tcase_create ("Core");
148
149 tcase_add_checked_fixture (tc_core, setup, teardown);
150
151
152 tcase_add_test (tc_core, fork_child);
153 tcase_add_test (tc_core, fork_child_tokens);
154 tcase_add_test (tc_core, fork_child_tokens2);
155
156
157 return mctest_run_all (tc_core);
158 }
159
160