]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/next-vol-test
Update
[bacula/bacula] / regress / tests / next-vol-test
1 #!/bin/sh
2 #
3 # This script will test next vol algo with
4 # vtape
5 #
6 . scripts/functions
7
8 TestName="next-vol-test"
9 JobName=backup
10
11 require_linux
12 scripts/cleanup
13 scripts/copy-tape-confs
14 cp scripts/bacula-dir-vtape.conf bin/bacula-dir.conf
15 cp scripts/bacula-sd-vtape.conf bin/bacula-sd.conf
16 scripts/prepare-fake-autochanger
17
18
19 start_test
20
21 cat <<EOF > ${cwd}/tmp/bconcmds
22 @$out ${cwd}/tmp/log.out
23 label barcodes storage=LTO3 slots=47-59 drive=0 pool=Scratch
24 yes
25 update volume=vol47 pool=Test inchanger=no RecyclePool=Test
26 update volume=vol59 pool=Test enabled=no
27 update volume=vol58 pool=Test volstatus=Recycle
28 purge  volume=vol57
29 update volume=vol56 pool=Test
30 update volume=vol55 pool=Test volstatus=Full volretention=15 
31 update volume=vol54 volstatus=Recycle
32 purge  volume=vol53
33 update volume=vol52 MaxVolJobs=1
34 update volume=vol51 inchanger=no volstatus=Recycle
35 purge  volume=vol50
36 update volume=vol50 inchanger=no
37 update volume=vol49 inchanger=no
38 update volume=vol48 inchanger=no pool=Test
39 update volume  AllFromPool=Test
40 sql
41 update Media SET VolJobs=1 WHERE VolumeName='vol52';
42 update Media SET LastWritten='2006-01-01 01:00:00';
43
44 list volume
45 EOF
46
47 run_bacula
48
49 echo $PWD/build/po > tmp/file-list
50
51 cat <<EOF > ${cwd}/tmp/bconcmds
52 @$out ${cwd}/tmp/log2.out
53 list volume
54 @# Must choose vol56
55 run level=full pool=Test NightlySave yes
56 wait
57 message
58 list volume
59 @# Must choose vol58
60 run level=full pool=Test NightlySave yes
61 wait
62 message
63 list volume
64 @# Must choose vol55
65 run level=full pool=Test NightlySave yes
66 wait
67 message
68 list volume
69 @# Must choose vol54
70 run level=full pool=Test NightlySave yes
71 wait
72 message
73 list volume
74 @# Must choose vol52
75 run level=full pool=Test NightlySave yes
76 wait
77 message
78 list volume
79 @# Must choose vol53
80 run level=full pool=Test NightlySave yes
81 wait
82 message
83 list volume
84 @# Must choose vol57
85 run level=full pool=Test NightlySave yes
86 wait
87 message
88 list volume
89 restore fileset="Full Set" pool=Test where=${cwd}/tmp/bacula-restores select all done
90 yes
91 wait
92 messages
93 wait
94 messages
95 @# Must Wait
96 @#run level=full pool=Test NightlySave yes
97 @#wait
98 @#message
99 @#list volume
100 EOF
101
102 run_bconsole
103
104 check_for_zombie_jobs storage=LTO3
105 stop_bacula
106
107 cp tmp/log2.out tmp/log1.out
108 check_two_logs
109
110
111 awk '/Must choose/ { print $4 } '    tmp/log2.out > tmp/normal
112 awk '/Volume name.+:/ { print $3 } ' tmp/log2.out > tmp/real
113 diff tmp/normal tmp/real > /dev/null
114
115 export dstat=$?
116
117 # try to break the old code 
118 # in this situation, we have 1 available volume (vol50) and bacula will try to use
119 # vol47, vol48 and vol49 and will stop without using vol50.
120
121 cat <<EOF > ${cwd}/tmp/bconcmds
122 @$out ${cwd}/tmp/log2.out
123 update volume=vol47 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test
124 update volume=vol48 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test
125 update volume=vol49 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test
126 update volume=vol50 pool=Test VolStatus=Used VolRetention=10s inchanger=yes RecyclePool=Test
127 sql
128 update Media SET LastWritten='2005-01-01 01:00:00' WHERE VolumeName IN ('vol47', 'vol48', 'vol49');
129
130 list volume
131 run level=full pool=Test NightlySave yes
132 wait
133 EOF
134
135 end_test