#!/bin/bash
. ./Common

###############################################################################

tst "substitutions: variable expansion $FOO" -ds -q <<EOF
!-s
FOO=x
BAR = \$FOO
EOF

expect <<EOF
FOO=x
BAR=\${FOO}
FOO=x
BAR=x
EOF

#------------------------------------------------------------------------------

tst "substitutions: variable expansion ${FOO}bar" -ds -q <<EOF
!-s
FOO=x
BAR = \${FOO}bar
EOF

expect <<EOF
FOO=x
BAR=\${FOO}bar
FOO=x
BAR=xbar
EOF

#------------------------------------------------------------------------------

tst_fail "substitutions: expand unknown variable" -ds <<EOF
!-s
BAR = \${FOO}
EOF

expect <<EOF
s:2: \$FOO may be undefined
EOF

#------------------------------------------------------------------------------

tst "substitutions: expand variable used in match" -ds -q FOO=blah <<EOF
!-s
FOO = * { BAR = \$FOO }
EOF

expect <<EOF
FOO=RE {
    BAR=\${FOO}
}
BAR=blah
EOF

#------------------------------------------------------------------------------

tst_fail "substitutions: expand variable used in different branch" -ds <<EOF
!-s
FOO = * { BAR = \$FOO }
FOO = \$BAR
EOF

expect <<EOF
s:3: \$BAR may be undefined
EOF

#------------------------------------------------------------------------------

tst "substitutions: expand two variables" -ds -q <<EOF
!-s
FOO = a
BAR = b
FOO = \$FOO\$BAR
EOF

expect <<EOF
FOO=a
BAR=b
FOO=\${FOO}\${BAR}
FOO=ab
BAR=b
EOF

###############################################################################