summaryrefslogtreecommitdiff
path: root/tests/cut/Test.pm
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1996-09-30 00:24:30 +0000
committerJim Meyering <jim@meyering.net>1996-09-30 00:24:30 +0000
commit78315499ba8d131e2d9eba720ef5edbfd1b09e99 (patch)
tree2a2bd6aa4b7d8b591a37417bb2e3104a02403667 /tests/cut/Test.pm
parente666e3459e721d0f804feb537320c6e4b0c3d65c (diff)
downloadcoreutils-78315499ba8d131e2d9eba720ef5edbfd1b09e99.tar.xz
.
Diffstat (limited to 'tests/cut/Test.pm')
-rwxr-xr-xtests/cut/Test.pm62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/cut/Test.pm b/tests/cut/Test.pm
new file mode 100755
index 000000000..bfc047fae
--- /dev/null
+++ b/tests/cut/Test.pm
@@ -0,0 +1,62 @@
+package Test;
+require 5.002;
+use strict;
+
+my $nl = "\n";
+@Test::t = (
+# test input flags expected output expected return code
+#
+['1', "a:b:c$nl", '-d: -f1,3-', "a:c\n", 0],
+['2', "a:b:c\n", '-d: -f1,3-', "a:c\n", 0],
+['3', "a:b:c$nl", '-d: -f2-', "b:c\n", 0],
+['4', "a:b:c$nl", '-d: -f4', "\n", 0],
+['5', "", '-d: -f4', "", 0],
+['6', "123$nl", '-c4', "\n", 0],
+['7', "123", '-c4', "\n", 0],
+['8', "123\n1", '-c4', "\n\n", 0],
+['9', "", '-c4', "", 0],
+['a', "a:b:c$nl", '-s -d: -f3-', "c\n", 0],
+['b', "a:b:c$nl", '-s -d: -f2,3', "b:c\n", 0],
+['c', "a:b:c$nl", '-s -d: -f1,3', "a:c\n", 0],
+# Trailing colon should not be output
+['d', "a:b:c:$nl", '-s -d: -f1,3', "a:c\n", 0],
+['e', "a:b:c:$nl", '-s -d: -f3-', "c:\n", 0],
+['f', "a:b:c:$nl", '-s -d: -f3-4', "c:\n", 0],
+['g', "a:b:c:$nl", '-s -d: -f3,4', "c:\n", 0],
+# Make sure -s suppresses non-delimited lines
+['h', "abc\n", '-s -d: -f2,3', "", 0],
+#
+['i', ":::\n", '-d: -f1-3', "::\n", 0],
+['j', ":::\n", '-d: -f1-4', ":::\n", 0],
+['k', ":::\n", '-d: -f2-3', ":\n", 0],
+['l', ":::\n", '-d: -f2-4', "::\n", 0],
+['m', ":::\n", '-s -d: -f1-3', "::\n", 0],
+['n', ":::\n", '-s -d: -f1-4', ":::\n", 0],
+['o', ":::\n", '-s -d: -f2-3', ":\n", 0],
+['p', ":::\n", '-s -d: -f2-4', "::\n", 0],
+['q', ":::\n:\n", '-s -d: -f2-4', "::\n\n", 0],
+['r', ":::\n:1\n", '-s -d: -f2-4', "::\n1\n", 0],
+['s', ":::\n:a\n", '-s -d: -f1-4', ":::\n:a\n", 0],
+['t', ":::\n:1\n", '-s -d: -f3-', ":\n\n", 0],
+# Make sure it handles empty input properly, with and without -s.
+['u', "", '-s -f3-', "", 0],
+['v', "", '-f3-', "", 0],
+# Make sure it handles empty input properly.
+['w', "", '-b 1', "", 0],
+['x', ":\n", '-s -d: -f2-4', "\n", 0],
+# Errors
+# -s may be used only with -f
+['y', ":\n", '-s -b4', "", 1],
+# You must specify bytes or fields (or chars)
+['z', ":\n", '', "", 1],
+# Empty field list
+['A', ":\n", '-f \'\'', "", 1],
+# Missing field list
+['B', ":\n", '-f', "", 1],
+# Empty byte list
+['C', ":\n", '-b \'\'', "", 1],
+# Missing byte list
+['D', ":\n", '-b', "", 1],
+);
+
+1;