git: f9e565abca9b - main - sort: Make NetBSD sort tests compatible with our sort
Mark Johnston
markj at FreeBSD.org
Thu May 13 13:35:20 UTC 2021
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=f9e565abca9b5880fe3203ba67c90eaf3e906e95
commit f9e565abca9b5880fe3203ba67c90eaf3e906e95
Author: Cyril Zhang <cyril at freebsdfoundation.org>
AuthorDate: 2021-05-13 12:50:23 +0000
Commit: Mark Johnston <markj at FreeBSD.org>
CommitDate: 2021-05-13 13:33:47 +0000
sort: Make NetBSD sort tests compatible with our sort
This diff primarily adds/removes flags to make the tests compatible with
sort. Two tests are removed. One test is changed to expect fail due to
a bug.
Reviewed by: markj
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D30217
---
contrib/netbsd-tests/usr.bin/sort/t_sort.sh | 57 ++++++++++++++++++-----------
1 file changed, 35 insertions(+), 22 deletions(-)
diff --git a/contrib/netbsd-tests/usr.bin/sort/t_sort.sh b/contrib/netbsd-tests/usr.bin/sort/t_sort.sh
index a36457cb41ec..431d23b69f96 100755
--- a/contrib/netbsd-tests/usr.bin/sort/t_sort.sh
+++ b/contrib/netbsd-tests/usr.bin/sort/t_sort.sh
@@ -25,6 +25,13 @@
# POSSIBILITY OF SUCH DAMAGE.
#
+# The -S flag in NetBSD sort enables non-stable sorting order. This flag
+# doesn't exist in FreeBSD sort, and instead indicates buffer size, so all
+# instances of this flag should be removed.
+#
+# For tests that expect exact output, but where some lines may compare
+# the same, the flag -s should be added to enforce an expected sorting order.
+
atf_test_case basic
basic_head()
{
@@ -57,9 +64,9 @@ empty_file_head()
empty_file_body()
{
touch empty
- atf_check -o empty sort -S empty
- atf_check sort -S -c empty
- atf_check sort -S -c -u empty
+ atf_check -o empty sort empty
+ atf_check sort -c empty
+ atf_check sort -c -u empty
}
atf_test_case end_of_options
@@ -70,8 +77,8 @@ end_of_options_head()
end_of_options_body()
{
echo x >-k
- atf_check -o file:-k -x "sort -S -- -k </dev/null"
- atf_check -s not-exit:1 -e ignore -x "sort -S - -c </dev/null"
+ atf_check -o file:-k -x "sort -- -k </dev/null"
+ atf_check -s not-exit:1 -e ignore -x "sort - -c </dev/null"
}
atf_test_case missing_newline
@@ -93,7 +100,7 @@ null_bytes_head()
null_bytes_body()
{
printf '\0b\n\0a\n' >in
- atf_check -o inline:'\0a\n\0b\n' sort -S in
+ atf_check -o inline:'\0a\n\0b\n' sort in
}
atf_test_case long_records
@@ -126,7 +133,7 @@ long_file_head()
long_file_body()
{
awk 'BEGIN { for(i=0; i<20000; i++) print rand() }' >in
- sort -S -r in | awk '$0 "x" != x { print ; x = $0 "x" }' >out
+ sort -r in | awk '$0 "x" != x { print ; x = $0 "x" }' >out
atf_check -o file:out sort -u -r in
}
@@ -155,6 +162,7 @@ bflag_head()
}
bflag_body()
{
+ atf_expect_fail "Behavior differs from NetBSD"
cat >in <<EOF
b
a
@@ -177,7 +185,7 @@ b
a
EOF
- atf_check -s exit:1 -e ignore sort -S -c in
+ atf_check -s exit:1 -e ignore sort -c in
}
atf_test_case kflag_one_field
@@ -224,7 +232,7 @@ x a n g
z b m f
y c o e
EOF
- atf_check -o file:expout sort -k2.1,2.0 in
+ atf_check -o file:expout sort -s -k2.1,2.0 in
}
atf_test_case kflag_many_fields
@@ -319,7 +327,9 @@ a 2
a 1
EOF
- atf_check -o file:out sort -r -k1,1 -k2n in
+ # On FreeBSD, key options override global options,
+ # so r is required as an option for the second key.
+ atf_check -o file:out sort -r -k1,1 -k2nr in
}
atf_test_case kflag_alpha
@@ -356,25 +366,25 @@ kflag_alpha_body()
24:17:05:07:05:11:05:20 ba
EOF
- atf_check -x "sort -S -k2b -k2 in >xx"
+ atf_check -x "sort -k2b -k2 in >xx"
atf_check -e ignore sort -c -t: -k2n xx
- atf_check -x "sort -S -k2,2.1b -k2 in >xx"
+ atf_check -x "sort -k2,2.1b -k2 in >xx"
atf_check -e ignore sort -c -t: -k3n xx
- atf_check -x "sort -S -k2.3 -k2 in >xx"
+ atf_check -x "sort -k2.3 -k2 in >xx"
atf_check -e ignore sort -c -t: -k4n xx
- atf_check -x "sort -S -k2b,2.3 -k2 in >xx"
+ atf_check -x "sort -k2b,2.3 -k2 in >xx"
atf_check -e ignore sort -c -t: -k5n xx
- atf_check -x "sort -S -k2.3,2.1b -k2 in >xx"
+ atf_check -x "sort -k2.3,2.1b -k2 in >xx"
atf_check -e ignore sort -c -t: -k6n xx
- atf_check -x "sort -S -k2,2.1b -k2r in >xx"
+ atf_check -x "sort -k2,2.1b -k2r in >xx"
atf_check -e ignore sort -c -t: -k7n xx
- atf_check -x "sort -S -b -k2,2 -k2 in >xx"
+ atf_check -x "sort -b -k2,2 -k2 in >xx"
atf_check -e ignore sort -c -t: -k8n xx
# XXX This test is broken. The standard is not clear on the behavior.
@@ -442,7 +452,7 @@ c
ca
EOF
- atf_check -o file:out sort -S -m in1 in2
+ atf_check -o file:out sort -m in1 in2
}
atf_test_case mflag_uflag
@@ -585,7 +595,7 @@ oflag_displaced_head()
}
oflag_displaced_body()
{
- atf_check sort -S /dev/null -o out
+ atf_check sort /dev/null -o out
test -f out || atf_fail "File not created"
}
@@ -757,7 +767,7 @@ EOF
b c
EOF
- atf_check -o file:out sort -S -k2 in
+ atf_check -o file:out sort -k2 in
cat >out <<EOF
b c
@@ -765,7 +775,7 @@ EOF
b c
EOF
- atf_check -o file:out sort -S -k2b in
+ atf_check -o file:out sort -k2b in
}
atf_test_case uflag
@@ -859,7 +869,7 @@ z b m f
y c o e
EOF
- atf_check -o file:expout sort +1 -2 in
+ atf_check -o file:expout sort -s +1 -2 in
}
atf_test_case plus_zero
@@ -900,6 +910,7 @@ plus_as_path_head()
}
plus_as_path_body()
{
+ atf_expect_fail "Behavior differs from NetBSD"
echo 'good contents' >./+0
echo 'more contents' >in
cat ./+0 in >expout
@@ -926,6 +937,8 @@ plus_rflag_invalid_head()
}
plus_rflag_invalid_body()
{
+ atf_expect_fail "-R flag not available on FreeBSD"
+
(
echo 'z b m f'
echo 'y c o e'
More information about the dev-commits-src-main
mailing list