1# RUN: %fish %s 2 3# erase all lowercase variables to make sure they don't break our tests 4for varname in (set -xn | string match -r '^[a-z].*') 5 while set -q $varname 6 set -e $varname 7 end 8end 9 10# CHECK: bar 11foo=bar echo $foo 12 13# CHECK: nil 14set -q foo; or echo nil 15 16# CHECK: lx 17foo=bar set -qlx foo; and echo lx 18 19# CHECK: 3 20a={1, 2, 3} count $a 21 22# CHECK: 1+2+3 23a={1, 2, 3} string join + $a 24 25# CHECK: 1 2 3 26a=(echo 1 2 3) echo $a 27 28# CHECK: a a2 29a=a b={$a}2 echo $a $b 30 31# CHECK: a 32a=a builtin echo $a 33 34# CHECK: 0 35a=failing-glob-* count $a 36 37# CHECK: '' 38a=b true | echo "'$a'" 39 40if a=b true 41 # CHECK: '' 42 echo "'$a'" 43end 44 45# CHECK: b 46not a=b echo $a 47 48# CHECK: b 49a=b not echo $a 50 51# CHECK: b 52a=b not builtin echo $a 53 54# CHECK: /usr/bin:/bin 55xPATH={/usr,}/bin sh -c 'echo $xPATH' 56 57# CHECK: 2 58yPATH=/usr/bin:/bin count $yPATH 59 60# CHECK: b 61a=b begin 62 true | echo $a 63end 64 65# CHECK: b 66a=b if true 67 echo $a 68end 69 70# CHECK: b 71a=b switch x 72 case x 73 echo $a 74end 75 76complete -c x --erase 77complete -c x -xa arg 78complete -C' a=b x ' # Mind the leading space. 79# CHECK: arg 80alias xalias=x 81complete -C'a=b xalias ' 82# CHECK: arg 83alias envxalias='a=b x' 84complete -C'a=b envxalias ' 85# CHECK: arg 86 87# Eval invalid grammar to allow fish to parse this file 88eval 'a=(echo b)' 89# CHECKERR: {{.*}}: Unsupported use of '='. In fish, please use 'set a (echo b)'. 90eval ': | a=b' 91# CHECKERR: {{.*}}: Unsupported use of '='. In fish, please use 'set a b'. 92eval 'not a=b' 93# CHECKERR: {{.*}}: Unsupported use of '='. In fish, please use 'set a b'. 94 95complete -c foo -xa '$a' 96a=b complete -C'foo ' 97#CHECK: b 98