xref: /aosp_15_r20/external/toybox/tests/env.test (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker#!/bin/bash
2*cf5a6c84SAndroid Build Coastguard Worker
3*cf5a6c84SAndroid Build Coastguard Worker[ -f testing.sh ] && . testing.sh
4*cf5a6c84SAndroid Build Coastguard Worker
5*cf5a6c84SAndroid Build Coastguard Worker#testcmd "name "args" "result" "infile" "stdin"
6*cf5a6c84SAndroid Build Coastguard Worker#testing "name" "command" "result" "infile" "stdin"
7*cf5a6c84SAndroid Build Coastguard Worker
8*cf5a6c84SAndroid Build Coastguard Workerexport WALRUS=42 BANANA=hello LETTERS=
9*cf5a6c84SAndroid Build Coastguard WorkerFILTER="| egrep '^(WALRUS|BANANA|LETTERS)=' | sort"
10*cf5a6c84SAndroid Build Coastguard Worker
11*cf5a6c84SAndroid Build Coastguard Workertestcmd "read" "$FILTER" "BANANA=hello\nLETTERS=\nWALRUS=42\n" "" ""
12*cf5a6c84SAndroid Build Coastguard Workertestcmd "-u" "-u BANANA $FILTER" "LETTERS=\nWALRUS=42\n" "" ""
13*cf5a6c84SAndroid Build Coastguard Workertestcmd "-uu" "-u LETTERS -u WALRUS $FILTER" "BANANA=hello\n" "" ""
14*cf5a6c84SAndroid Build Coastguard Workertestcmd "-i uses old \$PATH" "-i echo hello" "hello\n" "" ""
15*cf5a6c84SAndroid Build Coastguard Workertestcmd "-i env" "-i env" "" "" ""
16*cf5a6c84SAndroid Build Coastguard Workertestcmd "-i =" "-i one=two three=four $C | sort" \
17*cf5a6c84SAndroid Build Coastguard Worker  "one=two\nthree=four\n" "" ""
18*cf5a6c84SAndroid Build Coastguard Workertestcmd "-0" "-i five=six seven=eight $C -0 | sort -z" "five=six\0seven=eight\0" "" ""
19*cf5a6c84SAndroid Build Coastguard Workerunset WALRUS BANANA LETTERS FILTER
20*cf5a6c84SAndroid Build Coastguard Worker
21*cf5a6c84SAndroid Build Coastguard Workertestcmd "early fail" '--oops 2> /dev/null ; echo $?' "125\n" "" ""
22*cf5a6c84SAndroid Build Coastguard Workertestcmd "why is this allowed" "=BLAH env | grep '^=BLAH\$'" "=BLAH\n" "" ""
23*cf5a6c84SAndroid Build Coastguard Worker
24*cf5a6c84SAndroid Build Coastguard Workertestcmd "replace" "A=foo PATH= `which printenv` A" "foo\n" "" ""
25*cf5a6c84SAndroid Build Coastguard Worker
26*cf5a6c84SAndroid Build Coastguard Worker# env bypasses shell builtins
27*cf5a6c84SAndroid Build Coastguard Workerecho "#!$(which sh)
28*cf5a6c84SAndroid Build Coastguard Workerecho \$@" > true
29*cf5a6c84SAndroid Build Coastguard Workerchmod a+x true
30*cf5a6c84SAndroid Build Coastguard Workertestcmd "norecurse" 'env PATH="$PWD:$PATH" true hello' "hello\n" "" ""
31*cf5a6c84SAndroid Build Coastguard Workerrm true
32