Deleted Added
full compact
timeout.sh (273771) timeout.sh (298879)
1# $FreeBSD: head/usr.bin/timeout/tests/timeout.sh 273771 2014-10-28 10:39:41Z bapt $
1# $FreeBSD: head/usr.bin/timeout/tests/timeout.sh 298879 2016-05-01 16:13:05Z pfg $
2
3atf_test_case nominal
4nominal_head()
5{
6 atf_set "descr" "Basic tests on timeout(1) utility"
7}
8
9nominal_body()
10{
11 atf_check \
12 -o empty \
13 -e empty \
14 -s exit:0 \
15 -x timeout 5 true
16}
17
18atf_test_case time_unit
19time_unit_head()
20{
21 atf_set "descr" "Test parsing the default time unit"
22}
23
24time_unit_body()
25{
26 atf_check \
27 -o empty \
28 -e empty \
29 -s exit:0 \
30 -x timeout 1d true
31
32 atf_check \
33 -o empty \
34 -e empty \
35 -s exit:0 \
36 -x timeout 1h true
37
38 atf_check \
39 -o empty \
40 -e empty \
41 -s exit:0 \
42 -x timeout 1m true
43
44 atf_check \
45 -o empty \
46 -e empty \
47 -s exit:0 \
48 -x timeout 1s true
49}
50
51atf_test_case no_timeout
52no_timeout_head()
53{
54 atf_set "descr" "Test disabled timeout"
55}
56
57no_timeout_body()
58{
59 atf_check \
60 -o empty \
61 -e empty \
62 -s exit:0 \
63 -x timeout 0 true
64}
65
66atf_test_case exit_numbers
67exit_numbers_head()
68{
69 atf_set "descr" "Test exit numbers"
70}
71
72exit_numbers_body()
73{
74 atf_check \
75 -o empty \
76 -e empty \
77 -s exit:2 \
78 -x timeout 5 sh -c \'exit 2\'
79
80 atf_check \
81 -o empty \
82 -e empty \
83 -s exit:124 \
84 -x timeout .1 sleep 1
85
2
3atf_test_case nominal
4nominal_head()
5{
6 atf_set "descr" "Basic tests on timeout(1) utility"
7}
8
9nominal_body()
10{
11 atf_check \
12 -o empty \
13 -e empty \
14 -s exit:0 \
15 -x timeout 5 true
16}
17
18atf_test_case time_unit
19time_unit_head()
20{
21 atf_set "descr" "Test parsing the default time unit"
22}
23
24time_unit_body()
25{
26 atf_check \
27 -o empty \
28 -e empty \
29 -s exit:0 \
30 -x timeout 1d true
31
32 atf_check \
33 -o empty \
34 -e empty \
35 -s exit:0 \
36 -x timeout 1h true
37
38 atf_check \
39 -o empty \
40 -e empty \
41 -s exit:0 \
42 -x timeout 1m true
43
44 atf_check \
45 -o empty \
46 -e empty \
47 -s exit:0 \
48 -x timeout 1s true
49}
50
51atf_test_case no_timeout
52no_timeout_head()
53{
54 atf_set "descr" "Test disabled timeout"
55}
56
57no_timeout_body()
58{
59 atf_check \
60 -o empty \
61 -e empty \
62 -s exit:0 \
63 -x timeout 0 true
64}
65
66atf_test_case exit_numbers
67exit_numbers_head()
68{
69 atf_set "descr" "Test exit numbers"
70}
71
72exit_numbers_body()
73{
74 atf_check \
75 -o empty \
76 -e empty \
77 -s exit:2 \
78 -x timeout 5 sh -c \'exit 2\'
79
80 atf_check \
81 -o empty \
82 -e empty \
83 -s exit:124 \
84 -x timeout .1 sleep 1
85
86 # With preserv status exit shoudl be 128 + TERM aka 143
86 # With preserv status exit should be 128 + TERM aka 143
87 atf_check \
88 -o empty \
89 -e empty \
90 -s exit:143 \
91 -x timeout --preserve-status .1 sleep 10
92
93 atf_check \
94 -o empty \
95 -e empty \
96 -s exit:124 \
97 -x timeout -s1 -k1 .1 sleep 10
98
99 atf_check \
100 -o empty \
101 -e empty \
102 -s exit:0 \
103 -x sh -c 'trap "" CHLD; exec timeout 10 true'
104}
105
106atf_test_case with_a_child
107with_a_child_head()
108{
109 atf_set "descr" "When starting with a child (coreutils bug#9098)"
110}
111
112with_a_child_body()
113{
114 out=$(sleep .1 & exec timeout .5 sh -c 'sleep 2; echo foo')
115 status=$?
116 test "$out" = "" && test $status = 124 || atf_fail
117
118}
119
120atf_test_case invalid_timeout
121invalid_timeout_head()
122{
123 atf_set "descr" "Invalid timeout"
124}
125
126invalid_timeout_body()
127{
128 atf_check \
129 -o empty \
130 -e inline:"timeout: invalid duration\n" \
131 -s exit:125 \
132 -x timeout invalid sleep 0
133
134 atf_check \
135 -o empty \
136 -e inline:"timeout: invalid duration\n" \
137 -s exit:125 \
138 -x timeout --kill-after=invalid 1 sleep 0
139
140 atf_check \
141 -o empty \
142 -e inline:"timeout: invalid duration\n" \
143 -s exit:125 \
144 -x timeout 42D sleep 0
145
146 atf_check \
147 -o empty \
148 -e inline:"timeout: invalid duration\n" \
149 -s exit:125 \
150 -x timeout 999999999999999999999999999999999999999999999999999999999999d sleep 0
151
152 atf_check \
153 -o empty \
154 -e inline:"timeout: invalid duration\n" \
155 -s exit:125 \
156 -x timeout 2.34e+5d sleep 0
157}
158
159atf_test_case invalid_signal
160invalid_signal_head()
161{
162 atf_set "descr" "Invalid signal"
163}
164
165invalid_signal_body()
166{
167 atf_check \
168 -o empty \
169 -e inline:"timeout: invalid signal\n" \
170 -s exit:125 \
171 -x timeout --signal=invalid 1 sleep 0
172}
173
174atf_test_case invalid_command
175invalid_command_head()
176{
177 atf_set "descr" "Invalid command"
178}
179
180invalid_command_body()
181{
182 atf_check \
183 -o empty \
184 -e inline:"timeout: exec(.): Permission denied\n" \
185 -s exit:126 \
186 -x timeout 10 .
187}
188
189atf_test_case no_such_command
190no_such_command_head()
191{
192 atf_set "descr" "No such command"
193}
194
195no_such_command_body()
196{
197 atf_check \
198 -o empty \
199 -e inline:"timeout: exec(enoexists): No such file or directory\n" \
200 -s exit:127 \
201 -x timeout 10 enoexists
202}
203
204atf_init_test_cases()
205{
206 atf_add_test_case nominal
207 atf_add_test_case time_unit
208 atf_add_test_case no_timeout
209 atf_add_test_case exit_numbers
210 atf_add_test_case with_a_child
211 atf_add_test_case invalid_timeout
212 atf_add_test_case invalid_signal
213 atf_add_test_case invalid_command
214 atf_add_test_case no_such_command
215}
87 atf_check \
88 -o empty \
89 -e empty \
90 -s exit:143 \
91 -x timeout --preserve-status .1 sleep 10
92
93 atf_check \
94 -o empty \
95 -e empty \
96 -s exit:124 \
97 -x timeout -s1 -k1 .1 sleep 10
98
99 atf_check \
100 -o empty \
101 -e empty \
102 -s exit:0 \
103 -x sh -c 'trap "" CHLD; exec timeout 10 true'
104}
105
106atf_test_case with_a_child
107with_a_child_head()
108{
109 atf_set "descr" "When starting with a child (coreutils bug#9098)"
110}
111
112with_a_child_body()
113{
114 out=$(sleep .1 & exec timeout .5 sh -c 'sleep 2; echo foo')
115 status=$?
116 test "$out" = "" && test $status = 124 || atf_fail
117
118}
119
120atf_test_case invalid_timeout
121invalid_timeout_head()
122{
123 atf_set "descr" "Invalid timeout"
124}
125
126invalid_timeout_body()
127{
128 atf_check \
129 -o empty \
130 -e inline:"timeout: invalid duration\n" \
131 -s exit:125 \
132 -x timeout invalid sleep 0
133
134 atf_check \
135 -o empty \
136 -e inline:"timeout: invalid duration\n" \
137 -s exit:125 \
138 -x timeout --kill-after=invalid 1 sleep 0
139
140 atf_check \
141 -o empty \
142 -e inline:"timeout: invalid duration\n" \
143 -s exit:125 \
144 -x timeout 42D sleep 0
145
146 atf_check \
147 -o empty \
148 -e inline:"timeout: invalid duration\n" \
149 -s exit:125 \
150 -x timeout 999999999999999999999999999999999999999999999999999999999999d sleep 0
151
152 atf_check \
153 -o empty \
154 -e inline:"timeout: invalid duration\n" \
155 -s exit:125 \
156 -x timeout 2.34e+5d sleep 0
157}
158
159atf_test_case invalid_signal
160invalid_signal_head()
161{
162 atf_set "descr" "Invalid signal"
163}
164
165invalid_signal_body()
166{
167 atf_check \
168 -o empty \
169 -e inline:"timeout: invalid signal\n" \
170 -s exit:125 \
171 -x timeout --signal=invalid 1 sleep 0
172}
173
174atf_test_case invalid_command
175invalid_command_head()
176{
177 atf_set "descr" "Invalid command"
178}
179
180invalid_command_body()
181{
182 atf_check \
183 -o empty \
184 -e inline:"timeout: exec(.): Permission denied\n" \
185 -s exit:126 \
186 -x timeout 10 .
187}
188
189atf_test_case no_such_command
190no_such_command_head()
191{
192 atf_set "descr" "No such command"
193}
194
195no_such_command_body()
196{
197 atf_check \
198 -o empty \
199 -e inline:"timeout: exec(enoexists): No such file or directory\n" \
200 -s exit:127 \
201 -x timeout 10 enoexists
202}
203
204atf_init_test_cases()
205{
206 atf_add_test_case nominal
207 atf_add_test_case time_unit
208 atf_add_test_case no_timeout
209 atf_add_test_case exit_numbers
210 atf_add_test_case with_a_child
211 atf_add_test_case invalid_timeout
212 atf_add_test_case invalid_signal
213 atf_add_test_case invalid_command
214 atf_add_test_case no_such_command
215}