]> gitweb.hhaalo.de Git - simple-backup.git/commitdiff
add test for umount backup path
authorBastian Dehn <hhaalo@arcor.de>
Sun, 16 Aug 2026 17:52:21 +0000 (19:52 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 16 Aug 2026 17:52:21 +0000 (19:52 +0200)
src/backupmount
tests/backupmount_tests.bats

index ce7b79c65a63c142bb742a468c7844164d067a27..4c80f0cec06cf2815fad0ddeef1bc9936f302e42 100755 (executable)
@@ -160,6 +160,11 @@ umount_backup()
        [ "$volume" != "null" ] \
                || errlog "missing backup volume in $CONFIG_FILE" \
                || return $?
+
+       echo "ℹ️ INFO: umount backup path $backup_path"
+       umount "$backup_path" \
+               || errlog "could not umount $backup_path" \
+               || return $?
 }
 
 main()
index e9172a6d35ca62efdd21735f8e550f0b74e97ced..ed1ee6e6f731688b7a62082a89eeb5be33b96110 100755 (executable)
@@ -6,6 +6,7 @@ setup() {
        export TESTMODE="ON"
        export CRYPTSETUP_LOG="build/test/cryptsetup.log"
        export MOUNT_LOG="build/test/mount.log"
+       export UMOUNT_LOG="build/test/umount.log"
        export CONFIG_FILE="src/config-example.yaml"
        source src/backupmount
        mkdir --parents "build/test"
@@ -20,6 +21,10 @@ setup() {
                printf "%s\n" "${#@}" > "$MOUNT_LOG"
                printf "%s\n" "$@" >> "$MOUNT_LOG"
        }
+       umount() {
+               printf "%s\n" "${#@}" > "$UMOUNT_LOG"
+               printf "%s\n" "$@" >> "$UMOUNT_LOG"
+       }
 }
 
 teardown() {
@@ -27,6 +32,7 @@ teardown() {
        unset TESTMODE
        unset CRYPTSETUP_LOG
        unset MOUNT_LOG
+       unset UMOUNT_LOG
        unset CONFIG_FILE
 }
 
@@ -480,4 +486,29 @@ teardown() {
        assert_failure
        assert_line --index 0 "⭐ START: backupmount"
        assert_line --index 1 "❌ ERROR: missing backup volume in src/config-example.yaml"
+}
+
+# bats test_tags=backupmount:umount
+@test "success umount backup path " {
+       run main "umount"
+
+       assert_success
+       assert_line --index 0 "⭐ START: backupmount"
+       assert_line --index 1 "ℹ️ INFO: umount backup path build/test"
+       assert_equal "$(awk 'NR==1 {print; exit}' "$UMOUNT_LOG")" "1"
+       assert_equal "$(awk 'NR==2 {print; exit}' "$UMOUNT_LOG")" "build/test"
+}
+
+# bats test_tags=backupmount:umount
+@test "failure umount command failed" {
+       umount() {
+               return 1
+       }
+
+       run main "umount"
+
+       assert_failure
+       assert_line --index 0 "⭐ START: backupmount"
+       assert_line --index 1 "ℹ️ INFO: umount backup path build/test"
+       assert_line --index 2 "❌ ERROR: could not umount build/test"
 }
\ No newline at end of file