hush: another testcase for "READONLY_VAR=VAL BLTIN ..."
Currently fails. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
5b2cc0aaee
commit
f645e1573c
@ -1,14 +1,20 @@
|
||||
readonly a=A
|
||||
readonly b=B
|
||||
Ok:0
|
||||
|
||||
hush: a=A: readonly variable
|
||||
Fail:1
|
||||
hush: a=A: readonly variable
|
||||
Fail:1
|
||||
|
||||
hush: a=Z: readonly variable
|
||||
Fail:1
|
||||
|
||||
hush: a=Z: readonly variable
|
||||
b=B
|
||||
^^^a is not exported
|
||||
hush: a=Z: readonly variable
|
||||
Visible:42
|
||||
|
||||
hush: a: readonly variable
|
||||
Fail:1
|
||||
|
@ -1,5 +1,5 @@
|
||||
unset a b
|
||||
|
||||
#
|
||||
readonly a=A
|
||||
b=B
|
||||
readonly b
|
||||
@ -12,6 +12,7 @@ export -n a b
|
||||
echo Ok:$?
|
||||
env | grep -e^a= -e^b= # shows nothing
|
||||
|
||||
echo
|
||||
# these should all fail (despite the same value being assigned)
|
||||
# bash does not abort even in non-interactive more (in script)
|
||||
true; a=A
|
||||
@ -19,18 +20,23 @@ echo Fail:$?
|
||||
true; readonly a=A
|
||||
echo Fail:$?
|
||||
|
||||
echo
|
||||
# in bash, assignment in export fails, but export succeeds! :)
|
||||
# we don't mimic that!
|
||||
true; export a=Z
|
||||
echo Fail:$?; true
|
||||
echo Fail:$?
|
||||
#env | grep '^a='
|
||||
#echo "^^^a is exported"
|
||||
export -n a # undo that bashism, if it happens
|
||||
|
||||
echo
|
||||
export b
|
||||
# this fails to both set and export a:
|
||||
a=Z env | grep '^[ab]=' # command still runs
|
||||
a=Z env | grep '^[ab]='
|
||||
echo "^^^a is not exported"
|
||||
# but external command does get executed, and $? is not mangled (stays 42):
|
||||
(exit 42); a=Z env echo Visible:$?
|
||||
|
||||
unset a
|
||||
echo Fail:$?; true
|
||||
echo
|
||||
true; unset a
|
||||
echo Fail:$?
|
||||
|
4
shell/hush_test/hush-vars/readonly2.right
Normal file
4
shell/hush_test/hush-vars/readonly2.right
Normal file
@ -0,0 +1,4 @@
|
||||
hush: a=Z: readonly variable
|
||||
Visible:42
|
||||
hush: a=Z: readonly variable
|
||||
Visible:42
|
6
shell/hush_test/hush-vars/readonly2.tests
Executable file
6
shell/hush_test/hush-vars/readonly2.tests
Executable file
@ -0,0 +1,6 @@
|
||||
unset a
|
||||
readonly a=A
|
||||
|
||||
# external commands and builtins should behave the same:
|
||||
(exit 42); a=Z echo "Visible:$?"
|
||||
(exit 42); a=Z env echo "Visible:$?"
|
Loading…
Reference in New Issue
Block a user