]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/recycle-test
c0832cdfd0504647f0cec4c036f0a64cf549d4be
[bacula/bacula] / regress / tests / recycle-test
1 #!/bin/sh
2 #
3 # Run a simple backup of the Bacula build directory but 
4 #   create three volumes and do six backups causing the
5 #   volumes to be recycled, and cycling through the volumes
6 #   twice. Tests maxvoljobs and volretention.
7 #
8 # Note, this test is a bit tricky, in that if you get too
9 #   much data in the regress/build directory, the test will
10 #   fail because it will run out of enough volumes to backup
11 #   all the data.
12 #
13 TestName="recycle-test"
14 JobName=Recycle
15 . scripts/functions
16
17 scripts/cleanup
18 scripts/copy-test-confs
19 echo "${cwd}/build" >${cwd}/tmp/file-list
20
21 change_jobname NightlySave $JobName
22 start_test
23
24 cat <<END_OF_DATA >${cwd}/tmp/bconcmds
25 @$out /dev/null
26 messages
27 @$out ${cwd}/tmp/log1.out
28 label storage=File1 volume=TestVolume001
29 label storage=File1 volume=TestVolume002
30 label storage=File1 volume=TestVolume003
31 label storage=File1 volume=TestVolume004
32 @# Note, this is going to fail if the pruning gets
33 @#  to tight because the saved volume is too large.
34 @#  In that case, either add another volume, or
35 @#  increase the volume capacity a bit.
36 update Volume=TestVolume001 volretention=10s
37 update Volume=TestVolume001 maxvolbytes=200000000
38 update Volume=TestVolume002 volretention=10s
39 update Volume=TestVolume002 maxvolbytes=200000000
40 update Volume=TestVolume003 volretention=10s
41 update Volume=TestVolume003 maxvolbytes=200000000
42 update Volume=TestVolume004 volretention=10s
43 update Volume=TestVolume004 maxvolbytes=200000000
44 list volumes
45 setdebug level=150 storage=File1
46 run job=$JobName storage=File1 level=full yes
47 run job=$JobName storage=File1 level=full yes
48 run job=$JobName storage=File1 level=full yes
49 wait
50 messages
51 list volumes
52 @sleep 12 
53 run job=$JobName storage=File1 level=full yes
54 run job=$JobName storage=File1 level=full yes
55 run job=$JobName storage=File1 level=full yes
56 wait
57 messages
58 list volumes
59 @sleep 12
60 run job=$JobName storage=File1 level=full yes
61 run job=$JobName storage=File1 level=full yes
62 run job=$JobName storage=File1 level=full yes
63 wait
64 messages
65 list volumes
66 @sleep 12
67 run job=$JobName storage=File1 level=full yes
68 run job=$JobName storage=File1 level=full yes
69 run job=$JobName storage=File1 level=full yes
70 wait
71 messages
72 list volumes
73 @sleep 12
74 run job=$JobName storage=File1 level=full yes
75 run job=$JobName storage=File1 level=full yes
76 run job=$JobName storage=File1 level=full yes
77 wait
78 messages
79 list volumes
80 @# 
81 @# now do a restore
82 @#
83 @$out ${cwd}/tmp/log2.out
84 restore where=${cwd}/tmp/bacula-restores select storage=File1
85 unmark *
86 mark *
87 done
88 yes
89 wait
90 messages
91 quit
92 END_OF_DATA
93
94 run_bacula
95 check_for_zombie_jobs storage=File1
96 stop_bacula
97
98 check_two_logs
99 check_restore_diff
100 end_test