xref: /netbsd-src/tests/usr.bin/sort/t_sort.sh (revision 28604916d4405d94c855cf455ac3ac6fee06a908)
1*28604916Sjruoho# $NetBSD: t_sort.sh,v 1.1 2012/03/17 16:33:15 jruoho Exp $
2*28604916Sjruoho#
3*28604916Sjruoho# Copyright (c) 2008, 2009, 2010 The NetBSD Foundation, Inc.
4*28604916Sjruoho# All rights reserved.
5*28604916Sjruoho#
6*28604916Sjruoho# Redistribution and use in source and binary forms, with or without
7*28604916Sjruoho# modification, are permitted provided that the following conditions
8*28604916Sjruoho# are met:
9*28604916Sjruoho# 1. Redistributions of source code must retain the above copyright
10*28604916Sjruoho#    notice, this list of conditions and the following disclaimer.
11*28604916Sjruoho# 2. Redistributions in binary form must reproduce the above copyright
12*28604916Sjruoho#    notice, this list of conditions and the following disclaimer in the
13*28604916Sjruoho#    documentation and/or other materials provided with the distribution.
14*28604916Sjruoho#
15*28604916Sjruoho# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
16*28604916Sjruoho# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17*28604916Sjruoho# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18*28604916Sjruoho# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
19*28604916Sjruoho# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20*28604916Sjruoho# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21*28604916Sjruoho# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22*28604916Sjruoho# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23*28604916Sjruoho# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24*28604916Sjruoho# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25*28604916Sjruoho# POSSIBILITY OF SUCH DAMAGE.
26*28604916Sjruoho#
27*28604916Sjruoho
28*28604916Sjruohoatf_test_case basic
29*28604916Sjruohobasic_head()
30*28604916Sjruoho{
31*28604916Sjruoho	atf_set "descr" "Basic functionality test"
32*28604916Sjruoho}
33*28604916Sjruohobasic_body()
34*28604916Sjruoho{
35*28604916Sjruoho	cat >in <<EOF
36*28604916Sjruohoz b m f
37*28604916Sjruohoy c o e
38*28604916Sjruohox a n h
39*28604916Sjruohox a n g
40*28604916SjruohoEOF
41*28604916Sjruoho
42*28604916Sjruoho	cat >expout <<EOF
43*28604916Sjruohox a n g
44*28604916Sjruohox a n h
45*28604916Sjruohoy c o e
46*28604916Sjruohoz b m f
47*28604916SjruohoEOF
48*28604916Sjruoho
49*28604916Sjruoho	atf_check -o file:expout sort in
50*28604916Sjruoho}
51*28604916Sjruoho
52*28604916Sjruohoatf_test_case empty_file
53*28604916Sjruohoempty_file_head()
54*28604916Sjruoho{
55*28604916Sjruoho	atf_set "descr" "Tests sorting an empty file"
56*28604916Sjruoho}
57*28604916Sjruohoempty_file_body()
58*28604916Sjruoho{
59*28604916Sjruoho	touch empty
60*28604916Sjruoho	atf_check -o empty sort -S empty
61*28604916Sjruoho	atf_check sort -S -c empty
62*28604916Sjruoho	atf_check sort -S -c -u empty
63*28604916Sjruoho}
64*28604916Sjruoho
65*28604916Sjruohoatf_test_case end_of_options
66*28604916Sjruohoend_of_options_head()
67*28604916Sjruoho{
68*28604916Sjruoho	atf_set "descr" "Determination of end of option list"
69*28604916Sjruoho}
70*28604916Sjruohoend_of_options_body()
71*28604916Sjruoho{
72*28604916Sjruoho	echo x >-k
73*28604916Sjruoho	atf_check -o file:-k -x "sort -S -- -k </dev/null"
74*28604916Sjruoho	atf_check -s not-exit:1 -e ignore -x "sort -S - -c </dev/null"
75*28604916Sjruoho}
76*28604916Sjruoho
77*28604916Sjruohoatf_test_case missing_newline
78*28604916Sjruohomissing_newline_head()
79*28604916Sjruoho{
80*28604916Sjruoho	atf_set "descr" "Tests with missing new line in input file"
81*28604916Sjruoho}
82*28604916Sjruohomissing_newline_body()
83*28604916Sjruoho{
84*28604916Sjruoho	printf '%s' x >in
85*28604916Sjruoho	atf_check -o inline:'x\n' sort in
86*28604916Sjruoho}
87*28604916Sjruoho
88*28604916Sjruohoatf_test_case null_bytes
89*28604916Sjruohonull_bytes_head()
90*28604916Sjruoho{
91*28604916Sjruoho	atf_set "descr" "Tests the behavior of null bytes"
92*28604916Sjruoho}
93*28604916Sjruohonull_bytes_body()
94*28604916Sjruoho{
95*28604916Sjruoho	printf '\0b\n\0a\n' >in
96*28604916Sjruoho	atf_check -o inline:'\0a\n\0b\n' sort -S in
97*28604916Sjruoho}
98*28604916Sjruoho
99*28604916Sjruohoatf_test_case long_records
100*28604916Sjruoholong_records_head()
101*28604916Sjruoho{
102*28604916Sjruoho	atf_set "descr" "Tests long lines and keys"
103*28604916Sjruoho}
104*28604916Sjruoholong_records_body()
105*28604916Sjruoho{
106*28604916Sjruoho	awk 'BEGIN {	x="x"
107*28604916Sjruoho	for(i=1; i<=12; i++) x = x x
108*28604916Sjruoho	for(i=15; i<=25; i++) print x i
109*28604916Sjruoho}' >in
110*28604916Sjruoho
111*28604916Sjruoho	awk 'BEGIN {	x="x"
112*28604916Sjruoho	for(i=1; i<=12; i++) x = x x
113*28604916Sjruoho	for(i=25; i>=15; i--) print x i
114*28604916Sjruoho}' >out
115*28604916Sjruoho
116*28604916Sjruoho	atf_check -o file:out sort -r in
117*28604916Sjruoho	atf_check -o file:out sort -k 1,1r -k 1 in
118*28604916Sjruoho}
119*28604916Sjruoho
120*28604916Sjruohoatf_test_case long_file
121*28604916Sjruoholong_file_head()
122*28604916Sjruoho{
123*28604916Sjruoho	atf_set "descr" "Tests with a long file to try to force intermediate" \
124*28604916Sjruoho	    "files"
125*28604916Sjruoho}
126*28604916Sjruoholong_file_body()
127*28604916Sjruoho{
128*28604916Sjruoho	awk 'BEGIN { for(i=0; i<20000; i++) print rand() }' >in
129*28604916Sjruoho	sort -S -r in | awk '$0 "x" != x { print ; x = $0 "x" }' >out
130*28604916Sjruoho	atf_check -o file:out sort -u -r in
131*28604916Sjruoho}
132*28604916Sjruoho
133*28604916Sjruohoatf_test_case any_char
134*28604916Sjruohoany_char_head()
135*28604916Sjruoho{
136*28604916Sjruoho	atf_set "descr" "Tests with files containing non-printable/extended" \
137*28604916Sjruoho	    "characters"
138*28604916Sjruoho}
139*28604916Sjruohoany_char_body()
140*28604916Sjruoho{
141*28604916Sjruoho	atf_check -o file:$(atf_get_srcdir)/d_any_char_dflag_out.txt \
142*28604916Sjruoho	    sort -d -k 2 $(atf_get_srcdir)/d_any_char_in.txt
143*28604916Sjruoho
144*28604916Sjruoho	atf_check -o file:$(atf_get_srcdir)/d_any_char_fflag_out.txt \
145*28604916Sjruoho	    sort -f -k 2 $(atf_get_srcdir)/d_any_char_in.txt
146*28604916Sjruoho
147*28604916Sjruoho	atf_check -o file:$(atf_get_srcdir)/d_any_char_iflag_out.txt \
148*28604916Sjruoho	    sort -i -k 2 $(atf_get_srcdir)/d_any_char_in.txt
149*28604916Sjruoho}
150*28604916Sjruoho
151*28604916Sjruohoatf_test_case bflag
152*28604916Sjruohobflag_head()
153*28604916Sjruoho{
154*28604916Sjruoho	atf_set "descr" "Tests the -b flag"
155*28604916Sjruoho}
156*28604916Sjruohobflag_body()
157*28604916Sjruoho{
158*28604916Sjruoho	cat >in <<EOF
159*28604916Sjruoho  b
160*28604916Sjruoho a
161*28604916SjruohoEOF
162*28604916Sjruoho
163*28604916Sjruoho	atf_check -o file:in sort -b in
164*28604916Sjruoho	atf_check -o file:in -x "sort -b <in"
165*28604916Sjruoho	atf_check -s exit:1 -o ignore -e ignore -x "sort in | sort -c -r"
166*28604916Sjruoho}
167*28604916Sjruoho
168*28604916Sjruohoatf_test_case cflag
169*28604916Sjruohocflag_head()
170*28604916Sjruoho{
171*28604916Sjruoho	atf_set "descr" "Tests the -c flag"
172*28604916Sjruoho}
173*28604916Sjruohocflag_body()
174*28604916Sjruoho{
175*28604916Sjruoho	cat >in <<EOF
176*28604916Sjruohob
177*28604916Sjruohoa
178*28604916SjruohoEOF
179*28604916Sjruoho
180*28604916Sjruoho	atf_check -s exit:1 -e ignore sort -S -c in
181*28604916Sjruoho}
182*28604916Sjruoho
183*28604916Sjruohoatf_test_case kflag_one_field
184*28604916Sjruohokflag_one_field_head()
185*28604916Sjruoho{
186*28604916Sjruoho	atf_set "descr" "Tests the -k flag with one field"
187*28604916Sjruoho}
188*28604916Sjruohokflag_one_field_body()
189*28604916Sjruoho{
190*28604916Sjruoho	cat >in <<EOF
191*28604916Sjruohoz b m f
192*28604916Sjruohoy c o e
193*28604916Sjruohox a n h
194*28604916Sjruohox a n g
195*28604916SjruohoEOF
196*28604916Sjruoho
197*28604916Sjruoho	cat >expout <<EOF
198*28604916Sjruohox a n g
199*28604916Sjruohox a n h
200*28604916Sjruohoz b m f
201*28604916Sjruohoy c o e
202*28604916SjruohoEOF
203*28604916Sjruoho
204*28604916Sjruoho	atf_check -o file:expout sort -k2.1 in
205*28604916Sjruoho}
206*28604916Sjruoho
207*28604916Sjruohoatf_test_case kflag_two_fields
208*28604916Sjruohokflag_two_fields_head()
209*28604916Sjruoho{
210*28604916Sjruoho	atf_set "descr" "Tests the -k flag with two fields"
211*28604916Sjruoho}
212*28604916Sjruohokflag_two_fields_body()
213*28604916Sjruoho{
214*28604916Sjruoho	cat >in <<EOF
215*28604916Sjruohoz b m f
216*28604916Sjruohoy c o e
217*28604916Sjruohox a n h
218*28604916Sjruohox a n g
219*28604916SjruohoEOF
220*28604916Sjruoho
221*28604916Sjruoho	cat >expout <<EOF
222*28604916Sjruohox a n h
223*28604916Sjruohox a n g
224*28604916Sjruohoz b m f
225*28604916Sjruohoy c o e
226*28604916SjruohoEOF
227*28604916Sjruoho	atf_check -o file:expout sort -k2.1,2.0 in
228*28604916Sjruoho}
229*28604916Sjruoho
230*28604916Sjruohoatf_test_case kflag_many_fields
231*28604916Sjruohokflag_many_fields_head()
232*28604916Sjruoho{
233*28604916Sjruoho	atf_set "descr" "Tests the -k flag with many fields"
234*28604916Sjruoho}
235*28604916Sjruohokflag_many_fields_body()
236*28604916Sjruoho{
237*28604916Sjruoho	cat >in <<EOF
238*28604916Sjruoho0:2:3:4:5:6:7:8:9
239*28604916Sjruoho1:1:3:4:5:6:7:8:9
240*28604916Sjruoho1:2:2:4:5:6:7:8:9
241*28604916Sjruoho1:2:3:3:5:6:7:8:9
242*28604916Sjruoho1:2:3:4:4:6:7:8:9
243*28604916Sjruoho1:2:3:4:5:5:7:8:9
244*28604916Sjruoho1:2:3:4:5:6:6:8:9
245*28604916Sjruoho1:2:3:4:5:6:7:7:9
246*28604916Sjruoho1:2:3:4:5:6:7:8:8
247*28604916SjruohoEOF
248*28604916Sjruoho
249*28604916Sjruoho	cat >out <<EOF
250*28604916Sjruoho1:2:3:4:5:6:7:8:8
251*28604916Sjruoho1:2:3:4:5:6:7:7:9
252*28604916Sjruoho1:2:3:4:5:6:6:8:9
253*28604916Sjruoho1:2:3:4:5:5:7:8:9
254*28604916Sjruoho1:2:3:4:4:6:7:8:9
255*28604916Sjruoho1:2:3:3:5:6:7:8:9
256*28604916Sjruoho1:2:2:4:5:6:7:8:9
257*28604916Sjruoho1:1:3:4:5:6:7:8:9
258*28604916Sjruoho0:2:3:4:5:6:7:8:9
259*28604916SjruohoEOF
260*28604916Sjruoho
261*28604916Sjruoho	atf_check -o file:out sort -t: -k9 -k8 -k7 -k6 -k5 -k4 -k3 \
262*28604916Sjruoho	    -k2 -k1 in
263*28604916Sjruoho}
264*28604916Sjruoho
265*28604916Sjruohoatf_test_case kflag_outofbounds
266*28604916Sjruohokflag_outofbounds_head()
267*28604916Sjruoho{
268*28604916Sjruoho	atf_set "descr" "Tests the -k flag with out of bounds fields"
269*28604916Sjruoho}
270*28604916Sjruohokflag_outofbounds_body()
271*28604916Sjruoho{
272*28604916Sjruoho	cat >in <<EOF
273*28604916Sjruoho0 5
274*28604916Sjruoho1 4
275*28604916Sjruoho2 3
276*28604916Sjruoho3 2
277*28604916Sjruoho4 1
278*28604916Sjruoho5 0
279*28604916SjruohoEOF
280*28604916Sjruoho
281*28604916Sjruoho	atf_check -o file:in sort -k2.2,2.1 -k2.3,2.4 in
282*28604916Sjruoho}
283*28604916Sjruoho
284*28604916Sjruohoatf_test_case kflag_nonmonotone
285*28604916Sjruohokflag_nonmonotone_head()
286*28604916Sjruoho{
287*28604916Sjruoho	atf_set "descr" "Tests the -k flag with apparently nonmonotone" \
288*28604916Sjruoho	    "field specs"
289*28604916Sjruoho}
290*28604916Sjruohokflag_nonmonotone_body()
291*28604916Sjruoho{
292*28604916Sjruoho	cat >in <<EOF
293*28604916Sjruohoaaaa c
294*28604916Sjruohox a
295*28604916Sjruoho0 b
296*28604916SjruohoEOF
297*28604916Sjruoho
298*28604916Sjruoho	atf_check -o file:in sort -k2,1.3 -k2.5,2.5 in
299*28604916Sjruoho}
300*28604916Sjruoho
301*28604916Sjruohoatf_test_case kflag_limits
302*28604916Sjruohokflag_limits_head()
303*28604916Sjruoho{
304*28604916Sjruoho	atf_set "descr" "Tests the -k flag field limits"
305*28604916Sjruoho}
306*28604916Sjruohokflag_limits_body()
307*28604916Sjruoho{
308*28604916Sjruoho	cat >in <<EOF
309*28604916Sjruohoa	2
310*28604916Sjruohoa	1
311*28604916Sjruohob	2
312*28604916Sjruohob	1
313*28604916SjruohoEOF
314*28604916Sjruoho
315*28604916Sjruoho	cat >out <<EOF
316*28604916Sjruohob	2
317*28604916Sjruohob	1
318*28604916Sjruohoa	2
319*28604916Sjruohoa	1
320*28604916SjruohoEOF
321*28604916Sjruoho
322*28604916Sjruoho	atf_check -o file:out sort -r -k1,1 -k2n in
323*28604916Sjruoho}
324*28604916Sjruoho
325*28604916Sjruohoatf_test_case kflag_alpha
326*28604916Sjruohokflag_alpha_head()
327*28604916Sjruoho{
328*28604916Sjruoho	atf_set "descr" "Tests the -k flag with various alpha fields"
329*28604916Sjruoho}
330*28604916Sjruohokflag_alpha_body()
331*28604916Sjruoho{
332*28604916Sjruoho	sort >in <<EOF
333*28604916Sjruoho01:04:19:01:16:01:21:01 a
334*28604916Sjruoho02:03:13:15:13:19:15:02  a
335*28604916Sjruoho03:02:07:09:07:13:09:03   a
336*28604916Sjruoho04:01:01:03:01:07:03:04    a
337*28604916Sjruoho05:08:20:16:17:02:20:05 aa
338*28604916Sjruoho06:07:14:18:14:20:14:06  aa
339*28604916Sjruoho07:06:08:10:08:14:08:07   aa
340*28604916Sjruoho08:05:02:04:02:08:02:08    aa
341*28604916Sjruoho09:16:22:02:22:04:24:13 b
342*28604916Sjruoho10:15:16:20:19:22:18:14  b
343*28604916Sjruoho11:14:10:12:10:16:12:15   b
344*28604916Sjruoho12:13:04:06:04:10:06:16    b
345*28604916Sjruoho13:24:24:22:24:06:22:21 bb
346*28604916Sjruoho14:23:18:24:21:24:16:22  bb
347*28604916Sjruoho15:22:12:14:12:18:10:23   bb
348*28604916Sjruoho16:21:06:08:06:12:04:24    bb
349*28604916Sjruoho17:12:21:21:18:03:19:09 ab
350*28604916Sjruoho18:11:15:19:15:21:13:10  ab
351*28604916Sjruoho19:10:09:11:09:15:07:11   ab
352*28604916Sjruoho20:09:03:05:03:09:01:12    ab
353*28604916Sjruoho21:20:23:17:23:05:23:17 ba
354*28604916Sjruoho22:19:17:23:20:23:17:18  ba
355*28604916Sjruoho23:18:11:13:11:17:11:19   ba
356*28604916Sjruoho24:17:05:07:05:11:05:20    ba
357*28604916SjruohoEOF
358*28604916Sjruoho
359*28604916Sjruoho	atf_check -x "sort -S -k2b -k2 in >xx"
360*28604916Sjruoho	atf_check -e ignore sort -c -t: -k2n xx
361*28604916Sjruoho
362*28604916Sjruoho	atf_check -x "sort -S -k2,2.1b -k2 in >xx"
363*28604916Sjruoho	atf_check -e ignore sort -c -t: -k3n xx
364*28604916Sjruoho
365*28604916Sjruoho	atf_check -x "sort -S -k2.3 -k2 in >xx"
366*28604916Sjruoho	atf_check -e ignore sort -c -t: -k4n xx
367*28604916Sjruoho
368*28604916Sjruoho	atf_check -x "sort -S -k2b,2.3 -k2 in >xx"
369*28604916Sjruoho	atf_check -e ignore sort -c -t: -k5n xx
370*28604916Sjruoho
371*28604916Sjruoho	atf_check -x "sort -S -k2.3,2.1b -k2 in >xx"
372*28604916Sjruoho	atf_check -e ignore sort -c -t: -k6n xx
373*28604916Sjruoho
374*28604916Sjruoho	atf_check -x "sort -S -k2,2.1b -k2r in >xx"
375*28604916Sjruoho	atf_check -e ignore sort -c -t: -k7n xx
376*28604916Sjruoho
377*28604916Sjruoho	atf_check -x "sort -S -b -k2,2 -k2 in >xx"
378*28604916Sjruoho	atf_check -e ignore sort -c -t: -k8n xx
379*28604916Sjruoho
380*28604916Sjruoho	# XXX This test is broken.  The standard is not clear on the behavior.
381*28604916Sjruoho	#atf_check -x "sort -S -b -k2,2b -k2 in >xx"
382*28604916Sjruoho	#atf_check -e ignore sort -c -t: -k3n xx
383*28604916Sjruoho}
384*28604916Sjruoho
385*28604916Sjruohoatf_test_case kflag_no_end
386*28604916Sjruohokflag_no_end_head()
387*28604916Sjruoho{
388*28604916Sjruoho	atf_set "descr" "Tests the -k flag with a field without end"
389*28604916Sjruoho}
390*28604916Sjruohokflag_no_end_body()
391*28604916Sjruoho{
392*28604916Sjruoho	cat >in <<EOF
393*28604916Sjruohoa-B
394*28604916Sjruohoa+b
395*28604916Sjruohoa b
396*28604916SjruohoA+b
397*28604916Sjruohoa	b
398*28604916SjruohoEOF
399*28604916Sjruoho
400*28604916Sjruoho	cat >out <<EOF
401*28604916Sjruohoa	b
402*28604916Sjruohoa b
403*28604916SjruohoA+b
404*28604916Sjruohoa-B
405*28604916Sjruohoa+b
406*28604916SjruohoEOF
407*28604916Sjruoho
408*28604916Sjruoho	atf_check -o file:out sort -df -k 1 -k 1d <in
409*28604916Sjruoho}
410*28604916Sjruoho
411*28604916Sjruohoatf_test_case mflag
412*28604916Sjruohomflag_head()
413*28604916Sjruoho{
414*28604916Sjruoho	atf_set "descr" "Tests the -m flag"
415*28604916Sjruoho}
416*28604916Sjruohomflag_body()
417*28604916Sjruoho{
418*28604916Sjruoho	cat >in1 <<EOF
419*28604916Sjruohoa
420*28604916Sjruohoab
421*28604916Sjruohoab
422*28604916Sjruohobc
423*28604916Sjruohoca
424*28604916SjruohoEOF
425*28604916Sjruoho	cat >in2 <<EOF
426*28604916SjruohoZ
427*28604916Sjruohoa
428*28604916Sjruohoaa
429*28604916Sjruohoac
430*28604916Sjruohoc
431*28604916SjruohoEOF
432*28604916Sjruoho	cat >out <<EOF
433*28604916SjruohoZ
434*28604916Sjruohoa
435*28604916Sjruohoa
436*28604916Sjruohoaa
437*28604916Sjruohoab
438*28604916Sjruohoab
439*28604916Sjruohoac
440*28604916Sjruohobc
441*28604916Sjruohoc
442*28604916Sjruohoca
443*28604916SjruohoEOF
444*28604916Sjruoho
445*28604916Sjruoho	atf_check -o file:out sort -S -m in1 in2
446*28604916Sjruoho}
447*28604916Sjruoho
448*28604916Sjruohoatf_test_case mflag_uflag
449*28604916Sjruohomflag_uflag_head()
450*28604916Sjruoho{
451*28604916Sjruoho	atf_set "descr" "Tests the -m flag together with -u"
452*28604916Sjruoho}
453*28604916Sjruohomflag_uflag_body()
454*28604916Sjruoho{
455*28604916Sjruoho	cat >in <<EOF
456*28604916Sjruohoa
457*28604916Sjruohob
458*28604916Sjruohoc
459*28604916Sjruohod
460*28604916SjruohoEOF
461*28604916Sjruoho
462*28604916Sjruoho	atf_check -o file:in sort -m -u in
463*28604916Sjruoho}
464*28604916Sjruoho
465*28604916Sjruohoatf_test_case mflag_uflag_first
466*28604916Sjruohomflag_uflag_first_head()
467*28604916Sjruoho{
468*28604916Sjruoho	atf_set "descr" "Tests that the -m flag together with -u picks the" \
469*28604916Sjruoho	    "first among equal"
470*28604916Sjruoho}
471*28604916Sjruohomflag_uflag_first_body()
472*28604916Sjruoho{
473*28604916Sjruoho	cat >in <<EOF
474*28604916Sjruoho3B
475*28604916Sjruoho3b
476*28604916Sjruoho3B2
477*28604916Sjruoho~3B2
478*28604916Sjruoho4.1
479*28604916Sjruoho41
480*28604916Sjruoho5
481*28604916Sjruoho5.
482*28604916SjruohoEOF
483*28604916Sjruoho
484*28604916Sjruoho	cat >out <<EOF
485*28604916Sjruoho3B
486*28604916Sjruoho3B2
487*28604916Sjruoho4.1
488*28604916Sjruoho5
489*28604916SjruohoEOF
490*28604916Sjruoho
491*28604916Sjruoho	atf_check -o file:out sort -mudf in
492*28604916Sjruoho	atf_check -o file:out sort -mudf -k1 in
493*28604916Sjruoho}
494*28604916Sjruoho
495*28604916Sjruohoatf_test_case nflag
496*28604916Sjruohonflag_head()
497*28604916Sjruoho{
498*28604916Sjruoho	atf_set "descr" "Tests the -n flag"
499*28604916Sjruoho}
500*28604916Sjruohonflag_body()
501*28604916Sjruoho{
502*28604916Sjruoho	cat >in <<EOF
503*28604916Sjruoho-99.0
504*28604916Sjruoho-99.1
505*28604916Sjruoho-.0002
506*28604916Sjruoho-10
507*28604916Sjruoho2
508*28604916Sjruoho0010.000000000000000000000000000000000001
509*28604916Sjruoho10
510*28604916Sjruoho3x
511*28604916Sjruohox
512*28604916SjruohoEOF
513*28604916Sjruoho
514*28604916Sjruoho	cat >expout <<EOF
515*28604916Sjruoho-99.1
516*28604916Sjruoho-99.0
517*28604916Sjruoho-10
518*28604916Sjruoho-.0002
519*28604916Sjruohox
520*28604916Sjruoho2
521*28604916Sjruoho3x
522*28604916Sjruoho10
523*28604916Sjruoho0010.000000000000000000000000000000000001
524*28604916SjruohoEOF
525*28604916Sjruoho
526*28604916Sjruoho	atf_check -o file:expout sort -n in
527*28604916Sjruoho}
528*28604916Sjruoho
529*28604916Sjruohoatf_test_case nflag_rflag
530*28604916Sjruohonflag_rflag_head()
531*28604916Sjruoho{
532*28604916Sjruoho	atf_set "descr" "Tests the -n and -r flag combination"
533*28604916Sjruoho}
534*28604916Sjruohonflag_rflag_body()
535*28604916Sjruoho{
536*28604916Sjruoho	cat >in <<EOF
537*28604916Sjruoho1
538*28604916Sjruoho123
539*28604916Sjruoho2
540*28604916SjruohoEOF
541*28604916Sjruoho
542*28604916Sjruoho	cat >expout <<EOF
543*28604916Sjruoho123
544*28604916Sjruoho2
545*28604916Sjruoho1
546*28604916SjruohoEOF
547*28604916Sjruoho
548*28604916Sjruoho	atf_check -o file:expout sort -rn in
549*28604916Sjruoho}
550*28604916Sjruoho
551*28604916Sjruohoatf_test_case oflag
552*28604916Sjruohooflag_head()
553*28604916Sjruoho{
554*28604916Sjruoho	atf_set "descr" "Tests the -o flag"
555*28604916Sjruoho}
556*28604916Sjruohooflag_body()
557*28604916Sjruoho{
558*28604916Sjruoho	cat >in <<EOF
559*28604916Sjruoho1
560*28604916Sjruoho1
561*28604916Sjruoho2
562*28604916Sjruoho2
563*28604916Sjruoho3
564*28604916Sjruoho3
565*28604916Sjruoho4
566*28604916Sjruoho4
567*28604916SjruohoEOF
568*28604916Sjruoho
569*28604916Sjruoho	atf_check sort -u -o in in
570*28604916Sjruoho
571*28604916Sjruoho	cat >expout <<EOF
572*28604916Sjruoho1
573*28604916Sjruoho2
574*28604916Sjruoho3
575*28604916Sjruoho4
576*28604916SjruohoEOF
577*28604916Sjruoho
578*28604916Sjruoho	atf_check -o file:expout cat in
579*28604916Sjruoho}
580*28604916Sjruoho
581*28604916Sjruohoatf_test_case oflag_displaced
582*28604916Sjruohooflag_displaced_head()
583*28604916Sjruoho{
584*28604916Sjruoho	atf_set "descr" "Tests the -o flag after the file names"
585*28604916Sjruoho}
586*28604916Sjruohooflag_displaced_body()
587*28604916Sjruoho{
588*28604916Sjruoho	atf_check sort -S /dev/null -o out
589*28604916Sjruoho	test -f out || atf_fail "File not created"
590*28604916Sjruoho}
591*28604916Sjruoho
592*28604916Sjruohoatf_test_case rflag
593*28604916Sjruohorflag_head()
594*28604916Sjruoho{
595*28604916Sjruoho	atf_set "descr" "Tests the -r flag"
596*28604916Sjruoho}
597*28604916Sjruohorflag_body()
598*28604916Sjruoho{
599*28604916Sjruoho	cat >in <<EOF
600*28604916Sjruohoz b m f
601*28604916Sjruohoy c o e
602*28604916Sjruohox a n h
603*28604916Sjruohox a n g
604*28604916SjruohoEOF
605*28604916Sjruoho
606*28604916Sjruoho	cat >expout <<EOF
607*28604916Sjruohoz b m f
608*28604916Sjruohoy c o e
609*28604916Sjruohox a n h
610*28604916Sjruohox a n g
611*28604916SjruohoEOF
612*28604916Sjruoho
613*28604916Sjruoho	atf_check -o file:expout sort -r in
614*28604916Sjruoho}
615*28604916Sjruoho
616*28604916Sjruohoatf_test_case sflag
617*28604916Sjruohosflag_head()
618*28604916Sjruoho{
619*28604916Sjruoho	atf_set "descr" "Tests the -s flag"
620*28604916Sjruoho}
621*28604916Sjruohosflag_body()
622*28604916Sjruoho{
623*28604916Sjruoho	cat >in <<EOF
624*28604916Sjruohoa 2
625*28604916Sjruohob 1
626*28604916Sjruohoc 2
627*28604916Sjruohoa 1
628*28604916Sjruohob 2
629*28604916Sjruohoc 1
630*28604916SjruohoEOF
631*28604916Sjruoho
632*28604916Sjruoho	cat >out <<EOF
633*28604916Sjruohoa 2
634*28604916Sjruohoa 1
635*28604916Sjruohob 1
636*28604916Sjruohob 2
637*28604916Sjruohoc 2
638*28604916Sjruohoc 1
639*28604916SjruohoEOF
640*28604916Sjruoho
641*28604916Sjruoho	atf_check -o file:out sort -s -k1,1 in
642*28604916Sjruoho}
643*28604916Sjruoho
644*28604916Sjruohoatf_test_case sflag_many_files
645*28604916Sjruohosflag_many_files_head()
646*28604916Sjruoho{
647*28604916Sjruoho	atf_set "descr" "Tests the -s flag with multiple files"
648*28604916Sjruoho}
649*28604916Sjruohosflag_many_files_body()
650*28604916Sjruoho{
651*28604916Sjruoho	cat >in1 <<EOF
652*28604916Sjruohoc 2
653*28604916Sjruohoa 2
654*28604916SjruohoEOF
655*28604916Sjruoho
656*28604916Sjruoho	cat >in2 <<EOF
657*28604916Sjruohoc 1
658*28604916Sjruohob 1
659*28604916Sjruohoa 1
660*28604916SjruohoEOF
661*28604916Sjruoho
662*28604916Sjruoho	cat >out <<EOF
663*28604916Sjruohoc 2
664*28604916Sjruohob 1
665*28604916Sjruohoa 2
666*28604916SjruohoEOF
667*28604916Sjruoho
668*28604916Sjruoho	atf_check -o file:out sort -smru -k1,1 in1 in1 in2 in2
669*28604916Sjruoho}
670*28604916Sjruoho
671*28604916Sjruohoatf_test_case tflag
672*28604916Sjruohotflag_head()
673*28604916Sjruoho{
674*28604916Sjruoho	atf_set "descr" "Tests the -t flag"
675*28604916Sjruoho}
676*28604916Sjruohotflag_body()
677*28604916Sjruoho{
678*28604916Sjruoho	cat >in <<EOF
679*28604916Sjruohoa:
680*28604916Sjruohoa!
681*28604916SjruohoEOF
682*28604916Sjruoho
683*28604916Sjruoho	atf_check -o file:in sort -t : -r +0 in
684*28604916Sjruoho	atf_check -o file:in sort -t : +0 -1 in
685*28604916Sjruoho	atf_check -o file:in sort -t : -r -k 1 in
686*28604916Sjruoho	atf_check -o file:in sort -t : -k 1,1 in
687*28604916Sjruoho}
688*28604916Sjruoho
689*28604916Sjruohoatf_test_case tflag_alphabetic
690*28604916Sjruohotflag_alphabetic_head()
691*28604916Sjruoho{
692*28604916Sjruoho	atf_set "descr" "Tests the -t flag with a character as the delimiter"
693*28604916Sjruoho}
694*28604916Sjruohotflag_alphabetic_body()
695*28604916Sjruoho{
696*28604916Sjruoho	cat >in <<EOF
697*28604916SjruohozXa
698*28604916SjruohoyXa
699*28604916SjruohozXb
700*28604916SjruohoEOF
701*28604916Sjruoho
702*28604916Sjruoho	atf_check -o file:in sort -tX -k2 -k1r,1 in
703*28604916Sjruoho}
704*28604916Sjruoho
705*28604916Sjruohoatf_test_case tflag_char_pos
706*28604916Sjruohotflag_char_pos_head()
707*28604916Sjruoho{
708*28604916Sjruoho	atf_set "descr" "Tests the -t flag with character positions in fields"
709*28604916Sjruoho}
710*28604916Sjruohotflag_char_pos_body()
711*28604916Sjruoho{
712*28604916Sjruoho	cat >in <<EOF
713*28604916Sjruoho: ab
714*28604916Sjruoho:bac
715*28604916SjruohoEOF
716*28604916Sjruoho
717*28604916Sjruoho	cat >out <<EOF
718*28604916Sjruoho:bac
719*28604916Sjruoho: ab
720*28604916SjruohoEOF
721*28604916Sjruoho
722*28604916Sjruoho	atf_check -o file:out sort -b -t: +1.1 in
723*28604916Sjruoho	atf_check -o file:out sort -t: +1.1r in
724*28604916Sjruoho	atf_check -o file:out sort -b -t: -k 2.2 in
725*28604916Sjruoho	atf_check -o file:out sort -t: -k 2.2r in
726*28604916Sjruoho}
727*28604916Sjruoho
728*28604916Sjruohoatf_test_case tflag_whitespace
729*28604916Sjruohotflag_whitespace_head()
730*28604916Sjruoho{
731*28604916Sjruoho	atf_set "descr" "Tests the -t flag with spaces and tabs as the" \
732*28604916Sjruoho	    "delimiter"
733*28604916Sjruoho}
734*28604916Sjruohotflag_whitespace_body()
735*28604916Sjruoho{
736*28604916Sjruoho	cat >in <<EOF
737*28604916Sjruoho b c
738*28604916Sjruoho b	c
739*28604916Sjruoho	b c
740*28604916SjruohoEOF
741*28604916Sjruoho
742*28604916Sjruoho	atf_check -o file:in sort -t ' ' -k2,2 in
743*28604916Sjruoho	atf_check -o file:in sort -t ' ' -k2.1,2.0 in
744*28604916Sjruoho
745*28604916Sjruoho	cat >out <<EOF
746*28604916Sjruoho b c
747*28604916Sjruoho	b c
748*28604916Sjruoho b	c
749*28604916SjruohoEOF
750*28604916Sjruoho
751*28604916Sjruoho	atf_check -o file:out sort -t '	' -k2,2 in
752*28604916Sjruoho	atf_check -o file:out sort -t '	' -k2.1,2.0 in
753*28604916Sjruoho
754*28604916Sjruoho	cat >out <<EOF
755*28604916Sjruoho b	c
756*28604916Sjruoho	b c
757*28604916Sjruoho b c
758*28604916SjruohoEOF
759*28604916Sjruoho
760*28604916Sjruoho	atf_check -o file:out sort -S -k2 in
761*28604916Sjruoho
762*28604916Sjruoho	cat >out <<EOF
763*28604916Sjruoho	b c
764*28604916Sjruoho b	c
765*28604916Sjruoho b c
766*28604916SjruohoEOF
767*28604916Sjruoho
768*28604916Sjruoho	atf_check -o file:out sort -S -k2b in
769*28604916Sjruoho}
770*28604916Sjruoho
771*28604916Sjruohoatf_test_case uflag
772*28604916Sjruohouflag_head()
773*28604916Sjruoho{
774*28604916Sjruoho	atf_set "descr" "Tests the -u flag"
775*28604916Sjruoho}
776*28604916Sjruohouflag_body()
777*28604916Sjruoho{
778*28604916Sjruoho	cat >in <<EOF
779*28604916Sjruohoa
780*28604916Sjruohoaa
781*28604916Sjruohoaaa
782*28604916Sjruohoaa
783*28604916SjruohoEOF
784*28604916Sjruoho
785*28604916Sjruoho	cat >expout <<EOF
786*28604916Sjruohoa
787*28604916Sjruohoaa
788*28604916Sjruohoaaa
789*28604916SjruohoEOF
790*28604916Sjruoho
791*28604916Sjruoho	atf_check -o file:expout sort -u in
792*28604916Sjruoho}
793*28604916Sjruoho
794*28604916Sjruohoatf_test_case uflag_rflag
795*28604916Sjruohouflag_rflag_head()
796*28604916Sjruoho{
797*28604916Sjruoho	atf_set "descr" "Tests the -u and -r flag combination"
798*28604916Sjruoho}
799*28604916Sjruohouflag_rflag_body()
800*28604916Sjruoho{
801*28604916Sjruoho	cat >in <<EOF
802*28604916Sjruohoa
803*28604916Sjruohoaa
804*28604916Sjruohoaaa
805*28604916Sjruohoaa
806*28604916SjruohoEOF
807*28604916Sjruoho
808*28604916Sjruoho	cat >expout <<EOF
809*28604916Sjruohoaaa
810*28604916Sjruohoaa
811*28604916Sjruohoa
812*28604916SjruohoEOF
813*28604916Sjruoho
814*28604916Sjruoho	atf_check -o file:expout sort -ru in
815*28604916Sjruoho}
816*28604916Sjruoho
817*28604916Sjruohoatf_test_case plus_one
818*28604916Sjruohoplus_one_head()
819*28604916Sjruoho{
820*28604916Sjruoho	atf_set "descr" "Tests +- addressing: +1 should become -k2.1"
821*28604916Sjruoho}
822*28604916Sjruohoplus_one_body()
823*28604916Sjruoho{
824*28604916Sjruoho	cat >in <<EOF
825*28604916Sjruohoz b m f
826*28604916Sjruohoy c o e
827*28604916Sjruohox a n h
828*28604916Sjruohox a n g
829*28604916SjruohoEOF
830*28604916Sjruoho
831*28604916Sjruoho	cat >expout <<EOF
832*28604916Sjruohox a n g
833*28604916Sjruohox a n h
834*28604916Sjruohoz b m f
835*28604916Sjruohoy c o e
836*28604916SjruohoEOF
837*28604916Sjruoho
838*28604916Sjruoho	atf_check -o file:expout sort +1 in
839*28604916Sjruoho}
840*28604916Sjruoho
841*28604916Sjruohoatf_test_case plus_one_minus_two
842*28604916Sjruohoplus_one_minus_two_head()
843*28604916Sjruoho{
844*28604916Sjruoho	atf_set "descr" "Tests +- addressing: +1 -2 should become -k2.1,2.0"
845*28604916Sjruoho}
846*28604916Sjruohoplus_one_minus_two_body()
847*28604916Sjruoho{
848*28604916Sjruoho	cat >in <<EOF
849*28604916Sjruohoz b m f
850*28604916Sjruohoy c o e
851*28604916Sjruohox a n h
852*28604916Sjruohox a n g
853*28604916SjruohoEOF
854*28604916Sjruoho
855*28604916Sjruoho	cat >expout <<EOF
856*28604916Sjruohox a n h
857*28604916Sjruohox a n g
858*28604916Sjruohoz b m f
859*28604916Sjruohoy c o e
860*28604916SjruohoEOF
861*28604916Sjruoho
862*28604916Sjruoho	atf_check -o file:expout sort +1 -2 in
863*28604916Sjruoho}
864*28604916Sjruoho
865*28604916Sjruohoatf_test_case plus_zero
866*28604916Sjruohoplus_zero_head()
867*28604916Sjruoho{
868*28604916Sjruoho	atf_set "descr" "Tests +- addressing: '-- +0' raised a '-k1.1: No" \
869*28604916Sjruoho	    "such file or directory' error"
870*28604916Sjruoho}
871*28604916Sjruohoplus_zero_body()
872*28604916Sjruoho{
873*28604916Sjruoho	echo 'good contents' >./+0
874*28604916Sjruoho
875*28604916Sjruoho	atf_check -o file:+0 sort -- +0
876*28604916Sjruoho}
877*28604916Sjruoho
878*28604916Sjruohoatf_test_case plus_nonmonotone
879*28604916Sjruohoplus_nonmonotone_head()
880*28604916Sjruoho{
881*28604916Sjruoho	atf_set "descr" "Tests += addressing: apparently nonmonotone field" \
882*28604916Sjruoho	    "specs"
883*28604916Sjruoho}
884*28604916Sjruohoplus_nonmonotone_body()
885*28604916Sjruoho{
886*28604916Sjruoho	cat >in <<EOF
887*28604916Sjruohoaaaa c
888*28604916Sjruohox a
889*28604916Sjruoho0 b
890*28604916SjruohoEOF
891*28604916Sjruoho
892*28604916Sjruoho	atf_check -o file:in sort +1 -0.3 +1.4 -1.5 in
893*28604916Sjruoho}
894*28604916Sjruoho
895*28604916Sjruohoatf_test_case plus_as_path
896*28604916Sjruohoplus_as_path_head()
897*28604916Sjruoho{
898*28604916Sjruoho	atf_set "descr" "Tests +- addressing: 'file +0' raised a '-k1.1: No" \
899*28604916Sjruoho	    "such file or directory' error"
900*28604916Sjruoho}
901*28604916Sjruohoplus_as_path_body()
902*28604916Sjruoho{
903*28604916Sjruoho	echo 'good contents' >./+0
904*28604916Sjruoho	echo 'more contents' >in
905*28604916Sjruoho	cat ./+0 in >expout
906*28604916Sjruoho
907*28604916Sjruoho	atf_check -o file:expout sort in +0
908*28604916Sjruoho}
909*28604916Sjruoho
910*28604916Sjruohoatf_test_case plus_bad_tempfile
911*28604916Sjruohoplus_bad_tempfile_head()
912*28604916Sjruoho{
913*28604916Sjruoho	atf_set "descr" "Tests +- addressing: intermediate wrong behavior" \
914*28604916Sjruoho	    "that raised a '+0: No such file or directory' error"
915*28604916Sjruoho}
916*28604916Sjruohoplus_bad_tempfile_body()
917*28604916Sjruoho{
918*28604916Sjruoho	echo 'good contents' >in
919*28604916Sjruoho	atf_check -o file:in sort -T /tmp +0 in
920*28604916Sjruoho}
921*28604916Sjruoho
922*28604916Sjruohoatf_test_case plus_rflag_invalid
923*28604916Sjruohoplus_rflag_invalid_head()
924*28604916Sjruoho{
925*28604916Sjruoho	atf_set "descr" "Tests +- addressing: invalid record delimiter"
926*28604916Sjruoho}
927*28604916Sjruohoplus_rflag_invalid_body()
928*28604916Sjruoho{
929*28604916Sjruoho	(
930*28604916Sjruoho	    echo 'z b m f'
931*28604916Sjruoho	    echo 'y c o e'
932*28604916Sjruoho	    echo 'x a n h'
933*28604916Sjruoho	    echo 'x a n g'
934*28604916Sjruoho	) | tr '\n' '+' >in
935*28604916Sjruoho
936*28604916Sjruoho	atf_check -o inline:'x a n g+x a n h+z b m f+y c o e+' \
937*28604916Sjruoho	    sort -R + -k2 in
938*28604916Sjruoho}
939*28604916Sjruoho
940*28604916Sjruohoatf_test_case plus_tflag
941*28604916Sjruohoplus_tflag_head()
942*28604916Sjruoho{
943*28604916Sjruoho	atf_set "descr" "Tests +- addressing: using -T caused a 'No such file" \
944*28604916Sjruoho	    "or directory' error"
945*28604916Sjruoho}
946*28604916Sjruohoplus_tflag_body()
947*28604916Sjruoho{
948*28604916Sjruoho	mkdir ./+
949*28604916Sjruoho	yes | sed 200000q | sort -T + >/dev/null || atf_fail "program failed"
950*28604916Sjruoho}
951*28604916Sjruoho
952*28604916Sjruohoatf_test_case plus_no_end
953*28604916Sjruohoplus_no_end_head()
954*28604916Sjruoho{
955*28604916Sjruoho	atf_set "descr" "Tests +- addressing: field without end"
956*28604916Sjruoho}
957*28604916Sjruohoplus_no_end_body()
958*28604916Sjruoho{
959*28604916Sjruoho	cat >in <<EOF
960*28604916Sjruohoa-B
961*28604916Sjruohoa+b
962*28604916Sjruohoa b
963*28604916SjruohoA+b
964*28604916Sjruohoa	b
965*28604916SjruohoEOF
966*28604916Sjruoho
967*28604916Sjruoho	cat >out <<EOF
968*28604916Sjruohoa	b
969*28604916Sjruohoa b
970*28604916SjruohoA+b
971*28604916Sjruohoa-B
972*28604916Sjruohoa+b
973*28604916SjruohoEOF
974*28604916Sjruoho
975*28604916Sjruoho	atf_check -o file:out sort -df +0 +0d in
976*28604916Sjruoho}
977*28604916Sjruoho
978*28604916Sjruohoatf_init_test_cases()
979*28604916Sjruoho{
980*28604916Sjruoho	atf_add_test_case basic
981*28604916Sjruoho	atf_add_test_case empty_file
982*28604916Sjruoho	atf_add_test_case end_of_options
983*28604916Sjruoho	atf_add_test_case missing_newline
984*28604916Sjruoho	atf_add_test_case null_bytes
985*28604916Sjruoho	atf_add_test_case long_records
986*28604916Sjruoho	atf_add_test_case long_file
987*28604916Sjruoho	atf_add_test_case any_char
988*28604916Sjruoho	atf_add_test_case bflag
989*28604916Sjruoho	atf_add_test_case cflag
990*28604916Sjruoho	atf_add_test_case kflag_one_field
991*28604916Sjruoho	atf_add_test_case kflag_two_fields
992*28604916Sjruoho	atf_add_test_case kflag_many_fields
993*28604916Sjruoho	atf_add_test_case kflag_outofbounds
994*28604916Sjruoho	atf_add_test_case kflag_nonmonotone
995*28604916Sjruoho	atf_add_test_case kflag_limits
996*28604916Sjruoho	atf_add_test_case kflag_alpha
997*28604916Sjruoho	atf_add_test_case kflag_no_end
998*28604916Sjruoho	atf_add_test_case mflag
999*28604916Sjruoho	atf_add_test_case mflag_uflag
1000*28604916Sjruoho	atf_add_test_case mflag_uflag_first
1001*28604916Sjruoho	atf_add_test_case nflag
1002*28604916Sjruoho	atf_add_test_case nflag_rflag
1003*28604916Sjruoho	atf_add_test_case oflag
1004*28604916Sjruoho	atf_add_test_case oflag_displaced
1005*28604916Sjruoho	atf_add_test_case rflag
1006*28604916Sjruoho	atf_add_test_case sflag
1007*28604916Sjruoho	atf_add_test_case sflag_many_files
1008*28604916Sjruoho	atf_add_test_case tflag
1009*28604916Sjruoho	atf_add_test_case tflag_alphabetic
1010*28604916Sjruoho	atf_add_test_case tflag_char_pos
1011*28604916Sjruoho	atf_add_test_case tflag_whitespace
1012*28604916Sjruoho	atf_add_test_case uflag
1013*28604916Sjruoho	atf_add_test_case uflag_rflag
1014*28604916Sjruoho	atf_add_test_case plus_one
1015*28604916Sjruoho	atf_add_test_case plus_one_minus_two
1016*28604916Sjruoho	atf_add_test_case plus_zero
1017*28604916Sjruoho	atf_add_test_case plus_nonmonotone
1018*28604916Sjruoho	atf_add_test_case plus_as_path
1019*28604916Sjruoho	atf_add_test_case plus_bad_tempfile
1020*28604916Sjruoho	atf_add_test_case plus_rflag_invalid
1021*28604916Sjruoho	atf_add_test_case plus_tflag
1022*28604916Sjruoho	atf_add_test_case plus_no_end
1023*28604916Sjruoho}
1024