Merge nucleic/sleek-thistle-egret-fyej into dev
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
name: "Builtins: readonly"
|
||||
cases:
|
||||
- name: "making var readonly"
|
||||
stdin: |
|
||||
my_var="value"
|
||||
readonly my_var
|
||||
|
||||
echo "Invoking declare -p..."
|
||||
declare -p my_var
|
||||
|
||||
- name: "using readonly with value"
|
||||
stdin: |
|
||||
readonly my_var="my_value"
|
||||
|
||||
echo "Invoking declare -p..."
|
||||
declare -p my_var
|
||||
|
||||
- name: "readonly array after append"
|
||||
stdin: |
|
||||
ARR=()
|
||||
f() {
|
||||
ARR+=("a" "b")
|
||||
readonly ARR
|
||||
echo "${#ARR[@]}"
|
||||
}
|
||||
f
|
||||
|
||||
- name: "readonly on nameref makes nameref readonly"
|
||||
known_failure: true
|
||||
ignore_stderr: true
|
||||
stdin: |
|
||||
target="value"
|
||||
declare -n ref=target
|
||||
readonly ref
|
||||
declare -p ref
|
||||
declare -p target
|
||||
# Changing what ref points to should fail
|
||||
declare -n ref=other 2>/dev/null
|
||||
echo "exit: $?"
|
||||
# But target should still be writable
|
||||
target="new_value"
|
||||
echo "target: $target"
|
||||
|
||||
- name: "readonly target through nameref assignment"
|
||||
known_failure: true
|
||||
ignore_stderr: true
|
||||
stdin: |
|
||||
target="value"
|
||||
readonly target
|
||||
declare -n ref=target
|
||||
ref="new_value" 2>/dev/null
|
||||
echo "exit: $?"
|
||||
echo "target: $target"
|
||||
Reference in New Issue
Block a user