summaryrefslogtreecommitdiff
path: root/tests/pr
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2012-10-24 10:55:13 +0100
committerPádraig Brady <P@draigBrady.com>2012-10-25 13:01:13 +0100
commit0e3294131570837cba068a01ebcea10bdedd67b9 (patch)
tree68aaa906ca6739cb55cb4c67904d0b894180f770 /tests/pr
parent88a6201917cad43fd4efea0f1c34c891b70a7414 (diff)
downloadcoreutils-0e3294131570837cba068a01ebcea10bdedd67b9.tar.xz
pr: fix -n to pad consistently and not crash
* src/pr.c: Replace the code to truncate the most significant digits of line numbers, with much simpler string manipulation that supports arbitrary widths. Before this, specifying a width >= 32 to -n would result in a divide by zero error. Also remove the inconsistent padding with zeros and spaces, which would result in zero padding for widths 12 and 15. * tests/pr/pr-tests.pl: Added a test to ensure no zero padding, and also a test for the divide by zero case. * NEWS: Mentioned the fix Reported by Ondrej Oprala
Diffstat (limited to 'tests/pr')
-rwxr-xr-xtests/pr/pr-tests.pl7
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/pr/pr-tests.pl b/tests/pr/pr-tests.pl
index d06b34f8f..e648a9953 100755
--- a/tests/pr/pr-tests.pl
+++ b/tests/pr/pr-tests.pl
@@ -407,6 +407,13 @@ my @tv = (
# Before coreutils-8.13 page numbers were not handled correctly when
# headers were not printed (when -l <= 10 or -t or -T specified)
['page-range', '+1:1 -2 -l1 -s" "', "a\nb\nc\n", "a b\n", 0],
+
+# This padded with zeros before coreutils-8.21
+['padding1', '-t -n,15', "1\n", (" "x 14)."1,1\n", 0],
+# This crashed with divide by zero before coreutils-8.21
+['padding2', '-t -n,64', "1\n", (" "x 63)."1,1\n", 0],
+# Ensure we handle buffer truncation correctly
+['padding3', '-t -N1000000 -n,1', "1\n", "0,1\n", 0],
);
# Convert the above old-style test vectors to the newer