]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/four-jobs-test
Make FreeBSD config correctly for tapes
[bacula/bacula] / regress / tests / four-jobs-test
1 #!/bin/sh
2 #
3 # Run a simple backup of the Bacula build directory using the compressed option
4 #   then backup four times, each with incremental then finally restore.
5 #   It should require at least 4 different bsrs.
6 #
7 cwd=`pwd`
8 scripts/copy-test-confs
9 scripts/cleanup
10 echo "${cwd}/build" >/tmp/file-list
11 bin/bacula stop 2>&1 >/dev/null
12 bin/drop_sqlite_tables
13 bin/make_sqlite_tables
14
15 echo " "
16 echo " "
17 echo " === Starting four-jobs-test  ==="
18 echo " === Starting four-jobs-test  ===" >>working/log
19 echo " "
20
21 bin/bacula start 2>&1 >/dev/null
22 bin/console -c bin/console.conf <<END_OF_DATA
23 @output /dev/null
24 estimate job=CompressedTest listing
25 estimate job=CompressedTest listing
26 estimate job=CompressedTest listing
27 messages
28 @output tmp/log1.out
29 label storage=File volume=TestVolume001
30 run job=CompressedTest yes
31 wait
32 messages
33 quit
34 END_OF_DATA
35 echo "Backup 1 done"
36 # make some files for the incremental to pick up
37 touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o
38 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
39    
40 #
41 # run a second job
42 #
43 bin/console -c bin/console.conf <<END_OF_DATA
44 @output /dev/null
45 messages
46 @output tmp/log1.out
47 run job=CompressedTest
48 yes
49 wait
50 messages
51 quit
52 END_OF_DATA
53 echo "Backup 2 done"
54 touch ${cwd}/build/src/dird/*.c
55 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
56 #
57 # run a third job
58 #
59 bin/console -c bin/console.conf <<END_OF_DATA
60 @output /dev/null
61 messages
62 @output tmp/log1.out
63 label storage=File volume=TestVolume001
64 run job=CompressedTest yes
65 wait
66 messages
67 quit
68 END_OF_DATA
69 echo "Backup 3 done"
70 # make some files for the incremental to pick up
71 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
72 #
73 # run a fourth job
74 #
75 bin/console -c bin/console.conf <<END_OF_DATA
76 @output /dev/null
77 messages
78 @output tmp/log1.out
79 label storage=File volume=TestVolume001
80 run job=CompressedTest yes
81 wait
82 messages
83 quit
84 END_OF_DATA
85 echo "Backup 4 done"
86
87 # now do several restores to ensure we cleanup between jobs
88 #
89 bin/console -c bin/console.conf <<END_OF_DATA
90 @output /dev/null
91 restore where=${cwd}/tmp/bacula-restores select all
92 yes
93 wait
94 restore where=${cwd}/tmp/bacula-restores select all
95 yes
96 wait
97 @output tmp/log2.out
98 restore where=${cwd}/tmp/bacula-restores select all
99 yes
100 wait
101 messages
102 @output
103 quit
104 END_OF_DATA
105 bin/bacula stop 2>&1 >/dev/null
106 grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
107 bstat=$?
108 grep "^Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null
109 rstat=$?
110 diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null
111 if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then
112    echo " "
113    echo " "
114    echo "  !!!!! four-jobs-test Bacula source failed!!! !!!!! "
115    echo "  !!!!! four-jobs-test failed!!! !!!!! " >>test.out
116    echo " "
117 else
118    echo "  ===== four-jobs-test Bacula source OK ===== "
119    echo "  ===== four-jobs-test OK ===== " >>test.out
120    scripts/cleanup
121 fi