aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/expansion.in
blob: 6439871f0a881b068b2b2c87d8fb5be3a7b4ab8c (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
# Test expansion of variables

function show --description 'Prints argument count followed by arguments'
    echo (count $argv) $argv
end

set -l foo
show "$foo"
show $foo
show "prefix$foo"
show prefix$foo

show "$$foo"
show $$foo
show "prefix$$foo"
show prefix$$foo

set -l foo ''
show "$foo"
show $foo
show "prefix$foo"
show prefix$foo

show "$$foo"
show $$foo
show "prefix$$foo"
show prefix$$foo

set -l foo bar
set -l bar
show "$$foo"
show $$foo
show "prefix$$foo"
show prefix$$foo

set -l bar baz
show "$$foo"
show $$foo
show "prefix$$foo"
show prefix$$foo

set -l bar baz quux
show "$$foo"
show $$foo
show "prefix$$foo"
show prefix$$foo

set -l foo bar fooer fooest
set -l fooer
set -l fooest
show "$$foo"
show $$foo
show "prefix$$foo"
show prefix$$foo

set -l fooer ''
show $$foo
show prefix$$foo

set -l foo bar '' fooest
show "$$foo"
show $$foo
show "prefix$$foo"
show prefix$$foo

set -l foo
show "$foo[1]"
show $foo[1]
show "$foo[-1]"
show $foo[-1]
show "$foo[2]"
show $foo[2]
show "$foo[1 2]"
show $foo[1 2]
show "$foo[2 1]"
show $foo[2 1]

echo "$foo[d]"
echo $foo[d]

echo ()[1]
echo ()[d]

echo "Catch your breath"
set paren ')'
echo $$paren

# Test tilde expansion
# On OS X, /tmp is symlinked to /private/tmp
# $PWD is our best bet for resolving it
set -l saved $PWD
cd (mktemp -d)
set tmpdir $PWD
cd $saved
mkdir $tmpdir/realhome
ln -s $tmpdir/realhome $tmpdir/linkhome
set expandedtilde (env HOME=$tmpdir/linkhome ../test/root/bin/fish -c 'echo ~')
if test $expandedtilde != $tmpdir/realhome
	echo '~ expands to' $expandedtilde ' - expected ' $tmpdir/realhome
end
unlink $tmpdir/linkhome
rmdir $tmpdir/realhome
rmdir $tmpdir