]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/four-jobs-tape
Update new debugging method
[bacula/bacula] / regress / tests / four-jobs-tape
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 TestName="four-jobs-tape"
8 JobName=fourjobstape
9 . scripts/functions
10
11 scripts/cleanup-tape
12 scripts/copy-tape-confs
13 echo "${cwd}/build" >/tmp/file-list
14
15 change_jobname $JobName
16 start_test
17
18 cat <<END_OF_DATA >tmp/bconcmds
19 @$out /dev/null
20 estimate job=$JobName listing
21 estimate job=$JobName listing
22 estimate job=$JobName listing
23 messages
24 @$out tmp/log1.out
25 label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default
26 run job=$JobName yes
27 wait
28 messages
29 quit
30 END_OF_DATA
31 if test "$debug" -eq 1 ; then
32   bin/bacula start
33   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
34 else
35   bin/bacula start 2>&1 >/dev/null
36   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
37 fi
38
39 scripts/check_for_zombie_jobs storage=DDS-4
40 echo "Backup 1 done"
41 # make some files for the incremental to pick up
42 touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o
43 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
44    
45 #
46 # run a second job
47 #
48 cat <<END_OF_DATA >tmp/bconcmds
49 @$out /dev/null
50 messages
51 @$out tmp/log1.out
52 run job=$JobName level=Incremental yes
53 wait
54 messages
55 quit
56 END_OF_DATA
57 if test "$debug" -eq 1 ; then
58   bin/bacula start
59   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
60 else
61   bin/bacula start 2>&1 >/dev/null
62   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
63 fi
64
65 scripts/check_for_zombie_jobs storage=DDS-4
66 echo "Backup 2 done"
67 touch ${cwd}/build/src/dird/*.c
68 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
69 #
70 # run a third job
71 #
72 cat <<END_OF_DATA >tmp/bconcmds
73 @$out /dev/null
74 messages
75 @$out tmp/log1.out
76 run job=$JobName level=Incremental yes
77 wait
78 messages
79 quit
80 END_OF_DATA
81 if test "$debug" -eq 1 ; then
82   bin/bacula start
83   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
84 else
85   bin/bacula start 2>&1 >/dev/null
86   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
87 fi
88
89 scripts/check_for_zombie_jobs storage=DDS-4
90 echo "Backup 3 done"
91 # make some files for the incremental to pick up
92 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
93 #
94 # run a fourth job
95 #
96 cat <<END_OF_DATA >tmp/bconcmds
97 @$out /dev/null
98 messages
99 @$out tmp/log1.out
100 run job=$JobName level=Incremental yes
101 wait
102 messages
103 quit
104 END_OF_DATA
105 if test "$debug" -eq 1 ; then
106   bin/bacula start
107   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
108 else
109   bin/bacula start 2>&1 >/dev/null
110   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
111 fi
112
113 scripts/check_for_zombie_jobs storage=DDS-4
114 echo "Backup 4 done"
115
116 # now do several restores to ensure we cleanup between jobs
117 #
118 cat <<END_OF_DATA >tmp/bconcmds
119 @$out /dev/null
120 restore where=${cwd}/tmp/bacula-restores select all done
121 yes
122 wait
123 restore where=${cwd}/tmp/bacula-restores select all done
124 yes
125 wait
126 @$out tmp/log2.out
127 @#
128 @# now unmount the tape and start two restores
129 @#  at the same time
130 @#
131 unmount storage=DDS-4
132 restore where=${cwd}/tmp/bacula-restores select all done
133 yes
134 restore where=${cwd}/tmp/bacula-restores select
135 unmark *
136 mark *
137 done
138 yes
139 mount storage=DDS-4
140 wait
141 messages
142 @$out
143 quit
144 END_OF_DATA
145
146 run_bacula
147 check_for_zombie_jobs storage=DDS-4
148 stop_bacula
149
150 check_two_logs
151 check_restore_diff
152 end_test