summaryrefslogtreecommitdiff
path: root/tests/cut/Test.pm
blob: bfc047faeec5e4c137f12fcead74659680f17ae7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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;