echo "ℹ️ INFO: use key $key"
volume=$(echo "$config" \
- | jq --raw-output ".media.\"$media\".volume")
+ | jq --raw-output ".backup_volume")
[ "$volume" != "null" ] \
|| errlog "missing volume in $CONFIG_FILE" \
|| return $?
+ echo "ℹ️ INFO: volume open luks-crypt-volume"
+
+ cryptsetupargs=("open"
+ "--key-file $key"
+ "$device"
+ "$volume")
+ cryptsetup "${cryptsetupargs[@]}"
}
mount_backup()
bats_load_library 'bats-support'
bats_load_library 'bats-assert'
export TESTMODE="ON"
+ export CRYPTSETUP_LOG="build/test/cryptsetup.log"
export CONFIG_FILE="src/config-example.yaml"
source src/backupmount
+ mkdir --parents "build/test"
command() {
return 0
}
+ cryptsetup() {
+ printf "%s\n" "${#@}" > "$CRYPTSETUP_LOG"
+ printf "%s\n" "$@" >> "$CRYPTSETUP_LOG"
+ }
}
teardown() {
rm --recursive --force "build/test"
unset TESTMODE
+ unset CRYPTSETUP_LOG
unset CONFIG_FILE
}
assert_line --index 1 "ℹ️ INFO: media day with device /dev/path/to/day found"
assert_line --index 2 "ℹ️ INFO: use key /path/to/key"
assert_line --index 3 "❌ ERROR: missing volume in src/config-example.yaml"
+}
+
+# bats test_tags=backupmount:mount
+@test "success open volume for media day" {
+ exists_block_device() {
+ return 0
+ }
+ exists_key() {
+ return 0
+ }
+
+ run main "mount"
+
+ assert_success
+ assert_line --index 0 "⭐ START: backupmount"
+ assert_line --index 1 "ℹ️ INFO: media day with device /dev/path/to/day found"
+ assert_line --index 2 "ℹ️ INFO: use key /path/to/luks-key-file-day"
+ assert_line --index 3 "ℹ️ INFO: volume open luks-crypt-volume"
+ assert_equal "$(awk 'NR==1 {print; exit}' "$CRYPTSETUP_LOG")" "4"
+ assert_equal "$(awk 'NR==2 {print; exit}' "$CRYPTSETUP_LOG")" "open"
+ assert_equal "$(awk 'NR==3 {print; exit}' "$CRYPTSETUP_LOG")" "--key-file /path/to/luks-key-file-day"
+ assert_equal "$(awk 'NR==4 {print; exit}' "$CRYPTSETUP_LOG")" "/dev/path/to/day"
+ assert_equal "$(awk 'NR==5 {print; exit}' "$CRYPTSETUP_LOG")" "luks-crypt-volume"
}
\ No newline at end of file