aboutsummaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2024-11-03 12:47:27 +0000
committerDenys Vlasenko <vda.linux@googlemail.com>2024-12-10 01:29:44 +0100
commitf02041441344389b05d10fe6ba8759b6670b8e10 (patch)
tree4f1aa061fa703127606e1d1dbc05de1fbd8e1d6b /testsuite
parent50e2b59370542097eb0efd79cc8d3d39ee52bf82 (diff)
downloadbusybox-w32-f02041441344389b05d10fe6ba8759b6670b8e10.tar.gz
busybox-w32-f02041441344389b05d10fe6ba8759b6670b8e10.tar.bz2
busybox-w32-f02041441344389b05d10fe6ba8759b6670b8e10.zip
cut: improve detection of invalid ranges
Commit 0068ce2fa (cut: add toybox-compatible options -O OUTSEP, -D, -F LIST) added detection of reversed ranges. Further improvements are possible. - The test for reversed ranges compared the start after it had been decremented with the end before decrement. It thus missed ranges of the form 2-1. - Zero isn't a valid start value for a range. (Nor is it a valid end value, but that's caught by the test for a reversed range.) - The code if (!*ltok) e = INT_MAX; duplicates a check that's already been made. - Display the actual range in the error message to make it easier to find which range was at fault. function old new delta .rodata 100273 100287 +14 cut_main 1239 1237 -2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 14/-2) Total: 12 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'testsuite')
-rwxr-xr-xtestsuite/cut.tests5
1 files changed, 4 insertions, 1 deletions
diff --git a/testsuite/cut.tests b/testsuite/cut.tests
index 0b401bc00..c335f824b 100755
--- a/testsuite/cut.tests
+++ b/testsuite/cut.tests
@@ -31,7 +31,10 @@ testing "-b encapsulated" "cut -b 3-8,4-6 input" "e:two:\npha:be\ne quic\n" \
31#testing "cut -bO overlaps" \ 31#testing "cut -bO overlaps" \
32# "cut --output-delimiter ' ' -b 1-3,2-5,7-9,9-10 input" \ 32# "cut --output-delimiter ' ' -b 1-3,2-5,7-9,9-10 input" \
33# "one:t o:th\nalpha beta\nthe q ick \n" "$abc" "" 33# "one:t o:th\nalpha beta\nthe q ick \n" "$abc" ""
34testing "cut high-low error" "cut -b 8-3 abc.txt 2>/dev/null || echo err" "err\n" \ 34testing "cut high-low error" "cut -b 8-3 input 2>/dev/null || echo err" "err\n" \
35 "$abc" ""
36
37testing "cut -b 2-1 error" "cut -b 2-1 input 2>/dev/null || echo err" "err\n" \
35 "$abc" "" 38 "$abc" ""
36 39
37testing "cut -c a-b" "cut -c 4-10 input" ":two:th\nha:beta\n quick \n" "$abc" "" 40testing "cut -c a-b" "cut -c 4-10 input" ":two:th\nha:beta\n quick \n" "$abc" ""