X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=regress%2Ftests%2Fnext-vol-test;h=5ce035252c3d51ef8d558239b26fc42284581d0b;hb=ade07b7afd278f819fbef347bd643c3328de54cb;hp=77298386d12049eff93c6db226aa1992e42748d9;hpb=9a14c0ac71211ff07cca95b75a2b241ad46c320f;p=bacula%2Fbacula diff --git a/regress/tests/next-vol-test b/regress/tests/next-vol-test index 77298386d1..5ce035252c 100755 --- a/regress/tests/next-vol-test +++ b/regress/tests/next-vol-test @@ -28,18 +28,21 @@ cat < ${cwd}/tmp/bconcmds @$out ${cwd}/tmp/log.out label barcodes storage=LTO3 slots=46-59 drive=0 pool=Scratch yes +sql +update Media SET FirstWritten='2006-01-01 01:00:00', LastWritten='2006-01-01 01:00:00'; + update volume=vol47 pool=Test inchanger=no RecyclePool=Test update volume=vol59 pool=Test enabled=no update volume=vol58 pool=Test volstatus=Recycle purge volume=vol57 update volume=vol56 pool=Test -update volume=vol55 pool=Test volstatus=Full volretention=15 +update volume=vol55 pool=Test volstatus=Full update volume=vol46 volstatus=Full volretention=15 purge volume=vol46 update volume=vol46 pool=Test update volume=vol54 volstatus=Recycle purge volume=vol53 -update volume=vol52 MaxVolJobs=1 +update volume=vol52 MaxVolJobs=1 volretention=15 update volume=vol51 inchanger=no volstatus=Recycle purge volume=vol50 update volume=vol50 inchanger=no @@ -48,10 +51,12 @@ update volume=vol48 inchanger=no pool=Test update volume AllFromPool=Test sql update Media SET VolJobs=1 WHERE VolumeName='vol52'; -update Media SET LastWritten='2006-01-01 01:00:00'; update Media SET LastWritten='2006-01-01 01:00:01' WHERE VolumeName='vol57'; update Media SET LastWritten='2006-01-01 01:00:02' WHERE VolumeName='vol53'; -list volume + +list volumes +wait +quit EOF run_bacula @@ -65,7 +70,7 @@ cat < ${cwd}/tmp/bconcmds run level=full pool=Test NightlySave yes wait message -list volume +list volumes @# Must choose vol58 @# Pool + Recycled + Enabled + InChanger run level=full pool=Test NightlySave yes @@ -77,13 +82,13 @@ list volume run level=full pool=Test NightlySave yes wait message -list volume +list volumes @# Must choose vol55 @# Pool + Full + Recycle + Enabled + InChanger run level=full pool=Test NightlySave yes wait message -list volume +list volumes @# Must choose vol54 @# No more in Test pool, get from scratch @# vol52 is Append, but have 1 job and MaxJob @@ -103,13 +108,13 @@ list volume run level=full pool=Test NightlySave yes wait message -list volume +list volumes @# Must choose vol53 @# Scratch + Purged + Enabled + InChanger + LastW run level=full pool=Test NightlySave yes wait -message -list volume +messages +list volumes restore fileset="Full Set" pool=Test where=${cwd}/tmp/bacula-restores select all done yes wait @@ -121,24 +126,160 @@ messages @#wait @#message @#list volume +quit EOF run_bconsole awk '/Must choose/ { print $4 } ' tmp/log2.out > tmp/normal awk '/Volume name.+:/ { print $3 } ' tmp/log2.out > tmp/real -if test "$debug" -eq 1; then +if [ "$debug" -eq 1 ]; then diff -ur tmp/normal tmp/real else diff tmp/normal tmp/real > /dev/null fi -export dstat=$? +dstat=$? + + +# so some tests with File media +cat < ${cwd}/tmp/bconcmds +@$out ${cwd}/tmp/log3.out +label volume=file1 storage=File pool=Test +label volume=file2 storage=File pool=Test +label volume=file3 storage=File pool=Test +label volume=file4 storage=File pool=Scratch +label volume=file5 storage=File pool=Test +label volume=file6 storage=File pool=Test +label volume=file7 storage=File pool=Scratch +label volume=file8 storage=File pool=Test +label volume=file9 storage=File pool=Scratch +label volume=file10 storage=File pool=Scratch +label volume=file11 storage=File pool=Test +sql +update Media SET FirstWritten='2006-01-01 01:00:00', LastWritten='2006-01-01 01:00:00'; + +update volume=file2 enabled=no +update volume=file3 volstatus=Recycle +@# volstatus=Purged +purge volume=file4 +update volume=file5 recycle=no volretention=1 +update volume=file6 volstatus=Full volretention=15 +update volume=file7 volstatus=Full volretention=15 +purge volume=file7 +update volume=file8 pool=Test VolRetention=1 +update volume=file9 volstatus=Recycle +purge volume=file11 +sql +update Media SET VolJobs=1 WHERE VolumeName='file9'; +update Media SET LastWritten='2006-01-01 01:00:01' WHERE VolumeName='file4'; +update Media SET LastWritten='2006-01-01 01:00:02' WHERE VolumeName='file7'; + +messages +@$out ${cwd}/tmp/log4.out +list volume +messages +@# Must choose file1 +@# Pool + Append + Lowest MediaId +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file5 +@# Pool + Append + Lowest MediaId (only once) +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file8 +@# Pool + Append + Lowest MediaId +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file3 +@# Pool + Recycle +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file11 +@# Pool + Purged +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file6 +@# Pool + Full (prunable) +setdebug level=50 director +run level=full pool=Test storage=File NightlySave yes +wait +message +setdebug level=0 director +list volume +@sleep 5 +@# Must choose file8 +@# Pool + Full (prunable) +run level=full pool=Test storage=File NightlySave yes +wait +message +update volume=file8 enabled=no +list volume +@# Must choose file10 +@# (no more Pool) Scratch + Append +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file9 +@# (no more Pool) Scratch + Recycle +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@sleep 10 +@# Must choose file6 +@# Used (prunable) + Pool +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file4 +@# Used (prunable) + oldest + Scratch +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +@# Must choose file7 +@# Used (prunable) + oldest + Scratch +run level=full pool=Test storage=File NightlySave yes +wait +message +list volume +wait +quit +EOF + +run_bconsole + +awk '/Must choose/ { print $4 } ' tmp/log4.out > tmp/normal4 +awk '/Volume name.+:/ { print $3 } ' tmp/log4.out > tmp/real4 +if [ "$debug" -eq 1 ]; then + diff -ur tmp/normal4 tmp/real4 +else + diff tmp/normal4 tmp/real4 > /dev/null +fi +if [ $dstat -eq 0 ] ; then + dstat=$? + if [ $dstat -ne 0 ] ; then + echo "normal4 and real4 differ!!!!!" + echo "normal4 and real4 differ!!!!!" >>test.out + fi +fi # try to break the old code # in this situation, we have 1 available volume (vol50) and bacula will try to use # vol47, vol48 and vol49 and will stop without using vol50. - cat < ${cwd}/tmp/bconcmds @$out ${cwd}/tmp/log1.out update volume=vol47 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test @@ -146,7 +287,8 @@ update volume=vol48 pool=Test VolStatus=Used VolRetention=10s inchanger=no Recyc update volume=vol49 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test update volume=vol50 pool=Test VolStatus=Used VolRetention=10s inchanger=yes RecyclePool=Test sql -update Media SET LastWritten='2005-01-01 01:00:00' WHERE VolumeName IN ('vol47', 'vol48', 'vol49'); +update Media SET FirstWritten='2005-01-01 01:00:00', LastWritten='2005-01-01 01:00:00' +WHERE VolumeName IN ('vol47', 'vol48', 'vol49'); list volume run level=full pool=Test NightlySave yes @@ -155,16 +297,15 @@ messages quit EOF -#run_bconsole - -check_for_zombie_jobs storage=LTO3 -stop_bacula - +run_bconsole grep "Invalid slot=0 defined in catalog for Volume" tmp/log1.out > /dev/null if [ $? -ne 0 ]; then bstat=$? fi +check_for_zombie_jobs storage=LTO3 client=${HOST}-fd +stop_bacula + check_two_logs end_test