hush: another testcase for "READONLY_VAR=VAL BLTIN ..."

Currently fails.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-07-18 03:23:07 +02:00
parent 5b2cc0aaee
commit f645e1573c
4 changed files with 27 additions and 5 deletions

View File

@ -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

View File

@ -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:$?

View File

@ -0,0 +1,4 @@
hush: a=Z: readonly variable
Visible:42
hush: a=Z: readonly variable
Visible:42

View 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:$?"