aboutsummaryrefslogtreecommitdiff
path: root/testsuite/busybox.tests
blob: f26f01b0c7b82ac7fe4582cd7bff94d1aeff632a (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/sh

# Tests for busybox applet itself.
# Copyright 2005 by Rob Landley <rob@landley.net>
# Licensed under GPL v2, see file LICENSE for details.

if [ ${#COMMAND} -eq 0 ]; then COMMAND=busybox; fi
. testing.sh

# We'll assume "cat" is built in, because we need some other command to test.

HELPDUMP=`$COMMAND`

# The gratuitous "\n"s are due to a shell idiosyncrasy: environment variables
# seem to strip trailing whitespace, which makes cmp and diff unhappy.

ln -s `which "$COMMAND"` busybox-suffix
ln -s `which "$COMMAND"` unknown

for i in busybox busybox-suffix
do
	# The gratuitous "\n"s are due to a shell idiosyncrasy:
	# environment variables seem to strip trailing whitespace.

	testing "$i" "" "$HELPDUMP\n\n" "" ""

	testing "$i cat" "cat" "moo" "" "moo"

	testing "$i unknown" "unknown 2>&1" \
		"unknown: applet not found\n" "" ""

	testing "$i --help" "--help 2>&1" "$HELPDUMP\n\n" "" ""

	testing "$i --help cat" "--help cat 2>&1 | grep prints" \
		"Concatenates FILE(s) and prints them to stdout.\n" "" ""

	testing "$i --help unknown" "--help unknown 2>&1" \
		"unknown: applet not found\n" "" ""

	COMMAND=./busybox-suffix
done

COMMAND="./unknown"
testing "busybox as unknown name" "2>&1" "unknown: applet not found\n" "" ""

rm -f busybox-suffix unknown

exit

General cleanup of command line parsing to allow "busybox" to work as a prefix.
(I.E. any argv[0] that starts with "busybox" winds up in busybox_main().)

Tests:
./busybox
./busybox-walrus
./busybox ls
./busybox-walrus ls
./busybox --help
./busybox-walrus --help
./busybox --help ls
./busybox-walrus --help ls
./busybox --help walrus
./busybox-walrus --help walrus









# These tests require the full option set.

# Longish chunk of data re-used by the next few tests

data="42	1	3	woot
42	1	010	zoology
egg	1	2	papyrus
7	3	42	soup
999	3	0	algebra
"

# Sorting with keys

testing "sort one key" "-k4,4 input" \
"999	3	0	algebra
egg	1	2	papyrus
7	3	42	soup
42	1	3	woot
42	1	010	zoology
" "$data" ""

testing "sort key range with numeric option" "-k2,3n input" \
"42	1	010	zoology
42	1	3	woot
egg	1	2	papyrus
7	3	42	soup
999	3	0	algebra
" "$data" ""

# Busybox is definitely doing this one wrong just now...

testing "sort key range with numeric option and global reverse" \
"-k2,3n -r input" \
"egg	1	2	papyrus
42	1	3	woot
42	1	010	zoology
999	3	0	algebra
7	3	42	soup
" "$data" ""

# 

testing "sort key range with multiple options" "-k2,3rn input" \
"7	3	42	soup
999	3	0	algebra
42	1	010	zoology
42	1	3	woot
egg	1	2	papyrus
" "$data" ""

exit $FAILCOUNT