]> gitweb.hhaalo.de Git - simple-backup.git/commitdiff
add test delete backup with same date
authorBastian Dehn <hhaalo@arcor.de>
Sat, 8 Aug 2026 09:35:19 +0000 (11:35 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 8 Aug 2026 09:35:19 +0000 (11:35 +0200)
src/backup
tests/backup_tests.bats

index b2533ac4b12a5e223e6509c0a5884444184ac148..79334d614baef19547f53c41ce87df158c0a2808 100755 (executable)
@@ -264,6 +264,7 @@ cleanup_old_backups()
        local delete_count=
        local backup_path=
        local backup_name=
+       local backups=()
        max_count=$(echo "$config" | jq --raw-output '.backup_count')
        backup_path=$(echo "$config" | jq --raw-output '.backup_path')
        backup_name=$(echo "$config" | jq --raw-output '.backup_name')
@@ -277,16 +278,16 @@ cleanup_old_backups()
        echo "â„šī¸ INFO: delete backup count $delete_count"
 
        mapfile -t backups < <(find "$backup_path" \
+               -mindepth 1 \
                -maxdepth 1 \
-               -name \
-               "*_${backup_name}" \
+               -name "*_${backup_name}" \
                | sort \
                | head --lines "$delete_count")
 
-       local backup
+       local backup=
        for backup in "${backups[@]}"; do
                echo "đŸ—‘ī¸ INFO: delete ${backup##*/}"
-               rmdir "$backup"
+               rm --recursive "$backup"
        done
 }
 
index 55a9943445e018bc67ec70b96d02fc140d66ac16..ee17a2a98edb1b5dfeef41587c0207a0b0944590 100755 (executable)
@@ -711,4 +711,32 @@ teardown() {
        [ -d build/1999-12-24_01_backup ]
        [ -d build/2000-01-01_01_backup ]
        rmdir build/1999-*
+}
+
+@test "success cleanup four backup on same date" {
+       local num=
+       for i in {1..18}; do
+               num=$(printf "%02d" "$i")
+               mkdir --parents "build/2000-01-01_${num}_backup"
+       done
+       run main
+
+       assert_success
+       assert_line --index 0 "⭐ START: backup"
+       assert_line --partial "â„šī¸ INFO: current backup count 19"
+       assert_line --partial "â„šī¸ INFO: delete backup count 4"
+       assert_line --partial "đŸ—‘ī¸ INFO: delete 2000-01-01_01_backup"
+       assert_line --partial "đŸ—‘ī¸ INFO: delete 2000-01-01_02_backup"
+       assert_line --partial "đŸ—‘ī¸ INFO: delete 2000-01-01_03_backup"
+       assert_line --partial "đŸ—‘ī¸ INFO: delete 2000-01-01_04_backup"
+       [ ! -d build/2000-01-01_01_backup ]
+       [ ! -d build/2000-01-01_02_backup ]
+       [ ! -d build/2000-01-01_03_backup ]
+       [ ! -d build/2000-01-01_04_backup ]
+       [ -d build/2000-01-01_05_backup ]
+       [ -d build/2000-01-01_06_backup ]
+       [ -d build/2000-01-01_18_backup ]
+       [ -d build/2000-01-01_19_backup ]
+       rm --recursive build/2000-01-01_19_backup
+       rmdir build/2000-01-01_*
 }
\ No newline at end of file