File: t12-tarball-incremental-dar.sh

package info (click to toggle)
backup-manager 0.7.14-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,656 kB
  • sloc: sh: 4,041; perl: 1,176; makefile: 215
file content (78 lines) | stat: -rw-r--r-- 2,075 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh
set -e

# Each test script should include testlib.sh
source testlib.sh

# When the test is ready, set this to false for nice outputs.
# if you want to see what happens, use those flags
# verbose="true"
# warnings="true"

# The conffile part of the test, see confs/* for details.
source confs/base.conf
source confs/tarball.conf

export TEST_FILES_SUBDIR=test

export BM_ARCHIVE_ROOT="repository"
export BM_ARCHIVE_METHOD="tarball-incremental"
export BM_TARBALL_DIRECTORIES="$PWD/$TEST_FILES_SUBDIR"
export BM_TARBALL_FILETYPE="dar"
export BM_TARBALLINC_MASTERDATETYPE="weekly"
# This test is for incremental backups, we don't want master backups!
export BM_TARBALLINC_MASTERDATEVALUE="999"

source $locallib/sanitize.sh

if [[ ! -x $dar ]]; then
    info "cannot run test, need $dar"
    exit 1
fi

# The test actions

rm -rf $TEST_FILES_SUBDIR
mkdir -p $TEST_FILES_SUBDIR
mkdir $TEST_FILES_SUBDIR/dir1
touch $TEST_FILES_SUBDIR/file1

if [[ -e $BM_ARCHIVE_ROOT ]]; then
    rm -f $BM_ARCHIVE_ROOT/*
fi    

bm_init_env
bm_init_today
create_directories
make_archives

name=$(get_dir_name $BM_TARBALL_DIRECTORIES long)


if [[ -e "$BM_ARCHIVE_ROOT/$BM_ARCHIVE_PREFIX$name.$TODAY.master.1.dar" ]]; then
    YESTERDAY=$(date +%Y%m%d --date '1 days ago')

    mv "$BM_ARCHIVE_ROOT/$BM_ARCHIVE_PREFIX$name.$TODAY.master.1.dar" "$BM_ARCHIVE_ROOT/$BM_ARCHIVE_PREFIX$name.$YESTERDAY.master.1.dar"
    mkdir $TEST_FILES_SUBDIR/dir2
    touch $TEST_FILES_SUBDIR/file2
    make_archives

    # Now make sure file2 and dir2 are not saved in last darball
    for file in file1 dir1 
    do
        saved=$(dar -l $BM_ARCHIVE_ROOT/$BM_ARCHIVE_PREFIX$name.$YESTERDAY.master | grep $file | awk '{print $1}')
        if [[ "$saved" == "[saved]" ]]; then
            warning "$file is saved in last archive, shouldn't."
            rm -rf $BM_TARBALL_DIRECTORIES
            rm -rf repository
            exit 1
        fi
    done
    rm -rf $BM_TARBALL_DIRECTORIES
    rm -rf repository
    exit 0
else
    rm -rf $BM_TARBALL_DIRECTORIES
    rm -rf repository
    exit 1
fi