summaryrefslogtreecommitdiff
path: root/regress/usr.bin/xargs/xargs-L.sh
blob: 7f4a329705f273e9f50b6c6271b5f832bb8bd5c2 (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/bin/sh
#
# $OpenBSD: xargs-L.sh,v 1.4 2023/12/22 17:12:13 millert Exp $
#
# written by Ingo Schwarze <schwarze@openbsd.org> 2010
# and placed in the public domain

test_xargs()
{
	printf 'Testing %13.13s with options "%s"\n' "\"$1\"" "$2"
        expect=`printf "$3"`
	result=`printf "$1" | $XARGS $2 ./showargs`
	if [ "$result" != "$expect" ]; then
		printf 'Expected "%s", but got "%s"\n' "$expect" "$result"
		exit 1
	fi
}

XARGS=${1:-/usr/bin/xargs}

test_xargs 'a b'         ''        'a|b|'
test_xargs 'a  b'        ''        'a|b|'
test_xargs 'a\nb'        ''        'a|b|'
test_xargs 'a\n\nb'      ''        'a|b|'
test_xargs 'a \nb'       ''        'a|b|'
test_xargs 'a\n b'       ''        'a|b|'
test_xargs 'a \n b'      ''        'a|b|'
test_xargs 'a\n \nb'     ''        'a|b|'
test_xargs 'a \n\nb'     ''        'a|b|'

test_xargs 'a\\ b'       ''        'a b|'
test_xargs 'a\\ \nb'     ''        'a |b|'
test_xargs 'a\n\\ b'     ''        'a| b|'

test_xargs 'a\\\nb'      ''        'a\nb|'
test_xargs 'a\n\\\nb'    ''        'a|\nb|'
test_xargs 'a \\\nb'     ''        'a|\nb|'
test_xargs 'a\\\n b'     ''        'a\n|b|'
test_xargs 'a \\\n b'    ''        'a|\n|b|'

test_xargs 'a b'         '-L 1'    'a|b|'
test_xargs 'a  b'        '-L 1'    'a|b|'
test_xargs 'a\nb'        '-L 1'    'a|\nb|'
test_xargs 'a\n\nb'      '-L 1'    'a|\nb|'
test_xargs 'a \nb'       '-L 1'    'a|b|'
test_xargs 'a\n b'       '-L 1'    'a|\nb|'
test_xargs 'a \n b'      '-L 1'    'a|b|'
test_xargs 'a\n \nb'     '-L 1'    'a|\nb|'
test_xargs 'a \n\nb'     '-L 1'    'a|b|'

test_xargs 'a\\ b'       '-L 1'    'a b|'
test_xargs 'a\\ \nb'     '-L 1'    'a |\nb|'
test_xargs 'a\n\\ b'     '-L 1'    'a|\n b|'

test_xargs 'a\\\nb'      '-L 1'    'a\nb|'
test_xargs 'a\n\\\nb'    '-L 1'    'a|\n\nb|'
test_xargs 'a \\\nb'     '-L 1'    'a|\nb|'
test_xargs 'a\\\n b'     '-L 1'    'a\n|b|'
test_xargs 'a \\\n b'    '-L 1'    'a|\n|b|'

test_xargs 'a b'         '-0'      'a b|'
test_xargs 'a  b'        '-0'      'a  b|'
test_xargs 'a\nb'        '-0'      'a\nb|'
test_xargs 'a\n\nb'      '-0'      'a\n\nb|'
test_xargs 'a \nb'       '-0'      'a \nb|'
test_xargs 'a\n b'       '-0'      'a\n b|'
test_xargs 'a \n b'      '-0'      'a \n b|'
test_xargs 'a\n \nb'     '-0'      'a\n \nb|'
test_xargs 'a \n\nb'     '-0'      'a \n\nb|'

test_xargs 'a\\ b'       '-0'      'a\\ b|'
test_xargs 'a\\ \nb'     '-0'      'a\\ \nb|'
test_xargs 'a\n\\ b'     '-0'      'a\n\\ b|'

test_xargs 'a\\\nb'      '-0'      'a\\\nb|'
test_xargs 'a\n\\\nb'    '-0'      'a\n\\\nb|'
test_xargs 'a \\\nb'     '-0'      'a \\\nb|'
test_xargs 'a\\\n b'     '-0'      'a\\\n b|'
test_xargs 'a \\\n b'    '-0'      'a \\\n b|'

test_xargs 'a b\0c'      '-0 -L 1' 'a b|\nc|'
test_xargs 'a  b\0c'     '-0 -L 1' 'a  b|\nc|'
test_xargs 'a\nb\0c'     '-0 -L 1' 'a\nb|\nc|'
test_xargs 'a\n\nb\0c'   '-0 -L 1' 'a\n\nb|\nc|'
test_xargs 'a \nb\0c'    '-0 -L 1' 'a \nb|\nc|'
test_xargs 'a\n b\0c'    '-0 -L 1' 'a\n b|\nc|'
test_xargs 'a \n b\0c'   '-0 -L 1' 'a \n b|\nc|'
test_xargs 'a\n \nb\0c'  '-0 -L 1' 'a\n \nb|\nc|'
test_xargs 'a \n\nb\0c'  '-0 -L 1' 'a \n\nb|\nc|'

test_xargs 'a\\ b\0c'    '-0 -L 1' 'a\\ b|\nc|'
test_xargs 'a\\ \nb\0c'  '-0 -L 1' 'a\\ \nb|\nc|'
test_xargs 'a\n\\ b\0c'  '-0 -L 1' 'a\n\\ b|\nc|'

test_xargs 'a\\\nb\0c'   '-0 -L 1' 'a\\\nb|\nc|'
test_xargs 'a\n\\\nb\0c' '-0 -L 1' 'a\n\\\nb|\nc|'
test_xargs 'a \\\nb\0c'  '-0 -L 1' 'a \\\nb|\nc|'
test_xargs 'a\\\n b\0c'  '-0 -L 1' 'a\\\n b|\nc|'
test_xargs 'a \\\n b\0c' '-0 -L 1' 'a \\\n b|\nc|'

test_xargs 'a'           '-0 -L 1' 'a|\n'
test_xargs 'a\0'         '-0 -L 1' 'a|\n'
test_xargs 'a\0\0'       '-0 -L 1' 'a|\n|\n'
test_xargs 'a\0\0b'      '-0 -L 2' 'a||\nb|'
test_xargs 'a\0\0b'      '-0 -L 1' 'a|\n|\nb|'
test_xargs 'a\0\0b'      '-0 -L 3' 'a||b|'
test_xargs 'a\0\0b'      '-0 -L 9' 'a||b|'