From: Bastian Dehn Date: Sun, 16 Aug 2026 15:33:05 +0000 (+0200) Subject: add test for cryptsetup parameters X-Git-Tag: v1.0.7^2~1^2~15 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=f8176ca0b4793decbd2ba43352522ae56193be80;p=simple-backup.git add test for cryptsetup parameters --- diff --git a/src/backupmount b/src/backupmount index 4fdd547..1d1139f 100755 --- a/src/backupmount +++ b/src/backupmount @@ -76,10 +76,17 @@ mount_device() 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() diff --git a/tests/backupmount_tests.bats b/tests/backupmount_tests.bats index 6dbcfbc..dde1a43 100755 --- a/tests/backupmount_tests.bats +++ b/tests/backupmount_tests.bats @@ -4,16 +4,23 @@ setup() { 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 } @@ -218,4 +225,27 @@ teardown() { 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