committed by
GitHub
3 changed files with 149 additions and 6 deletions
@ -0,0 +1,92 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
set -euo pipefail |
|||
|
|||
repo_root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) |
|||
script="$repo_root/syno_hdd_db.sh" |
|||
tmpdir=$(mktemp -d) |
|||
trap 'rm -rf "$tmpdir"' EXIT |
|||
|
|||
extract_function() { |
|||
local function_name="$1" |
|||
sed -n "/^${function_name}(){/,/^}/p" "$script" |
|||
} |
|||
|
|||
eval "$(extract_function get_eunit_container_aliases)" |
|||
eval "$(extract_function find_eunit_db_files)" |
|||
|
|||
mkdir -p "$tmpdir/runtime/sata13" "$tmpdir/db" |
|||
printf '%s\n' "RX1217-1" > "$tmpdir/runtime/sata13/container" |
|||
|
|||
ebox_info=$(cat <<'EOF' |
|||
************ Disk Info *************** |
|||
>> Disk id: 1 |
|||
>> Slot id: -1 |
|||
>> Disk path: /dev/sata13 |
|||
>> Disk model: ST4000VN006-3CW104 |
|||
EOF |
|||
) |
|||
|
|||
mapfile -t runtime_aliases < <( |
|||
get_eunit_container_aliases "$ebox_info" "$tmpdir/runtime" |
|||
) |
|||
|
|||
if [[ ${runtime_aliases[*]} != "RX1217" ]]; then |
|||
echo "Expected runtime alias RX1217, got: ${runtime_aliases[*]-<none>}" >&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
eunitlist=("RX1217rp" "${runtime_aliases[@]}") |
|||
mapfile -t eunits < <(printf '%s\n' "${eunitlist[@]}" | sort -u) |
|||
|
|||
touch \ |
|||
"$tmpdir/db/rx1217.db" \ |
|||
"$tmpdir/db/rx1217 module_v7.db" \ |
|||
"$tmpdir/db/rx1217_v7.db" \ |
|||
"$tmpdir/db/rx1217rp.db" \ |
|||
"$tmpdir/db/rx1217rp_v7.db" \ |
|||
"$tmpdir/db/rx1217sas_v7.db" \ |
|||
"$tmpdir/db/rx1217.db.new" \ |
|||
"$tmpdir/db/rx1217rp.db.new" \ |
|||
"$tmpdir/db/rx1217sas_v7.db.new" |
|||
|
|||
mapfile -t selected < <( |
|||
find_eunit_db_files "$tmpdir/db" ".db" "${eunits[@]}" | |
|||
while IFS= read -r file; do basename "$file"; done | |
|||
sort |
|||
) |
|||
|
|||
expected=( |
|||
"rx1217 module_v7.db" |
|||
"rx1217.db" |
|||
"rx1217_v7.db" |
|||
"rx1217rp.db" |
|||
"rx1217rp_v7.db" |
|||
) |
|||
|
|||
if [[ ${selected[*]} != "${expected[*]}" ]]; then |
|||
echo "Unexpected expansion-unit database selection" >&2 |
|||
printf 'Expected: %s\n' "${expected[*]}" >&2 |
|||
printf 'Actual: %s\n' "${selected[*]-<none>}" >&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
mapfile -t selected_new < <( |
|||
find_eunit_db_files "$tmpdir/db" ".db.new" "${eunits[@]}" | |
|||
while IFS= read -r file; do basename "$file"; done | |
|||
sort |
|||
) |
|||
|
|||
expected_new=( |
|||
"rx1217.db.new" |
|||
"rx1217rp.db.new" |
|||
) |
|||
|
|||
if [[ ${selected_new[*]} != "${expected_new[*]}" ]]; then |
|||
echo "Unexpected expansion-unit .db.new selection" >&2 |
|||
printf 'Expected: %s\n' "${expected_new[*]}" >&2 |
|||
printf 'Actual: %s\n' "${selected_new[*]-<none>}" >&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
echo "PASS: runtime aliases select RX1217 and RX1217RP databases without RX1217SAS" |
|||
Loading…
Reference in new issue