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