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 a=A
|
||||||
readonly b=B
|
readonly b=B
|
||||||
Ok:0
|
Ok:0
|
||||||
|
|
||||||
hush: a=A: readonly variable
|
hush: a=A: readonly variable
|
||||||
Fail:1
|
Fail:1
|
||||||
hush: a=A: readonly variable
|
hush: a=A: readonly variable
|
||||||
Fail:1
|
Fail:1
|
||||||
|
|
||||||
hush: a=Z: readonly variable
|
hush: a=Z: readonly variable
|
||||||
Fail:1
|
Fail:1
|
||||||
|
|
||||||
hush: a=Z: readonly variable
|
hush: a=Z: readonly variable
|
||||||
b=B
|
b=B
|
||||||
^^^a is not exported
|
^^^a is not exported
|
||||||
|
hush: a=Z: readonly variable
|
||||||
|
Visible:42
|
||||||
|
|
||||||
hush: a: readonly variable
|
hush: a: readonly variable
|
||||||
Fail:1
|
Fail:1
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
unset a b
|
unset a b
|
||||||
|
#
|
||||||
readonly a=A
|
readonly a=A
|
||||||
b=B
|
b=B
|
||||||
readonly b
|
readonly b
|
||||||
@ -12,6 +12,7 @@ export -n a b
|
|||||||
echo Ok:$?
|
echo Ok:$?
|
||||||
env | grep -e^a= -e^b= # shows nothing
|
env | grep -e^a= -e^b= # shows nothing
|
||||||
|
|
||||||
|
echo
|
||||||
# these should all fail (despite the same value being assigned)
|
# these should all fail (despite the same value being assigned)
|
||||||
# bash does not abort even in non-interactive more (in script)
|
# bash does not abort even in non-interactive more (in script)
|
||||||
true; a=A
|
true; a=A
|
||||||
@ -19,18 +20,23 @@ echo Fail:$?
|
|||||||
true; readonly a=A
|
true; readonly a=A
|
||||||
echo Fail:$?
|
echo Fail:$?
|
||||||
|
|
||||||
|
echo
|
||||||
# in bash, assignment in export fails, but export succeeds! :)
|
# in bash, assignment in export fails, but export succeeds! :)
|
||||||
# we don't mimic that!
|
# we don't mimic that!
|
||||||
true; export a=Z
|
true; export a=Z
|
||||||
echo Fail:$?; true
|
echo Fail:$?
|
||||||
#env | grep '^a='
|
#env | grep '^a='
|
||||||
#echo "^^^a is exported"
|
#echo "^^^a is exported"
|
||||||
export -n a # undo that bashism, if it happens
|
export -n a # undo that bashism, if it happens
|
||||||
|
|
||||||
|
echo
|
||||||
export b
|
export b
|
||||||
# this fails to both set and export a:
|
# 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"
|
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
|
||||||
echo Fail:$?; true
|
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…
x
Reference in New Issue
Block a user