157718be8SEnji Cooper# $NetBSD: t_sort.sh,v 1.1 2012/03/17 16:33:15 jruoho Exp $ 257718be8SEnji Cooper# 357718be8SEnji Cooper# Copyright (c) 2008, 2009, 2010 The NetBSD Foundation, Inc. 457718be8SEnji Cooper# All rights reserved. 557718be8SEnji Cooper# 657718be8SEnji Cooper# Redistribution and use in source and binary forms, with or without 757718be8SEnji Cooper# modification, are permitted provided that the following conditions 857718be8SEnji Cooper# are met: 957718be8SEnji Cooper# 1. Redistributions of source code must retain the above copyright 1057718be8SEnji Cooper# notice, this list of conditions and the following disclaimer. 1157718be8SEnji Cooper# 2. Redistributions in binary form must reproduce the above copyright 1257718be8SEnji Cooper# notice, this list of conditions and the following disclaimer in the 1357718be8SEnji Cooper# documentation and/or other materials provided with the distribution. 1457718be8SEnji Cooper# 1557718be8SEnji Cooper# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 1657718be8SEnji Cooper# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 1757718be8SEnji Cooper# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1857718be8SEnji Cooper# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 1957718be8SEnji Cooper# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2057718be8SEnji Cooper# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2157718be8SEnji Cooper# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2257718be8SEnji Cooper# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2357718be8SEnji Cooper# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2457718be8SEnji Cooper# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2557718be8SEnji Cooper# POSSIBILITY OF SUCH DAMAGE. 2657718be8SEnji Cooper# 2757718be8SEnji Cooper 28*f9e565abSCyril Zhang# The -S flag in NetBSD sort enables non-stable sorting order. This flag 29*f9e565abSCyril Zhang# doesn't exist in FreeBSD sort, and instead indicates buffer size, so all 30*f9e565abSCyril Zhang# instances of this flag should be removed. 31*f9e565abSCyril Zhang# 32*f9e565abSCyril Zhang# For tests that expect exact output, but where some lines may compare 33*f9e565abSCyril Zhang# the same, the flag -s should be added to enforce an expected sorting order. 34*f9e565abSCyril Zhang 3557718be8SEnji Cooperatf_test_case basic 3657718be8SEnji Cooperbasic_head() 3757718be8SEnji Cooper{ 3857718be8SEnji Cooper atf_set "descr" "Basic functionality test" 3957718be8SEnji Cooper} 4057718be8SEnji Cooperbasic_body() 4157718be8SEnji Cooper{ 4257718be8SEnji Cooper cat >in <<EOF 4357718be8SEnji Cooperz b m f 4457718be8SEnji Coopery c o e 4557718be8SEnji Cooperx a n h 4657718be8SEnji Cooperx a n g 4757718be8SEnji CooperEOF 4857718be8SEnji Cooper 4957718be8SEnji Cooper cat >expout <<EOF 5057718be8SEnji Cooperx a n g 5157718be8SEnji Cooperx a n h 5257718be8SEnji Coopery c o e 5357718be8SEnji Cooperz b m f 5457718be8SEnji CooperEOF 5557718be8SEnji Cooper 5657718be8SEnji Cooper atf_check -o file:expout sort in 5757718be8SEnji Cooper} 5857718be8SEnji Cooper 5957718be8SEnji Cooperatf_test_case empty_file 6057718be8SEnji Cooperempty_file_head() 6157718be8SEnji Cooper{ 6257718be8SEnji Cooper atf_set "descr" "Tests sorting an empty file" 6357718be8SEnji Cooper} 6457718be8SEnji Cooperempty_file_body() 6557718be8SEnji Cooper{ 6657718be8SEnji Cooper touch empty 67*f9e565abSCyril Zhang atf_check -o empty sort empty 68*f9e565abSCyril Zhang atf_check sort -c empty 69*f9e565abSCyril Zhang atf_check sort -c -u empty 7057718be8SEnji Cooper} 7157718be8SEnji Cooper 7257718be8SEnji Cooperatf_test_case end_of_options 7357718be8SEnji Cooperend_of_options_head() 7457718be8SEnji Cooper{ 7557718be8SEnji Cooper atf_set "descr" "Determination of end of option list" 7657718be8SEnji Cooper} 7757718be8SEnji Cooperend_of_options_body() 7857718be8SEnji Cooper{ 7957718be8SEnji Cooper echo x >-k 80*f9e565abSCyril Zhang atf_check -o file:-k -x "sort -- -k </dev/null" 81*f9e565abSCyril Zhang atf_check -s not-exit:1 -e ignore -x "sort - -c </dev/null" 8257718be8SEnji Cooper} 8357718be8SEnji Cooper 8457718be8SEnji Cooperatf_test_case missing_newline 8557718be8SEnji Coopermissing_newline_head() 8657718be8SEnji Cooper{ 8757718be8SEnji Cooper atf_set "descr" "Tests with missing new line in input file" 8857718be8SEnji Cooper} 8957718be8SEnji Coopermissing_newline_body() 9057718be8SEnji Cooper{ 9157718be8SEnji Cooper printf '%s' x >in 9257718be8SEnji Cooper atf_check -o inline:'x\n' sort in 9357718be8SEnji Cooper} 9457718be8SEnji Cooper 9557718be8SEnji Cooperatf_test_case null_bytes 9657718be8SEnji Coopernull_bytes_head() 9757718be8SEnji Cooper{ 9857718be8SEnji Cooper atf_set "descr" "Tests the behavior of null bytes" 9957718be8SEnji Cooper} 10057718be8SEnji Coopernull_bytes_body() 10157718be8SEnji Cooper{ 10257718be8SEnji Cooper printf '\0b\n\0a\n' >in 103*f9e565abSCyril Zhang atf_check -o inline:'\0a\n\0b\n' sort in 10457718be8SEnji Cooper} 10557718be8SEnji Cooper 10657718be8SEnji Cooperatf_test_case long_records 10757718be8SEnji Cooperlong_records_head() 10857718be8SEnji Cooper{ 10957718be8SEnji Cooper atf_set "descr" "Tests long lines and keys" 11057718be8SEnji Cooper} 11157718be8SEnji Cooperlong_records_body() 11257718be8SEnji Cooper{ 11357718be8SEnji Cooper awk 'BEGIN { x="x" 11457718be8SEnji Cooper for(i=1; i<=12; i++) x = x x 11557718be8SEnji Cooper for(i=15; i<=25; i++) print x i 11657718be8SEnji Cooper}' >in 11757718be8SEnji Cooper 11857718be8SEnji Cooper awk 'BEGIN { x="x" 11957718be8SEnji Cooper for(i=1; i<=12; i++) x = x x 12057718be8SEnji Cooper for(i=25; i>=15; i--) print x i 12157718be8SEnji Cooper}' >out 12257718be8SEnji Cooper 12357718be8SEnji Cooper atf_check -o file:out sort -r in 12457718be8SEnji Cooper atf_check -o file:out sort -k 1,1r -k 1 in 12557718be8SEnji Cooper} 12657718be8SEnji Cooper 12757718be8SEnji Cooperatf_test_case long_file 12857718be8SEnji Cooperlong_file_head() 12957718be8SEnji Cooper{ 13057718be8SEnji Cooper atf_set "descr" "Tests with a long file to try to force intermediate" \ 13157718be8SEnji Cooper "files" 13257718be8SEnji Cooper} 13357718be8SEnji Cooperlong_file_body() 13457718be8SEnji Cooper{ 13557718be8SEnji Cooper awk 'BEGIN { for(i=0; i<20000; i++) print rand() }' >in 136*f9e565abSCyril Zhang sort -r in | awk '$0 "x" != x { print ; x = $0 "x" }' >out 13757718be8SEnji Cooper atf_check -o file:out sort -u -r in 13857718be8SEnji Cooper} 13957718be8SEnji Cooper 14057718be8SEnji Cooperatf_test_case any_char 14157718be8SEnji Cooperany_char_head() 14257718be8SEnji Cooper{ 14357718be8SEnji Cooper atf_set "descr" "Tests with files containing non-printable/extended" \ 14457718be8SEnji Cooper "characters" 14557718be8SEnji Cooper} 14657718be8SEnji Cooperany_char_body() 14757718be8SEnji Cooper{ 14857718be8SEnji Cooper atf_check -o file:$(atf_get_srcdir)/d_any_char_dflag_out.txt \ 14957718be8SEnji Cooper sort -d -k 2 $(atf_get_srcdir)/d_any_char_in.txt 15057718be8SEnji Cooper 15157718be8SEnji Cooper atf_check -o file:$(atf_get_srcdir)/d_any_char_fflag_out.txt \ 15257718be8SEnji Cooper sort -f -k 2 $(atf_get_srcdir)/d_any_char_in.txt 15357718be8SEnji Cooper 15457718be8SEnji Cooper atf_check -o file:$(atf_get_srcdir)/d_any_char_iflag_out.txt \ 15557718be8SEnji Cooper sort -i -k 2 $(atf_get_srcdir)/d_any_char_in.txt 15657718be8SEnji Cooper} 15757718be8SEnji Cooper 15857718be8SEnji Cooperatf_test_case bflag 15957718be8SEnji Cooperbflag_head() 16057718be8SEnji Cooper{ 16157718be8SEnji Cooper atf_set "descr" "Tests the -b flag" 16257718be8SEnji Cooper} 16357718be8SEnji Cooperbflag_body() 16457718be8SEnji Cooper{ 165*f9e565abSCyril Zhang atf_expect_fail "Behavior differs from NetBSD" 16657718be8SEnji Cooper cat >in <<EOF 16757718be8SEnji Cooper b 16857718be8SEnji Cooper a 16957718be8SEnji CooperEOF 17057718be8SEnji Cooper 17157718be8SEnji Cooper atf_check -o file:in sort -b in 17257718be8SEnji Cooper atf_check -o file:in -x "sort -b <in" 17357718be8SEnji Cooper atf_check -s exit:1 -o ignore -e ignore -x "sort in | sort -c -r" 17457718be8SEnji Cooper} 17557718be8SEnji Cooper 17657718be8SEnji Cooperatf_test_case cflag 17757718be8SEnji Coopercflag_head() 17857718be8SEnji Cooper{ 17957718be8SEnji Cooper atf_set "descr" "Tests the -c flag" 18057718be8SEnji Cooper} 18157718be8SEnji Coopercflag_body() 18257718be8SEnji Cooper{ 18357718be8SEnji Cooper cat >in <<EOF 18457718be8SEnji Cooperb 18557718be8SEnji Coopera 18657718be8SEnji CooperEOF 18757718be8SEnji Cooper 188*f9e565abSCyril Zhang atf_check -s exit:1 -e ignore sort -c in 18957718be8SEnji Cooper} 19057718be8SEnji Cooper 19157718be8SEnji Cooperatf_test_case kflag_one_field 19257718be8SEnji Cooperkflag_one_field_head() 19357718be8SEnji Cooper{ 19457718be8SEnji Cooper atf_set "descr" "Tests the -k flag with one field" 19557718be8SEnji Cooper} 19657718be8SEnji Cooperkflag_one_field_body() 19757718be8SEnji Cooper{ 19857718be8SEnji Cooper cat >in <<EOF 19957718be8SEnji Cooperz b m f 20057718be8SEnji Coopery c o e 20157718be8SEnji Cooperx a n h 20257718be8SEnji Cooperx a n g 20357718be8SEnji CooperEOF 20457718be8SEnji Cooper 20557718be8SEnji Cooper cat >expout <<EOF 20657718be8SEnji Cooperx a n g 20757718be8SEnji Cooperx a n h 20857718be8SEnji Cooperz b m f 20957718be8SEnji Coopery c o e 21057718be8SEnji CooperEOF 21157718be8SEnji Cooper 21257718be8SEnji Cooper atf_check -o file:expout sort -k2.1 in 21357718be8SEnji Cooper} 21457718be8SEnji Cooper 21557718be8SEnji Cooperatf_test_case kflag_two_fields 21657718be8SEnji Cooperkflag_two_fields_head() 21757718be8SEnji Cooper{ 21857718be8SEnji Cooper atf_set "descr" "Tests the -k flag with two fields" 21957718be8SEnji Cooper} 22057718be8SEnji Cooperkflag_two_fields_body() 22157718be8SEnji Cooper{ 22257718be8SEnji Cooper cat >in <<EOF 22357718be8SEnji Cooperz b m f 22457718be8SEnji Coopery c o e 22557718be8SEnji Cooperx a n h 22657718be8SEnji Cooperx a n g 22757718be8SEnji CooperEOF 22857718be8SEnji Cooper 22957718be8SEnji Cooper cat >expout <<EOF 23057718be8SEnji Cooperx a n h 23157718be8SEnji Cooperx a n g 23257718be8SEnji Cooperz b m f 23357718be8SEnji Coopery c o e 23457718be8SEnji CooperEOF 235*f9e565abSCyril Zhang atf_check -o file:expout sort -s -k2.1,2.0 in 23657718be8SEnji Cooper} 23757718be8SEnji Cooper 23857718be8SEnji Cooperatf_test_case kflag_many_fields 23957718be8SEnji Cooperkflag_many_fields_head() 24057718be8SEnji Cooper{ 24157718be8SEnji Cooper atf_set "descr" "Tests the -k flag with many fields" 24257718be8SEnji Cooper} 24357718be8SEnji Cooperkflag_many_fields_body() 24457718be8SEnji Cooper{ 24557718be8SEnji Cooper cat >in <<EOF 24657718be8SEnji Cooper0:2:3:4:5:6:7:8:9 24757718be8SEnji Cooper1:1:3:4:5:6:7:8:9 24857718be8SEnji Cooper1:2:2:4:5:6:7:8:9 24957718be8SEnji Cooper1:2:3:3:5:6:7:8:9 25057718be8SEnji Cooper1:2:3:4:4:6:7:8:9 25157718be8SEnji Cooper1:2:3:4:5:5:7:8:9 25257718be8SEnji Cooper1:2:3:4:5:6:6:8:9 25357718be8SEnji Cooper1:2:3:4:5:6:7:7:9 25457718be8SEnji Cooper1:2:3:4:5:6:7:8:8 25557718be8SEnji CooperEOF 25657718be8SEnji Cooper 25757718be8SEnji Cooper cat >out <<EOF 25857718be8SEnji Cooper1:2:3:4:5:6:7:8:8 25957718be8SEnji Cooper1:2:3:4:5:6:7:7:9 26057718be8SEnji Cooper1:2:3:4:5:6:6:8:9 26157718be8SEnji Cooper1:2:3:4:5:5:7:8:9 26257718be8SEnji Cooper1:2:3:4:4:6:7:8:9 26357718be8SEnji Cooper1:2:3:3:5:6:7:8:9 26457718be8SEnji Cooper1:2:2:4:5:6:7:8:9 26557718be8SEnji Cooper1:1:3:4:5:6:7:8:9 26657718be8SEnji Cooper0:2:3:4:5:6:7:8:9 26757718be8SEnji CooperEOF 26857718be8SEnji Cooper 26957718be8SEnji Cooper atf_check -o file:out sort -t: -k9 -k8 -k7 -k6 -k5 -k4 -k3 \ 27057718be8SEnji Cooper -k2 -k1 in 27157718be8SEnji Cooper} 27257718be8SEnji Cooper 27357718be8SEnji Cooperatf_test_case kflag_outofbounds 27457718be8SEnji Cooperkflag_outofbounds_head() 27557718be8SEnji Cooper{ 27657718be8SEnji Cooper atf_set "descr" "Tests the -k flag with out of bounds fields" 27757718be8SEnji Cooper} 27857718be8SEnji Cooperkflag_outofbounds_body() 27957718be8SEnji Cooper{ 28057718be8SEnji Cooper cat >in <<EOF 28157718be8SEnji Cooper0 5 28257718be8SEnji Cooper1 4 28357718be8SEnji Cooper2 3 28457718be8SEnji Cooper3 2 28557718be8SEnji Cooper4 1 28657718be8SEnji Cooper5 0 28757718be8SEnji CooperEOF 28857718be8SEnji Cooper 28957718be8SEnji Cooper atf_check -o file:in sort -k2.2,2.1 -k2.3,2.4 in 29057718be8SEnji Cooper} 29157718be8SEnji Cooper 29257718be8SEnji Cooperatf_test_case kflag_nonmonotone 29357718be8SEnji Cooperkflag_nonmonotone_head() 29457718be8SEnji Cooper{ 29557718be8SEnji Cooper atf_set "descr" "Tests the -k flag with apparently nonmonotone" \ 29657718be8SEnji Cooper "field specs" 29757718be8SEnji Cooper} 29857718be8SEnji Cooperkflag_nonmonotone_body() 29957718be8SEnji Cooper{ 30057718be8SEnji Cooper cat >in <<EOF 30157718be8SEnji Cooperaaaa c 30257718be8SEnji Cooperx a 30357718be8SEnji Cooper0 b 30457718be8SEnji CooperEOF 30557718be8SEnji Cooper 30657718be8SEnji Cooper atf_check -o file:in sort -k2,1.3 -k2.5,2.5 in 30757718be8SEnji Cooper} 30857718be8SEnji Cooper 30957718be8SEnji Cooperatf_test_case kflag_limits 31057718be8SEnji Cooperkflag_limits_head() 31157718be8SEnji Cooper{ 31257718be8SEnji Cooper atf_set "descr" "Tests the -k flag field limits" 31357718be8SEnji Cooper} 31457718be8SEnji Cooperkflag_limits_body() 31557718be8SEnji Cooper{ 31657718be8SEnji Cooper cat >in <<EOF 31757718be8SEnji Coopera 2 31857718be8SEnji Coopera 1 31957718be8SEnji Cooperb 2 32057718be8SEnji Cooperb 1 32157718be8SEnji CooperEOF 32257718be8SEnji Cooper 32357718be8SEnji Cooper cat >out <<EOF 32457718be8SEnji Cooperb 2 32557718be8SEnji Cooperb 1 32657718be8SEnji Coopera 2 32757718be8SEnji Coopera 1 32857718be8SEnji CooperEOF 32957718be8SEnji Cooper 330*f9e565abSCyril Zhang # On FreeBSD, key options override global options, 331*f9e565abSCyril Zhang # so r is required as an option for the second key. 332*f9e565abSCyril Zhang atf_check -o file:out sort -r -k1,1 -k2nr in 33357718be8SEnji Cooper} 33457718be8SEnji Cooper 33557718be8SEnji Cooperatf_test_case kflag_alpha 33657718be8SEnji Cooperkflag_alpha_head() 33757718be8SEnji Cooper{ 33857718be8SEnji Cooper atf_set "descr" "Tests the -k flag with various alpha fields" 33957718be8SEnji Cooper} 34057718be8SEnji Cooperkflag_alpha_body() 34157718be8SEnji Cooper{ 34257718be8SEnji Cooper sort >in <<EOF 34357718be8SEnji Cooper01:04:19:01:16:01:21:01 a 34457718be8SEnji Cooper02:03:13:15:13:19:15:02 a 34557718be8SEnji Cooper03:02:07:09:07:13:09:03 a 34657718be8SEnji Cooper04:01:01:03:01:07:03:04 a 34757718be8SEnji Cooper05:08:20:16:17:02:20:05 aa 34857718be8SEnji Cooper06:07:14:18:14:20:14:06 aa 34957718be8SEnji Cooper07:06:08:10:08:14:08:07 aa 35057718be8SEnji Cooper08:05:02:04:02:08:02:08 aa 35157718be8SEnji Cooper09:16:22:02:22:04:24:13 b 35257718be8SEnji Cooper10:15:16:20:19:22:18:14 b 35357718be8SEnji Cooper11:14:10:12:10:16:12:15 b 35457718be8SEnji Cooper12:13:04:06:04:10:06:16 b 35557718be8SEnji Cooper13:24:24:22:24:06:22:21 bb 35657718be8SEnji Cooper14:23:18:24:21:24:16:22 bb 35757718be8SEnji Cooper15:22:12:14:12:18:10:23 bb 35857718be8SEnji Cooper16:21:06:08:06:12:04:24 bb 35957718be8SEnji Cooper17:12:21:21:18:03:19:09 ab 36057718be8SEnji Cooper18:11:15:19:15:21:13:10 ab 36157718be8SEnji Cooper19:10:09:11:09:15:07:11 ab 36257718be8SEnji Cooper20:09:03:05:03:09:01:12 ab 36357718be8SEnji Cooper21:20:23:17:23:05:23:17 ba 36457718be8SEnji Cooper22:19:17:23:20:23:17:18 ba 36557718be8SEnji Cooper23:18:11:13:11:17:11:19 ba 36657718be8SEnji Cooper24:17:05:07:05:11:05:20 ba 36757718be8SEnji CooperEOF 36857718be8SEnji Cooper 369*f9e565abSCyril Zhang atf_check -x "sort -k2b -k2 in >xx" 37057718be8SEnji Cooper atf_check -e ignore sort -c -t: -k2n xx 37157718be8SEnji Cooper 372*f9e565abSCyril Zhang atf_check -x "sort -k2,2.1b -k2 in >xx" 37357718be8SEnji Cooper atf_check -e ignore sort -c -t: -k3n xx 37457718be8SEnji Cooper 375*f9e565abSCyril Zhang atf_check -x "sort -k2.3 -k2 in >xx" 37657718be8SEnji Cooper atf_check -e ignore sort -c -t: -k4n xx 37757718be8SEnji Cooper 378*f9e565abSCyril Zhang atf_check -x "sort -k2b,2.3 -k2 in >xx" 37957718be8SEnji Cooper atf_check -e ignore sort -c -t: -k5n xx 38057718be8SEnji Cooper 381*f9e565abSCyril Zhang atf_check -x "sort -k2.3,2.1b -k2 in >xx" 38257718be8SEnji Cooper atf_check -e ignore sort -c -t: -k6n xx 38357718be8SEnji Cooper 384*f9e565abSCyril Zhang atf_check -x "sort -k2,2.1b -k2r in >xx" 38557718be8SEnji Cooper atf_check -e ignore sort -c -t: -k7n xx 38657718be8SEnji Cooper 387*f9e565abSCyril Zhang atf_check -x "sort -b -k2,2 -k2 in >xx" 38857718be8SEnji Cooper atf_check -e ignore sort -c -t: -k8n xx 38957718be8SEnji Cooper 39057718be8SEnji Cooper # XXX This test is broken. The standard is not clear on the behavior. 39157718be8SEnji Cooper #atf_check -x "sort -S -b -k2,2b -k2 in >xx" 39257718be8SEnji Cooper #atf_check -e ignore sort -c -t: -k3n xx 39357718be8SEnji Cooper} 39457718be8SEnji Cooper 39557718be8SEnji Cooperatf_test_case kflag_no_end 39657718be8SEnji Cooperkflag_no_end_head() 39757718be8SEnji Cooper{ 39857718be8SEnji Cooper atf_set "descr" "Tests the -k flag with a field without end" 39957718be8SEnji Cooper} 40057718be8SEnji Cooperkflag_no_end_body() 40157718be8SEnji Cooper{ 40257718be8SEnji Cooper cat >in <<EOF 40357718be8SEnji Coopera-B 40457718be8SEnji Coopera+b 40557718be8SEnji Coopera b 40657718be8SEnji CooperA+b 40757718be8SEnji Coopera b 40857718be8SEnji CooperEOF 40957718be8SEnji Cooper 41057718be8SEnji Cooper cat >out <<EOF 41157718be8SEnji Coopera b 41257718be8SEnji Coopera b 41357718be8SEnji CooperA+b 41457718be8SEnji Coopera-B 41557718be8SEnji Coopera+b 41657718be8SEnji CooperEOF 41757718be8SEnji Cooper 41857718be8SEnji Cooper atf_check -o file:out sort -df -k 1 -k 1d <in 41957718be8SEnji Cooper} 42057718be8SEnji Cooper 42157718be8SEnji Cooperatf_test_case mflag 42257718be8SEnji Coopermflag_head() 42357718be8SEnji Cooper{ 42457718be8SEnji Cooper atf_set "descr" "Tests the -m flag" 42557718be8SEnji Cooper} 42657718be8SEnji Coopermflag_body() 42757718be8SEnji Cooper{ 42857718be8SEnji Cooper cat >in1 <<EOF 42957718be8SEnji Coopera 43057718be8SEnji Cooperab 43157718be8SEnji Cooperab 43257718be8SEnji Cooperbc 43357718be8SEnji Cooperca 43457718be8SEnji CooperEOF 43557718be8SEnji Cooper cat >in2 <<EOF 43657718be8SEnji CooperZ 43757718be8SEnji Coopera 43857718be8SEnji Cooperaa 43957718be8SEnji Cooperac 44057718be8SEnji Cooperc 44157718be8SEnji CooperEOF 44257718be8SEnji Cooper cat >out <<EOF 44357718be8SEnji CooperZ 44457718be8SEnji Coopera 44557718be8SEnji Coopera 44657718be8SEnji Cooperaa 44757718be8SEnji Cooperab 44857718be8SEnji Cooperab 44957718be8SEnji Cooperac 45057718be8SEnji Cooperbc 45157718be8SEnji Cooperc 45257718be8SEnji Cooperca 45357718be8SEnji CooperEOF 45457718be8SEnji Cooper 455*f9e565abSCyril Zhang atf_check -o file:out sort -m in1 in2 45657718be8SEnji Cooper} 45757718be8SEnji Cooper 45857718be8SEnji Cooperatf_test_case mflag_uflag 45957718be8SEnji Coopermflag_uflag_head() 46057718be8SEnji Cooper{ 46157718be8SEnji Cooper atf_set "descr" "Tests the -m flag together with -u" 46257718be8SEnji Cooper} 46357718be8SEnji Coopermflag_uflag_body() 46457718be8SEnji Cooper{ 46557718be8SEnji Cooper cat >in <<EOF 46657718be8SEnji Coopera 46757718be8SEnji Cooperb 46857718be8SEnji Cooperc 46957718be8SEnji Cooperd 47057718be8SEnji CooperEOF 47157718be8SEnji Cooper 47257718be8SEnji Cooper atf_check -o file:in sort -m -u in 47357718be8SEnji Cooper} 47457718be8SEnji Cooper 47557718be8SEnji Cooperatf_test_case mflag_uflag_first 47657718be8SEnji Coopermflag_uflag_first_head() 47757718be8SEnji Cooper{ 47857718be8SEnji Cooper atf_set "descr" "Tests that the -m flag together with -u picks the" \ 47957718be8SEnji Cooper "first among equal" 48057718be8SEnji Cooper} 48157718be8SEnji Coopermflag_uflag_first_body() 48257718be8SEnji Cooper{ 48357718be8SEnji Cooper cat >in <<EOF 48457718be8SEnji Cooper3B 48557718be8SEnji Cooper3b 48657718be8SEnji Cooper3B2 48757718be8SEnji Cooper~3B2 48857718be8SEnji Cooper4.1 48957718be8SEnji Cooper41 49057718be8SEnji Cooper5 49157718be8SEnji Cooper5. 49257718be8SEnji CooperEOF 49357718be8SEnji Cooper 49457718be8SEnji Cooper cat >out <<EOF 49557718be8SEnji Cooper3B 49657718be8SEnji Cooper3B2 49757718be8SEnji Cooper4.1 49857718be8SEnji Cooper5 49957718be8SEnji CooperEOF 50057718be8SEnji Cooper 50157718be8SEnji Cooper atf_check -o file:out sort -mudf in 50257718be8SEnji Cooper atf_check -o file:out sort -mudf -k1 in 50357718be8SEnji Cooper} 50457718be8SEnji Cooper 50557718be8SEnji Cooperatf_test_case nflag 50657718be8SEnji Coopernflag_head() 50757718be8SEnji Cooper{ 50857718be8SEnji Cooper atf_set "descr" "Tests the -n flag" 50957718be8SEnji Cooper} 51057718be8SEnji Coopernflag_body() 51157718be8SEnji Cooper{ 51257718be8SEnji Cooper cat >in <<EOF 51357718be8SEnji Cooper-99.0 51457718be8SEnji Cooper-99.1 51557718be8SEnji Cooper-.0002 51657718be8SEnji Cooper-10 51757718be8SEnji Cooper2 51857718be8SEnji Cooper0010.000000000000000000000000000000000001 51957718be8SEnji Cooper10 52057718be8SEnji Cooper3x 52157718be8SEnji Cooperx 52257718be8SEnji CooperEOF 52357718be8SEnji Cooper 52457718be8SEnji Cooper cat >expout <<EOF 52557718be8SEnji Cooper-99.1 52657718be8SEnji Cooper-99.0 52757718be8SEnji Cooper-10 52857718be8SEnji Cooper-.0002 52957718be8SEnji Cooperx 53057718be8SEnji Cooper2 53157718be8SEnji Cooper3x 53257718be8SEnji Cooper10 53357718be8SEnji Cooper0010.000000000000000000000000000000000001 53457718be8SEnji CooperEOF 53557718be8SEnji Cooper 53657718be8SEnji Cooper atf_check -o file:expout sort -n in 53757718be8SEnji Cooper} 53857718be8SEnji Cooper 53957718be8SEnji Cooperatf_test_case nflag_rflag 54057718be8SEnji Coopernflag_rflag_head() 54157718be8SEnji Cooper{ 54257718be8SEnji Cooper atf_set "descr" "Tests the -n and -r flag combination" 54357718be8SEnji Cooper} 54457718be8SEnji Coopernflag_rflag_body() 54557718be8SEnji Cooper{ 54657718be8SEnji Cooper cat >in <<EOF 54757718be8SEnji Cooper1 54857718be8SEnji Cooper123 54957718be8SEnji Cooper2 55057718be8SEnji CooperEOF 55157718be8SEnji Cooper 55257718be8SEnji Cooper cat >expout <<EOF 55357718be8SEnji Cooper123 55457718be8SEnji Cooper2 55557718be8SEnji Cooper1 55657718be8SEnji CooperEOF 55757718be8SEnji Cooper 55857718be8SEnji Cooper atf_check -o file:expout sort -rn in 55957718be8SEnji Cooper} 56057718be8SEnji Cooper 56157718be8SEnji Cooperatf_test_case oflag 56257718be8SEnji Cooperoflag_head() 56357718be8SEnji Cooper{ 56457718be8SEnji Cooper atf_set "descr" "Tests the -o flag" 56557718be8SEnji Cooper} 56657718be8SEnji Cooperoflag_body() 56757718be8SEnji Cooper{ 56857718be8SEnji Cooper cat >in <<EOF 56957718be8SEnji Cooper1 57057718be8SEnji Cooper1 57157718be8SEnji Cooper2 57257718be8SEnji Cooper2 57357718be8SEnji Cooper3 57457718be8SEnji Cooper3 57557718be8SEnji Cooper4 57657718be8SEnji Cooper4 57757718be8SEnji CooperEOF 57857718be8SEnji Cooper 57957718be8SEnji Cooper atf_check sort -u -o in in 58057718be8SEnji Cooper 58157718be8SEnji Cooper cat >expout <<EOF 58257718be8SEnji Cooper1 58357718be8SEnji Cooper2 58457718be8SEnji Cooper3 58557718be8SEnji Cooper4 58657718be8SEnji CooperEOF 58757718be8SEnji Cooper 58857718be8SEnji Cooper atf_check -o file:expout cat in 58957718be8SEnji Cooper} 59057718be8SEnji Cooper 59157718be8SEnji Cooperatf_test_case oflag_displaced 59257718be8SEnji Cooperoflag_displaced_head() 59357718be8SEnji Cooper{ 59457718be8SEnji Cooper atf_set "descr" "Tests the -o flag after the file names" 59557718be8SEnji Cooper} 59657718be8SEnji Cooperoflag_displaced_body() 59757718be8SEnji Cooper{ 598*f9e565abSCyril Zhang atf_check sort /dev/null -o out 59957718be8SEnji Cooper test -f out || atf_fail "File not created" 60057718be8SEnji Cooper} 60157718be8SEnji Cooper 60257718be8SEnji Cooperatf_test_case rflag 60357718be8SEnji Cooperrflag_head() 60457718be8SEnji Cooper{ 60557718be8SEnji Cooper atf_set "descr" "Tests the -r flag" 60657718be8SEnji Cooper} 60757718be8SEnji Cooperrflag_body() 60857718be8SEnji Cooper{ 60957718be8SEnji Cooper cat >in <<EOF 61057718be8SEnji Cooperz b m f 61157718be8SEnji Coopery c o e 61257718be8SEnji Cooperx a n h 61357718be8SEnji Cooperx a n g 61457718be8SEnji CooperEOF 61557718be8SEnji Cooper 61657718be8SEnji Cooper cat >expout <<EOF 61757718be8SEnji Cooperz b m f 61857718be8SEnji Coopery c o e 61957718be8SEnji Cooperx a n h 62057718be8SEnji Cooperx a n g 62157718be8SEnji CooperEOF 62257718be8SEnji Cooper 62357718be8SEnji Cooper atf_check -o file:expout sort -r in 62457718be8SEnji Cooper} 62557718be8SEnji Cooper 62657718be8SEnji Cooperatf_test_case sflag 62757718be8SEnji Coopersflag_head() 62857718be8SEnji Cooper{ 62957718be8SEnji Cooper atf_set "descr" "Tests the -s flag" 63057718be8SEnji Cooper} 63157718be8SEnji Coopersflag_body() 63257718be8SEnji Cooper{ 63357718be8SEnji Cooper cat >in <<EOF 63457718be8SEnji Coopera 2 63557718be8SEnji Cooperb 1 63657718be8SEnji Cooperc 2 63757718be8SEnji Coopera 1 63857718be8SEnji Cooperb 2 63957718be8SEnji Cooperc 1 64057718be8SEnji CooperEOF 64157718be8SEnji Cooper 64257718be8SEnji Cooper cat >out <<EOF 64357718be8SEnji Coopera 2 64457718be8SEnji Coopera 1 64557718be8SEnji Cooperb 1 64657718be8SEnji Cooperb 2 64757718be8SEnji Cooperc 2 64857718be8SEnji Cooperc 1 64957718be8SEnji CooperEOF 65057718be8SEnji Cooper 65157718be8SEnji Cooper atf_check -o file:out sort -s -k1,1 in 65257718be8SEnji Cooper} 65357718be8SEnji Cooper 65457718be8SEnji Cooperatf_test_case sflag_many_files 65557718be8SEnji Coopersflag_many_files_head() 65657718be8SEnji Cooper{ 65757718be8SEnji Cooper atf_set "descr" "Tests the -s flag with multiple files" 65857718be8SEnji Cooper} 65957718be8SEnji Coopersflag_many_files_body() 66057718be8SEnji Cooper{ 66157718be8SEnji Cooper cat >in1 <<EOF 66257718be8SEnji Cooperc 2 66357718be8SEnji Coopera 2 66457718be8SEnji CooperEOF 66557718be8SEnji Cooper 66657718be8SEnji Cooper cat >in2 <<EOF 66757718be8SEnji Cooperc 1 66857718be8SEnji Cooperb 1 66957718be8SEnji Coopera 1 67057718be8SEnji CooperEOF 67157718be8SEnji Cooper 67257718be8SEnji Cooper cat >out <<EOF 67357718be8SEnji Cooperc 2 67457718be8SEnji Cooperb 1 67557718be8SEnji Coopera 2 67657718be8SEnji CooperEOF 67757718be8SEnji Cooper 67857718be8SEnji Cooper atf_check -o file:out sort -smru -k1,1 in1 in1 in2 in2 67957718be8SEnji Cooper} 68057718be8SEnji Cooper 68157718be8SEnji Cooperatf_test_case tflag 68257718be8SEnji Coopertflag_head() 68357718be8SEnji Cooper{ 68457718be8SEnji Cooper atf_set "descr" "Tests the -t flag" 68557718be8SEnji Cooper} 68657718be8SEnji Coopertflag_body() 68757718be8SEnji Cooper{ 68857718be8SEnji Cooper cat >in <<EOF 68957718be8SEnji Coopera: 69057718be8SEnji Coopera! 69157718be8SEnji CooperEOF 69257718be8SEnji Cooper 69357718be8SEnji Cooper atf_check -o file:in sort -t : -r +0 in 69457718be8SEnji Cooper atf_check -o file:in sort -t : +0 -1 in 69557718be8SEnji Cooper atf_check -o file:in sort -t : -r -k 1 in 69657718be8SEnji Cooper atf_check -o file:in sort -t : -k 1,1 in 69757718be8SEnji Cooper} 69857718be8SEnji Cooper 69957718be8SEnji Cooperatf_test_case tflag_alphabetic 70057718be8SEnji Coopertflag_alphabetic_head() 70157718be8SEnji Cooper{ 70257718be8SEnji Cooper atf_set "descr" "Tests the -t flag with a character as the delimiter" 70357718be8SEnji Cooper} 70457718be8SEnji Coopertflag_alphabetic_body() 70557718be8SEnji Cooper{ 70657718be8SEnji Cooper cat >in <<EOF 70757718be8SEnji CooperzXa 70857718be8SEnji CooperyXa 70957718be8SEnji CooperzXb 71057718be8SEnji CooperEOF 71157718be8SEnji Cooper 71257718be8SEnji Cooper atf_check -o file:in sort -tX -k2 -k1r,1 in 71357718be8SEnji Cooper} 71457718be8SEnji Cooper 71557718be8SEnji Cooperatf_test_case tflag_char_pos 71657718be8SEnji Coopertflag_char_pos_head() 71757718be8SEnji Cooper{ 71857718be8SEnji Cooper atf_set "descr" "Tests the -t flag with character positions in fields" 71957718be8SEnji Cooper} 72057718be8SEnji Coopertflag_char_pos_body() 72157718be8SEnji Cooper{ 72257718be8SEnji Cooper cat >in <<EOF 72357718be8SEnji Cooper: ab 72457718be8SEnji Cooper:bac 72557718be8SEnji CooperEOF 72657718be8SEnji Cooper 72757718be8SEnji Cooper cat >out <<EOF 72857718be8SEnji Cooper:bac 72957718be8SEnji Cooper: ab 73057718be8SEnji CooperEOF 73157718be8SEnji Cooper 73257718be8SEnji Cooper atf_check -o file:out sort -b -t: +1.1 in 73357718be8SEnji Cooper atf_check -o file:out sort -t: +1.1r in 73457718be8SEnji Cooper atf_check -o file:out sort -b -t: -k 2.2 in 73557718be8SEnji Cooper atf_check -o file:out sort -t: -k 2.2r in 73657718be8SEnji Cooper} 73757718be8SEnji Cooper 73857718be8SEnji Cooperatf_test_case tflag_whitespace 73957718be8SEnji Coopertflag_whitespace_head() 74057718be8SEnji Cooper{ 74157718be8SEnji Cooper atf_set "descr" "Tests the -t flag with spaces and tabs as the" \ 74257718be8SEnji Cooper "delimiter" 74357718be8SEnji Cooper} 74457718be8SEnji Coopertflag_whitespace_body() 74557718be8SEnji Cooper{ 74657718be8SEnji Cooper cat >in <<EOF 74757718be8SEnji Cooper b c 74857718be8SEnji Cooper b c 74957718be8SEnji Cooper b c 75057718be8SEnji CooperEOF 75157718be8SEnji Cooper 75257718be8SEnji Cooper atf_check -o file:in sort -t ' ' -k2,2 in 75357718be8SEnji Cooper atf_check -o file:in sort -t ' ' -k2.1,2.0 in 75457718be8SEnji Cooper 75557718be8SEnji Cooper cat >out <<EOF 75657718be8SEnji Cooper b c 75757718be8SEnji Cooper b c 75857718be8SEnji Cooper b c 75957718be8SEnji CooperEOF 76057718be8SEnji Cooper 76157718be8SEnji Cooper atf_check -o file:out sort -t ' ' -k2,2 in 76257718be8SEnji Cooper atf_check -o file:out sort -t ' ' -k2.1,2.0 in 76357718be8SEnji Cooper 76457718be8SEnji Cooper cat >out <<EOF 76557718be8SEnji Cooper b c 76657718be8SEnji Cooper b c 76757718be8SEnji Cooper b c 76857718be8SEnji CooperEOF 76957718be8SEnji Cooper 770*f9e565abSCyril Zhang atf_check -o file:out sort -k2 in 77157718be8SEnji Cooper 77257718be8SEnji Cooper cat >out <<EOF 77357718be8SEnji Cooper b c 77457718be8SEnji Cooper b c 77557718be8SEnji Cooper b c 77657718be8SEnji CooperEOF 77757718be8SEnji Cooper 778*f9e565abSCyril Zhang atf_check -o file:out sort -k2b in 77957718be8SEnji Cooper} 78057718be8SEnji Cooper 78157718be8SEnji Cooperatf_test_case uflag 78257718be8SEnji Cooperuflag_head() 78357718be8SEnji Cooper{ 78457718be8SEnji Cooper atf_set "descr" "Tests the -u flag" 78557718be8SEnji Cooper} 78657718be8SEnji Cooperuflag_body() 78757718be8SEnji Cooper{ 78857718be8SEnji Cooper cat >in <<EOF 78957718be8SEnji Coopera 79057718be8SEnji Cooperaa 79157718be8SEnji Cooperaaa 79257718be8SEnji Cooperaa 79357718be8SEnji CooperEOF 79457718be8SEnji Cooper 79557718be8SEnji Cooper cat >expout <<EOF 79657718be8SEnji Coopera 79757718be8SEnji Cooperaa 79857718be8SEnji Cooperaaa 79957718be8SEnji CooperEOF 80057718be8SEnji Cooper 80157718be8SEnji Cooper atf_check -o file:expout sort -u in 80257718be8SEnji Cooper} 80357718be8SEnji Cooper 80457718be8SEnji Cooperatf_test_case uflag_rflag 80557718be8SEnji Cooperuflag_rflag_head() 80657718be8SEnji Cooper{ 80757718be8SEnji Cooper atf_set "descr" "Tests the -u and -r flag combination" 80857718be8SEnji Cooper} 80957718be8SEnji Cooperuflag_rflag_body() 81057718be8SEnji Cooper{ 81157718be8SEnji Cooper cat >in <<EOF 81257718be8SEnji Coopera 81357718be8SEnji Cooperaa 81457718be8SEnji Cooperaaa 81557718be8SEnji Cooperaa 81657718be8SEnji CooperEOF 81757718be8SEnji Cooper 81857718be8SEnji Cooper cat >expout <<EOF 81957718be8SEnji Cooperaaa 82057718be8SEnji Cooperaa 82157718be8SEnji Coopera 82257718be8SEnji CooperEOF 82357718be8SEnji Cooper 82457718be8SEnji Cooper atf_check -o file:expout sort -ru in 82557718be8SEnji Cooper} 82657718be8SEnji Cooper 82757718be8SEnji Cooperatf_test_case plus_one 82857718be8SEnji Cooperplus_one_head() 82957718be8SEnji Cooper{ 83057718be8SEnji Cooper atf_set "descr" "Tests +- addressing: +1 should become -k2.1" 83157718be8SEnji Cooper} 83257718be8SEnji Cooperplus_one_body() 83357718be8SEnji Cooper{ 83457718be8SEnji Cooper cat >in <<EOF 83557718be8SEnji Cooperz b m f 83657718be8SEnji Coopery c o e 83757718be8SEnji Cooperx a n h 83857718be8SEnji Cooperx a n g 83957718be8SEnji CooperEOF 84057718be8SEnji Cooper 84157718be8SEnji Cooper cat >expout <<EOF 84257718be8SEnji Cooperx a n g 84357718be8SEnji Cooperx a n h 84457718be8SEnji Cooperz b m f 84557718be8SEnji Coopery c o e 84657718be8SEnji CooperEOF 84757718be8SEnji Cooper 84857718be8SEnji Cooper atf_check -o file:expout sort +1 in 84957718be8SEnji Cooper} 85057718be8SEnji Cooper 85157718be8SEnji Cooperatf_test_case plus_one_minus_two 85257718be8SEnji Cooperplus_one_minus_two_head() 85357718be8SEnji Cooper{ 85457718be8SEnji Cooper atf_set "descr" "Tests +- addressing: +1 -2 should become -k2.1,2.0" 85557718be8SEnji Cooper} 85657718be8SEnji Cooperplus_one_minus_two_body() 85757718be8SEnji Cooper{ 85857718be8SEnji Cooper cat >in <<EOF 85957718be8SEnji Cooperz b m f 86057718be8SEnji Coopery c o e 86157718be8SEnji Cooperx a n h 86257718be8SEnji Cooperx a n g 86357718be8SEnji CooperEOF 86457718be8SEnji Cooper 86557718be8SEnji Cooper cat >expout <<EOF 86657718be8SEnji Cooperx a n h 86757718be8SEnji Cooperx a n g 86857718be8SEnji Cooperz b m f 86957718be8SEnji Coopery c o e 87057718be8SEnji CooperEOF 87157718be8SEnji Cooper 872*f9e565abSCyril Zhang atf_check -o file:expout sort -s +1 -2 in 87357718be8SEnji Cooper} 87457718be8SEnji Cooper 87557718be8SEnji Cooperatf_test_case plus_zero 87657718be8SEnji Cooperplus_zero_head() 87757718be8SEnji Cooper{ 87857718be8SEnji Cooper atf_set "descr" "Tests +- addressing: '-- +0' raised a '-k1.1: No" \ 87957718be8SEnji Cooper "such file or directory' error" 88057718be8SEnji Cooper} 88157718be8SEnji Cooperplus_zero_body() 88257718be8SEnji Cooper{ 88357718be8SEnji Cooper echo 'good contents' >./+0 88457718be8SEnji Cooper 88557718be8SEnji Cooper atf_check -o file:+0 sort -- +0 88657718be8SEnji Cooper} 88757718be8SEnji Cooper 88857718be8SEnji Cooperatf_test_case plus_nonmonotone 88957718be8SEnji Cooperplus_nonmonotone_head() 89057718be8SEnji Cooper{ 89157718be8SEnji Cooper atf_set "descr" "Tests += addressing: apparently nonmonotone field" \ 89257718be8SEnji Cooper "specs" 89357718be8SEnji Cooper} 89457718be8SEnji Cooperplus_nonmonotone_body() 89557718be8SEnji Cooper{ 89657718be8SEnji Cooper cat >in <<EOF 89757718be8SEnji Cooperaaaa c 89857718be8SEnji Cooperx a 89957718be8SEnji Cooper0 b 90057718be8SEnji CooperEOF 90157718be8SEnji Cooper 90257718be8SEnji Cooper atf_check -o file:in sort +1 -0.3 +1.4 -1.5 in 90357718be8SEnji Cooper} 90457718be8SEnji Cooper 90557718be8SEnji Cooperatf_test_case plus_as_path 90657718be8SEnji Cooperplus_as_path_head() 90757718be8SEnji Cooper{ 90857718be8SEnji Cooper atf_set "descr" "Tests +- addressing: 'file +0' raised a '-k1.1: No" \ 90957718be8SEnji Cooper "such file or directory' error" 91057718be8SEnji Cooper} 91157718be8SEnji Cooperplus_as_path_body() 91257718be8SEnji Cooper{ 913*f9e565abSCyril Zhang atf_expect_fail "Behavior differs from NetBSD" 91457718be8SEnji Cooper echo 'good contents' >./+0 91557718be8SEnji Cooper echo 'more contents' >in 91657718be8SEnji Cooper cat ./+0 in >expout 91757718be8SEnji Cooper 91857718be8SEnji Cooper atf_check -o file:expout sort in +0 91957718be8SEnji Cooper} 92057718be8SEnji Cooper 92157718be8SEnji Cooperatf_test_case plus_bad_tempfile 92257718be8SEnji Cooperplus_bad_tempfile_head() 92357718be8SEnji Cooper{ 92457718be8SEnji Cooper atf_set "descr" "Tests +- addressing: intermediate wrong behavior" \ 92557718be8SEnji Cooper "that raised a '+0: No such file or directory' error" 92657718be8SEnji Cooper} 92757718be8SEnji Cooperplus_bad_tempfile_body() 92857718be8SEnji Cooper{ 92957718be8SEnji Cooper echo 'good contents' >in 93057718be8SEnji Cooper atf_check -o file:in sort -T /tmp +0 in 93157718be8SEnji Cooper} 93257718be8SEnji Cooper 93357718be8SEnji Cooperatf_test_case plus_rflag_invalid 93457718be8SEnji Cooperplus_rflag_invalid_head() 93557718be8SEnji Cooper{ 93657718be8SEnji Cooper atf_set "descr" "Tests +- addressing: invalid record delimiter" 93757718be8SEnji Cooper} 93857718be8SEnji Cooperplus_rflag_invalid_body() 93957718be8SEnji Cooper{ 940*f9e565abSCyril Zhang atf_expect_fail "-R flag not available on FreeBSD" 941*f9e565abSCyril Zhang 94257718be8SEnji Cooper ( 94357718be8SEnji Cooper echo 'z b m f' 94457718be8SEnji Cooper echo 'y c o e' 94557718be8SEnji Cooper echo 'x a n h' 94657718be8SEnji Cooper echo 'x a n g' 94757718be8SEnji Cooper ) | tr '\n' '+' >in 94857718be8SEnji Cooper 94957718be8SEnji Cooper atf_check -o inline:'x a n g+x a n h+z b m f+y c o e+' \ 95057718be8SEnji Cooper sort -R + -k2 in 95157718be8SEnji Cooper} 95257718be8SEnji Cooper 95357718be8SEnji Cooperatf_test_case plus_tflag 95457718be8SEnji Cooperplus_tflag_head() 95557718be8SEnji Cooper{ 95657718be8SEnji Cooper atf_set "descr" "Tests +- addressing: using -T caused a 'No such file" \ 95757718be8SEnji Cooper "or directory' error" 95857718be8SEnji Cooper} 95957718be8SEnji Cooperplus_tflag_body() 96057718be8SEnji Cooper{ 96157718be8SEnji Cooper mkdir ./+ 96257718be8SEnji Cooper yes | sed 200000q | sort -T + >/dev/null || atf_fail "program failed" 96357718be8SEnji Cooper} 96457718be8SEnji Cooper 96557718be8SEnji Cooperatf_test_case plus_no_end 96657718be8SEnji Cooperplus_no_end_head() 96757718be8SEnji Cooper{ 96857718be8SEnji Cooper atf_set "descr" "Tests +- addressing: field without end" 96957718be8SEnji Cooper} 97057718be8SEnji Cooperplus_no_end_body() 97157718be8SEnji Cooper{ 97257718be8SEnji Cooper cat >in <<EOF 97357718be8SEnji Coopera-B 97457718be8SEnji Coopera+b 97557718be8SEnji Coopera b 97657718be8SEnji CooperA+b 97757718be8SEnji Coopera b 97857718be8SEnji CooperEOF 97957718be8SEnji Cooper 98057718be8SEnji Cooper cat >out <<EOF 98157718be8SEnji Coopera b 98257718be8SEnji Coopera b 98357718be8SEnji CooperA+b 98457718be8SEnji Coopera-B 98557718be8SEnji Coopera+b 98657718be8SEnji CooperEOF 98757718be8SEnji Cooper 98857718be8SEnji Cooper atf_check -o file:out sort -df +0 +0d in 98957718be8SEnji Cooper} 99057718be8SEnji Cooper 99157718be8SEnji Cooperatf_init_test_cases() 99257718be8SEnji Cooper{ 99357718be8SEnji Cooper atf_add_test_case basic 99457718be8SEnji Cooper atf_add_test_case empty_file 99557718be8SEnji Cooper atf_add_test_case end_of_options 99657718be8SEnji Cooper atf_add_test_case missing_newline 99757718be8SEnji Cooper atf_add_test_case null_bytes 99857718be8SEnji Cooper atf_add_test_case long_records 99957718be8SEnji Cooper atf_add_test_case long_file 100057718be8SEnji Cooper atf_add_test_case any_char 100157718be8SEnji Cooper atf_add_test_case bflag 100257718be8SEnji Cooper atf_add_test_case cflag 100357718be8SEnji Cooper atf_add_test_case kflag_one_field 100457718be8SEnji Cooper atf_add_test_case kflag_two_fields 100557718be8SEnji Cooper atf_add_test_case kflag_many_fields 100657718be8SEnji Cooper atf_add_test_case kflag_outofbounds 100757718be8SEnji Cooper atf_add_test_case kflag_nonmonotone 100857718be8SEnji Cooper atf_add_test_case kflag_limits 100957718be8SEnji Cooper atf_add_test_case kflag_alpha 101057718be8SEnji Cooper atf_add_test_case kflag_no_end 101157718be8SEnji Cooper atf_add_test_case mflag 101257718be8SEnji Cooper atf_add_test_case mflag_uflag 101357718be8SEnji Cooper atf_add_test_case mflag_uflag_first 101457718be8SEnji Cooper atf_add_test_case nflag 101557718be8SEnji Cooper atf_add_test_case nflag_rflag 101657718be8SEnji Cooper atf_add_test_case oflag 101757718be8SEnji Cooper atf_add_test_case oflag_displaced 101857718be8SEnji Cooper atf_add_test_case rflag 101957718be8SEnji Cooper atf_add_test_case sflag 102057718be8SEnji Cooper atf_add_test_case sflag_many_files 102157718be8SEnji Cooper atf_add_test_case tflag 102257718be8SEnji Cooper atf_add_test_case tflag_alphabetic 102357718be8SEnji Cooper atf_add_test_case tflag_char_pos 102457718be8SEnji Cooper atf_add_test_case tflag_whitespace 102557718be8SEnji Cooper atf_add_test_case uflag 102657718be8SEnji Cooper atf_add_test_case uflag_rflag 102757718be8SEnji Cooper atf_add_test_case plus_one 102857718be8SEnji Cooper atf_add_test_case plus_one_minus_two 102957718be8SEnji Cooper atf_add_test_case plus_zero 103057718be8SEnji Cooper atf_add_test_case plus_nonmonotone 103157718be8SEnji Cooper atf_add_test_case plus_as_path 103257718be8SEnji Cooper atf_add_test_case plus_bad_tempfile 103357718be8SEnji Cooper atf_add_test_case plus_rflag_invalid 103457718be8SEnji Cooper atf_add_test_case plus_tflag 103557718be8SEnji Cooper atf_add_test_case plus_no_end 103657718be8SEnji Cooper} 1037