[lvm-devel] master - tests: avoid using readarray
Zdenek Kabelac
zkabelac at sourceware.org
Mon Jul 10 15:42:23 UTC 2017
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e9a544b94281a500bf58930c63d15aedcde961ed
Commit: e9a544b94281a500bf58930c63d15aedcde961ed
Parent: d71b738c171bfd93eabdca3c388a637a1aa55a6c
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Mon Jul 10 17:40:31 2017 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Jul 10 17:40:31 2017 +0200
tests: avoid using readarray
Real bashman can live without readarray.
Support older tested machines with bash <4.0....
---
test/lib/check.sh | 6 ++-
test/shell/mirror-vgreduce-removemissing.sh | 63 +++++++++++++++++++++------
2 files changed, 54 insertions(+), 15 deletions(-)
diff --git a/test/lib/check.sh b/test/lib/check.sh
index 76015b8..a61eb81 100644
--- a/test/lib/check.sh
+++ b/test/lib/check.sh
@@ -98,7 +98,11 @@ mirror_images_on() {
local lv=$2
shift 2
local mimages=()
- readarray -t mimages <<< "$(get lv_field_lv_ "$vg" lv_name -a | grep "${lv}_mimage_" )"
+ local line
+
+ while IFS= read -r line ; do
+ mimages+=( "$line" )
+ done < <( get lv_field_lv_ "$vg" lv_name -a | grep "${lv}_mimage_" )
for i in "${mimages[@]}"; do
lv_on "$vg" "$i" "$1"
diff --git a/test/shell/mirror-vgreduce-removemissing.sh b/test/shell/mirror-vgreduce-removemissing.sh
index 2707059..4068f09 100644
--- a/test/shell/mirror-vgreduce-removemissing.sh
+++ b/test/shell/mirror-vgreduce-removemissing.sh
@@ -49,8 +49,10 @@ mimages_are_on_ ()
echo "Check if mirror images of $lv are on PVs" "${list_pvs[@]}"
printf "%s\n" "${list_pvs[@]}" | sort | uniq > out1
- get lv_field_lv_ "$vg" lv_name -a | grep "${lv}_mimage_" | tr -d [] | tee lvs_log
- readarray -t mimages < lvs_log
+ get lv_field_lv_ "$vg" lv_name -a | grep "${lv}_mimage_" | tee lvs_log
+ while IFS= read -r i ; do
+ mimages+=( "$i" )
+ done < lvs_log
for i in "${mimages[@]}"; do
echo "Checking $vg/$i"
@@ -161,7 +163,11 @@ test_3way_mirror_fail_1_()
mirrorlog_is_on_ $lv1 "$dev4"
eval aux disable_dev "\$dev$index"
vgreduce --removemissing --force $vg
- readarray -t list_pvs <<< "$(rest_pvs_ "$index" 3)"
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$index" 3 )
+
mimages_are_on_ "$lv1" "${list_pvs[@]}"
mirrorlog_is_on_ $lv1 "$dev4"
}
@@ -186,7 +192,10 @@ test_3way_mirror_fail_2_()
mimages_are_on_ $lv1 "$dev1" "$dev2" "$dev3"
mirrorlog_is_on_ $lv1 "$dev4"
- readarray -t list_pvs <<< "$(rest_pvs_ "$index" 3)"
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$index" 3 )
+
aux disable_dev "${list_pvs[@]}"
vgreduce --force --removemissing $vg
lv_is_linear_ $lv1
@@ -197,7 +206,11 @@ for n in $(seq 1 3); do
#COMM fail mirror images other than mirror image $(($n - 1)) of 3-way mirrored LV
prepare_lvs_
test_3way_mirror_fail_2_ $n
- readarray -t list_pvs <<< "$(rest_pvs_ "$n" 3)"
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$n" 3 )
+
recover_vg_ "${list_pvs[@]}"
done
@@ -215,10 +228,12 @@ test_3way_mirror_plus_1_fail_1_()
check mirror_images_on $vg $lv1 "$dev1" "$dev2" "$dev3" "$dev4"
check mirror_log_on $vg $lv1 "$dev5"
eval aux disable_dev \$dev$index
- lvs -a -o +devices
vgreduce --removemissing --force $vg
- lvs -a -o+devices # $vg
- readarray -t list_pvs <<< "$(rest_pvs_ "$index" 4)"
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$index" 4 )
+
check mirror_images_on $vg $lv1 "${list_pvs[@]}"
check mirror_log_on $vg $lv1 "$dev5"
}
@@ -244,8 +259,11 @@ test_3way_mirror_plus_1_fail_3_()
lvconvert -m+1 $vg/$lv1 "$dev4"
check mirror_images_on $vg $lv1 "$dev1" "$dev2" "$dev3" "$dev4"
check mirror_log_on $vg $lv1 "$dev5"
- lvs -a -o+devices $vg
- readarray -t list_pvs <<< "$(rest_pvs_ "$index" 4)"
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$index" 4 )
+
aux disable_dev "${list_pvs[@]}"
vgreduce --removemissing --force $vg
lvs -a -o+devices $vg
@@ -258,7 +276,11 @@ for n in $(seq 1 4); do
#COMM "fail mirror images other than mirror image $(($n - 1)) of 4-way (1 converting) mirrored LV"
prepare_lvs_
test_3way_mirror_plus_1_fail_3_ $n
- readarray -t list_pvs <<< "$(rest_pvs_ "$n" 4)"
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$n" 4 )
+
recover_vg_ "${list_pvs[@]}"
done
@@ -277,7 +299,11 @@ test_2way_mirror_plus_2_fail_1_()
mirrorlog_is_on_ $lv1 "$dev5"
eval aux disable_dev \$dev$n
vgreduce --removemissing --force $vg
- readarray -t list_pvs <<< "$(rest_pvs_ "$index" 4)"
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$index" 4 )
+
mimages_are_on_ "$lv1" "${list_pvs[@]}"
mirrorlog_is_on_ $lv1 "$dev5"
}
@@ -303,7 +329,12 @@ test_2way_mirror_plus_2_fail_3_()
lvconvert -m+2 $vg/$lv1 "$dev3" "$dev4"
mimages_are_on_ $lv1 "$dev1" "$dev2" "$dev3" "$dev4"
mirrorlog_is_on_ $lv1 "$dev5"
- readarray -t list_pvs <<< "$(rest_pvs_ "$index" 4)"
+
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$index" 4 )
+
aux disable_dev "${list_pvs[@]}"
vgreduce --removemissing --force $vg
lvs -a -o+devices $vg
@@ -316,7 +347,11 @@ for n in $(seq 1 4); do
#COMM "fail mirror images other than mirror image $(($n - 1)) of 4-way (2 converting) mirrored LV"
prepare_lvs_
test_2way_mirror_plus_2_fail_3_ $n
- readarray -t list_pvs <<< "$(rest_pvs_ "$n" 4)"
+
+ list_pvs=(); while IFS= read -r line ; do
+ list_pvs+=( "$line" )
+ done < <( rest_pvs_ "$n" 4 )
+
recover_vg_ "${list_pvs[@]}"
done
More information about the lvm-devel
mailing list