export TESTMODE="ON"
export NOCOLOR="ON"
export CONFIG_FILE="src/config-example.yaml"
- export RSYNC_LOG="build/rsync.log"
+ export RSYNC_LOG="build/test/rsync.log"
export RSYNC_LOG_RUNS="0"
source src/backup
date() {
}
teardown() {
- rm --recursive --force "build/2000-01-01_01_backup"
+ rm --recursive --force "build/test"
rm --recursive --force "$RSYNC_LOG"
unset TESTMODE
unset NOCOLOR
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 5 "💾 START: backup run"
:
}
find() {
- echo "build/2000-01-01_01_backup"
+ echo "build/test/2000-01-01_01_backup"
}
backup_machines() {
:
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
- assert_line --index 4 "ℹ️ INFO: last backup dir path build/2000-01-01_01_backup"
+ assert_line --index 4 "ℹ️ INFO: last backup dir path build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
assert_line --index 7 "ℹ️ INFO: backup count: 1"
assert_line --index 8 "🏁 FINISH: backup run"
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
# bats test_tags=backup:info
@test "success new backup folder with number 02 info" {
- mkdir --parents "build/2000-01-01_01_backup"
+ mkdir --parents "build/test/2000-01-01_01_backup"
create_backup_dir() {
:
}
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
- assert_line --index 4 "ℹ️ INFO: last backup dir path build/2000-01-01_01_backup"
+ assert_line --index 4 "ℹ️ INFO: last backup dir path build/test/2000-01-01_01_backup"
assert_line --index 5 "ℹ️ INFO: backup folder 2000-01-01_02_backup"
assert_line --index 6 "💾 START: backup run"
assert_line --index 7 "ℹ️ INFO: backup count: 1"
assert_line --index 8 "🏁 FINISH: backup run"
assert_line --index 9 "✅ SUCCESS: backup"
- rmdir "build/2000-01-01_01_backup"
+ rmdir "build/test/2000-01-01_01_backup"
}
# bats test_tags=backup:info
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
assert_line --index 7 "ℹ️ INFO: backup count: 1"
assert_line --index 8 "🏁 FINISH: backup run"
assert_line --index 9 "✅ SUCCESS: backup"
- [ -d "build/2000-01-01_01_backup" ]
+ [ -d "build/test/2000-01-01_01_backup" ]
}
# bats test_tags=backup:info
@test "success create backup folder latest number" {
- mkdir --parents "build/2000-01-01_35_backup"
+ mkdir --parents "build/test/2000-01-01_35_backup"
backup_machines() {
:
}
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
- assert_line --index 4 "ℹ️ INFO: last backup dir path build/2000-01-01_35_backup"
+ assert_line --index 4 "ℹ️ INFO: last backup dir path build/test/2000-01-01_35_backup"
assert_line --index 5 "ℹ️ INFO: backup folder 2000-01-01_36_backup"
- assert_line --index 6 "ℹ️ INFO: create folder build/2000-01-01_36_backup"
+ assert_line --index 6 "ℹ️ INFO: create folder build/test/2000-01-01_36_backup"
assert_line --index 7 "💾 START: backup run"
assert_line --index 8 "ℹ️ INFO: backup count: 2"
assert_line --index 9 "🏁 FINISH: backup run"
assert_line --index 10 "✅ SUCCESS: backup"
- [ -d "build/2000-01-01_36_backup" ]
- rmdir "build/2000-01-01_35_backup"
- rmdir "build/2000-01-01_36_backup"
+ [ -d "build/test/2000-01-01_36_backup" ]
+ rmdir "build/test/2000-01-01_35_backup"
+ rmdir "build/test/2000-01-01_36_backup"
}
# bats test_tags=backup:info
@test "success create backup folder latest number with other date" {
- mkdir --parents "build/1999-12-31_35_backup"
+ mkdir --parents "build/test/1999-12-31_35_backup"
backup_machines() {
:
}
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
- assert_line --index 4 "ℹ️ INFO: last backup dir path build/1999-12-31_35_backup"
+ assert_line --index 4 "ℹ️ INFO: last backup dir path build/test/1999-12-31_35_backup"
assert_line --index 5 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 6 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 6 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 7 "💾 START: backup run"
assert_line --index 8 "ℹ️ INFO: backup count: 2"
assert_line --index 9 "🏁 FINISH: backup run"
assert_line --index 10 "✅ SUCCESS: backup"
- [ -d "build/2000-01-01_01_backup" ]
- rmdir "build/1999-12-31_35_backup"
- rmdir "build/2000-01-01_01_backup"
+ [ -d "build/test/2000-01-01_01_backup" ]
+ rmdir "build/test/1999-12-31_35_backup"
+ rmdir "build/test/2000-01-01_01_backup"
}
# bats test_tags=backup:info
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
- assert_line --index 8 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc2"
- assert_line --index 9 "ℹ️ INFO: create directory build/2000-01-01_01_backup/onlylocal"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
+ assert_line --index 8 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc2"
+ assert_line --index 9 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/onlylocal"
assert_line --index 10 "ℹ️ INFO: backup count: 1"
assert_line --index 11 "🏁 FINISH: backup run"
assert_line --index 12 "✅ SUCCESS: backup"
- [ -d "build/2000-01-01_01_backup" ]
- [ -d "build/2000-01-01_01_backup/testpc1" ]
- [ -d "build/2000-01-01_01_backup/testpc2" ]
+ [ -d "build/test/2000-01-01_01_backup" ]
+ [ -d "build/test/2000-01-01_01_backup/testpc1" ]
+ [ -d "build/test/2000-01-01_01_backup/testpc2" ]
}
# bats test_tags=backup:info
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
assert_line --index 8 "################################################################################"
assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/etc${RESET}"
assert_line --index 10 "################################################################################"
assert_line --index 11 "################################################################################"
assert_line --index 12 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}"
assert_line --index 13 "################################################################################"
- assert_line --index 14 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc2"
+ assert_line --index 14 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc2"
assert_line --index 15 "################################################################################"
assert_line --index 16 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc2${RESET}; path ${YELLOW}/home/other${RESET}"
assert_line --index 17 "################################################################################"
- assert_line --index 18 "ℹ️ INFO: create directory build/2000-01-01_01_backup/onlylocal"
+ assert_line --index 18 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/onlylocal"
assert_line --index 19 "################################################################################"
assert_line --index 20 "ℹ️ INFO: machine ${LIGHTPURPLE}onlylocal${RESET}; path ${YELLOW}/home/local${RESET}"
assert_line --index 21 "################################################################################"
@test "failure backup machine pathes is null" {
yq() {
echo '{
- "backup_path": "build",
+ "backup_path": "build/test",
"backup_name": "backup",
"backup_count": 15,
"machines": {
assert_failure
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
assert_line --index 8 "❌ ERROR: missing pathes for machine testpc1"
}
@test "failure backup machine path no remote user" {
yq() {
echo '{
- "backup_path": "build",
+ "backup_path": "build/test",
"backup_name": "backup",
"backup_count": 15,
"machines": {
assert_failure
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
assert_line --index 8 "################################################################################"
assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}"
assert_line --index 10 "❌ ERROR: missing remote user for testpc1"
@test "failure backup machine path no host" {
yq() {
echo '{
- "backup_path": "build",
+ "backup_path": "build/test",
"backup_name": "backup",
"backup_count": 15,
"machines": {
assert_failure
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
assert_line --index 8 "################################################################################"
assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}"
assert_line --index 10 "❌ ERROR: missing host for testpc1"
@test "failure backup machine path no port" {
yq() {
echo '{
- "backup_path": "build",
+ "backup_path": "build/test",
"backup_name": "backup",
"backup_count": 15,
"machines": {
assert_failure
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
assert_line --index 8 "################################################################################"
assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}"
assert_line --index 10 "❌ ERROR: missing port for testpc1"
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
assert_line --index 8 "################################################################################"
assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/etc${RESET}"
assert_line --index 10 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; excludes /home/user/.cache /home/user/.local"
@test "success backup machine path without excludes" {
yq() {
echo '{
- "backup_path": "build",
+ "backup_path": "build/test",
"backup_name": "backup",
"backup_count": 15,
"machines": {
assert_success
assert_line --index 0 "⭐ START: backup"
- assert_line --index 1 "ℹ️ INFO: backup path build"
+ assert_line --index 1 "ℹ️ INFO: backup path build/test"
assert_line --index 2 "ℹ️ INFO: backup name backup"
assert_line --index 3 "ℹ️ INFO: backup count 15"
assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup"
- assert_line --index 5 "ℹ️ INFO: create folder build/2000-01-01_01_backup"
+ assert_line --index 5 "ℹ️ INFO: create folder build/test/2000-01-01_01_backup"
assert_line --index 6 "💾 START: backup run"
- assert_line --index 7 "ℹ️ INFO: create directory build/2000-01-01_01_backup/testpc1"
+ assert_line --index 7 "ℹ️ INFO: create directory build/test/2000-01-01_01_backup/testpc1"
assert_line --index 8 "################################################################################"
assert_line --index 9 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}"
assert_line --index 10 "################################################################################"
assert_equal "$(awk 'NR==10 {print; exit}' "$RSYNC_LOG")" "--exclude=/home/user/.local"
assert_equal "$(awk 'NR==11 {print; exit}' "$RSYNC_LOG")" "--rsh=\"ssh -p 22\""
assert_equal "$(awk 'NR==12 {print; exit}' "$RSYNC_LOG")" "backupuser@www.example.com:/etc"
- assert_equal "$(awk 'NR==13 {print; exit}' "$RSYNC_LOG")" "build/2000-01-01_01_backup/testpc1"
+ assert_equal "$(awk 'NR==13 {print; exit}' "$RSYNC_LOG")" "build/test/2000-01-01_01_backup/testpc1"
}
assert_equal "$(awk 'NR==8 {print; exit}' "$RSYNC_LOG")" "--human-readable"
assert_equal "$(awk 'NR==9 {print; exit}' "$RSYNC_LOG")" "--rsh=\"ssh -p 22\""
assert_equal "$(awk 'NR==10 {print; exit}' "$RSYNC_LOG")" "backupuser@www.example.com:/home/other"
- assert_equal "$(awk 'NR==11 {print; exit}' "$RSYNC_LOG")" "build/2000-01-01_01_backup/testpc2"
+ assert_equal "$(awk 'NR==11 {print; exit}' "$RSYNC_LOG")" "build/test/2000-01-01_01_backup/testpc2"
}
# bats test_tags=backup:rsync
assert_equal "$(awk 'NR==8 {print; exit}' "$RSYNC_LOG")" "--human-readable"
assert_equal "$(awk 'NR==9 {print; exit}' "$RSYNC_LOG")" "--rsh=\"ssh -p 22\""
assert_equal "$(awk 'NR==10 {print; exit}' "$RSYNC_LOG")" "/home/local"
- assert_equal "$(awk 'NR==11 {print; exit}' "$RSYNC_LOG")" "build/2000-01-01_01_backup/onlylocal"
+ assert_equal "$(awk 'NR==11 {print; exit}' "$RSYNC_LOG")" "build/test/2000-01-01_01_backup/onlylocal"
}
# bats test_tags=backup:rsync
@test "success backup machine path rsync localhost with hard links" {
- mkdir --parents "build/1999-12-31_01_backup"
+ mkdir --parents "build/test/1999-12-31_01_backup"
RSYNC_LOG_RUNS="4"
run main
assert_equal "$(awk 'NR==7 {print; exit}' "$RSYNC_LOG")" "--relative"
assert_equal "$(awk 'NR==8 {print; exit}' "$RSYNC_LOG")" "--human-readable"
assert_equal "$(awk 'NR==9 {print; exit}' "$RSYNC_LOG")" "--rsh=\"ssh -p 22\""
- assert_equal "$(awk 'NR==10 {print; exit}' "$RSYNC_LOG")" "--link-dest=build/1999-12-31_01_backup/onlylocal"
+ assert_equal "$(awk 'NR==10 {print; exit}' "$RSYNC_LOG")" "--link-dest=build/test/1999-12-31_01_backup/onlylocal"
assert_equal "$(awk 'NR==11 {print; exit}' "$RSYNC_LOG")" "/home/local"
- assert_equal "$(awk 'NR==12 {print; exit}' "$RSYNC_LOG")" "build/2000-01-01_01_backup/onlylocal"
- rmdir "build/1999-12-31_01_backup"
+ assert_equal "$(awk 'NR==12 {print; exit}' "$RSYNC_LOG")" "build/test/2000-01-01_01_backup/onlylocal"
+ rmdir "build/test/1999-12-31_01_backup"
}
# bats test_tags=backup:rsync
# bats test_tags=backup:info,backup:cleanup
@test "success show current backup count" {
- mkdir --parents "build/1999-12-24_01_backup"
- mkdir --parents "build/1999-12-30_01_backup"
- mkdir --parents "build/1999-12-31_01_backup"
- mkdir --parents "build/2000-01-01_01_backup"
+ mkdir --parents "build/test/1999-12-24_01_backup"
+ mkdir --parents "build/test/1999-12-30_01_backup"
+ mkdir --parents "build/test/1999-12-31_01_backup"
+ mkdir --parents "build/test/2000-01-01_01_backup"
run main
assert_success
assert_line --index 0 "⭐ START: backup"
assert_line --partial "ℹ️ INFO: backup count: 5"
- rmdir "build/1999-12-24_01_backup" \
- "build/1999-12-30_01_backup" \
- "build/1999-12-31_01_backup" \
- "build/2000-01-01_01_backup"
- rm --recursive --force "build/2000-01-01_02_backup"
+ rmdir "build/test/1999-12-24_01_backup" \
+ "build/test/1999-12-30_01_backup" \
+ "build/test/1999-12-31_01_backup" \
+ "build/test/2000-01-01_01_backup"
+ rm --recursive --force "build/test/2000-01-01_02_backup"
}
# bats test_tags=backup:info,backup:cleanup
local num=
for i in {1..5}; do
num=$(printf "%02d" "$i")
- mkdir --parents "build/1999-10-${num}_01_backup"
- mkdir --parents "build/1999-11-${num}_01_backup"
+ mkdir --parents "build/test/1999-10-${num}_01_backup"
+ mkdir --parents "build/test/1999-11-${num}_01_backup"
done
for i in {1..3}; do
num=$(printf "%02d" "$i")
- mkdir --parents "build/1999-12-${num}_01_backup"
+ mkdir --parents "build/test/1999-12-${num}_01_backup"
done
- mkdir --parents "build/1999-12-16_01_backup"
- mkdir --parents "build/1999-12-24_01_backup"
+ mkdir --parents "build/test/1999-12-16_01_backup"
+ mkdir --parents "build/test/1999-12-24_01_backup"
run main
assert_success
assert_line --partial "ℹ️ INFO: current backup count 16"
assert_line --partial "ℹ️ INFO: delete backup count 1"
assert_line --partial "🗑️ INFO: delete 1999-10-01_01_backup"
- [ ! -d build/1999-10-01_01_backup ]
- [ -d build/1999-10-02_01_backup ]
- [ -d build/1999-12-24_01_backup ]
- [ -d build/2000-01-01_01_backup ]
- rmdir build/1999-*
+ [ ! -d build/test/1999-10-01_01_backup ]
+ [ -d build/test/1999-10-02_01_backup ]
+ [ -d build/test/1999-12-24_01_backup ]
+ [ -d build/test/2000-01-01_01_backup ]
+ rmdir build/test/1999-*
}
# bats test_tags=backup:info,backup:cleanup
local num=
for i in {1..5}; do
num=$(printf "%02d" "$i")
- mkdir --parents "build/1999-10-${num}_01_backup"
- mkdir --parents "build/1999-11-${num}_01_backup"
+ mkdir --parents "build/test/1999-10-${num}_01_backup"
+ mkdir --parents "build/test/1999-11-${num}_01_backup"
done
for i in {1..6}; do
num=$(printf "%02d" "$i")
- mkdir --parents "build/1999-12-${num}_01_backup"
+ mkdir --parents "build/test/1999-12-${num}_01_backup"
done
- mkdir --parents "build/1999-12-16_01_backup"
- mkdir --parents "build/1999-12-24_01_backup"
+ mkdir --parents "build/test/1999-12-16_01_backup"
+ mkdir --parents "build/test/1999-12-24_01_backup"
run main
assert_success
assert_line --partial "🗑️ INFO: delete 1999-10-02_01_backup"
assert_line --partial "🗑️ INFO: delete 1999-10-03_01_backup"
assert_line --partial "🗑️ INFO: delete 1999-10-04_01_backup"
- [ ! -d build/1999-10-01_01_backup ]
- [ ! -d build/1999-10-02_01_backup ]
- [ ! -d build/1999-10-03_01_backup ]
- [ ! -d build/1999-10-04_01_backup ]
- [ -d build/1999-10-05_01_backup ]
- [ -d build/1999-11-01_01_backup ]
- [ -d build/1999-12-24_01_backup ]
- [ -d build/2000-01-01_01_backup ]
- rmdir build/1999-*
+ [ ! -d build/test/1999-10-01_01_backup ]
+ [ ! -d build/test/1999-10-02_01_backup ]
+ [ ! -d build/test/1999-10-03_01_backup ]
+ [ ! -d build/test/1999-10-04_01_backup ]
+ [ -d build/test/1999-10-05_01_backup ]
+ [ -d build/test/1999-11-01_01_backup ]
+ [ -d build/test/1999-12-24_01_backup ]
+ [ -d build/test/2000-01-01_01_backup ]
+ rmdir build/test/1999-*
}
# bats test_tags=backup:info,backup:cleanup
local num=
for i in {1..18}; do
num=$(printf "%02d" "$i")
- mkdir --parents "build/2000-01-01_${num}_backup"
+ mkdir --parents "build/test/2000-01-01_${num}_backup"
done
run main
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_*
+ [ ! -d build/test/2000-01-01_01_backup ]
+ [ ! -d build/test/2000-01-01_02_backup ]
+ [ ! -d build/test/2000-01-01_03_backup ]
+ [ ! -d build/test/2000-01-01_04_backup ]
+ [ -d build/test/2000-01-01_05_backup ]
+ [ -d build/test/2000-01-01_06_backup ]
+ [ -d build/test/2000-01-01_18_backup ]
+ [ -d build/test/2000-01-01_19_backup ]
+ rm --recursive build/test/2000-01-01_19_backup
+ rmdir build/test/2000-01-01_*
}
# bats test_tags=backup:log
@test "success no config" {
- mkdir --parents build
+ mkdir --parents build/test
run log "$config"
assert_success
# bats test_tags=backup:log
@test "success no log config has no logfile entry" {
- mkdir --parents build
+ mkdir --parents build/test
config="{}"
run log "$config"
write_log_entry() {
local type="$1"
- mkdir --parents build
- touch "build/$type"
+ mkdir --parents build/test
+ touch "build/test/$type"
local config=
config=$(yq '.' "$CONFIG_FILE")
get_date_time() {
run log "$config" "log entry"
assert_success
- assert_output "ℹ️ INFO: 2000-01-01T23:30:45+02:00 [$type] log entry -> build/backup.log"
- assert_equal "$(cat "build/backup.log")" "2000-01-01T23:30:45+02:00 [$type] log entry"
- rm "build/$type"
- rm "build/backup.log"
+ assert_output "ℹ️ INFO: 2000-01-01T23:30:45+02:00 [$type] log entry -> build/test/backup.log"
+ assert_equal "$(cat "build/test/backup.log")" "2000-01-01T23:30:45+02:00 [$type] log entry"
+ rm "build/test/$type"
+ rm "build/test/backup.log"
}
for type in none day week month; do