X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=regress%2Ftests%2Fnext-vol-test;h=739d160dedcf9d775ff29e4b5551fa14069ba787;hb=52484c379b6b1690c140dccfd2dcdc1833e0190f;hp=d48f1710555ba328712f37d97d0ee9d2e5ed5621;hpb=8d36a97ccf6e72f1ad2aeca527b279de469c32f3;p=bacula%2Fbacula diff --git a/regress/tests/next-vol-test b/regress/tests/next-vol-test index d48f171055..739d160ded 100755 --- a/regress/tests/next-vol-test +++ b/regress/tests/next-vol-test @@ -26,17 +26,23 @@ start_test cat < ${cwd}/tmp/bconcmds @$out ${cwd}/tmp/log.out -label barcodes storage=LTO3 slots=47-59 drive=0 pool=Scratch +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 @@ -45,7 +51,8 @@ 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 EOF @@ -56,38 +63,52 @@ echo $PWD/build/po > tmp/file-list cat < ${cwd}/tmp/bconcmds @$out ${cwd}/tmp/log2.out -list volume @# Must choose vol56 +@# Pool + Append + Enabled + InChanger run level=full pool=Test NightlySave yes wait message list volume @# Must choose vol58 +@# Pool + Recycled + Enabled + InChanger +run level=full pool=Test NightlySave yes +wait +message +list volume +@# Must choose vol46 +@# Pool + Purged + Enabled + InChanger run level=full pool=Test NightlySave yes wait message list volume @# Must choose vol55 +@# Pool + Full + Recycle + Enabled + InChanger run level=full pool=Test NightlySave yes wait message list volume @# Must choose vol54 +@# No more in Test pool, get from scratch +@# vol52 is Append, but have 1 job and MaxJob +@# Scratch + Recycle + Enabled + InChanger run level=full pool=Test NightlySave yes wait message list volume @# Must choose vol52 +@# Scratch + Purged + Enabled + InChanger + LastW run level=full pool=Test NightlySave yes wait message list volume -@# Must choose vol53 +@# Must choose vol57 +@# Scratch + Purged + Enabled + InChanger + LastW run level=full pool=Test NightlySave yes wait message list volume -@# Must choose vol57 +@# Must choose vol53 +@# Scratch + Purged + Enabled + InChanger + LastW run level=full pool=Test NightlySave yes wait message @@ -107,35 +128,180 @@ EOF run_bconsole -check_for_zombie_jobs storage=LTO3 -stop_bacula +awk '/Must choose/ { print $4 } ' tmp/log2.out > tmp/normal +awk '/Volume name.+:/ { print $3 } ' tmp/log2.out > tmp/real +if [ "$debug" -eq 1 ]; then + diff -ur tmp/normal tmp/real +else + diff tmp/normal tmp/real > /dev/null +fi +dstat=$? -cp tmp/log2.out tmp/log1.out -check_two_logs +# 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'; -awk '/Must choose/ { print $4 } ' tmp/log2.out > tmp/normal -awk '/Volume name.+:/ { print $3 } ' tmp/log2.out > tmp/real -diff tmp/normal tmp/real > /dev/null +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'; -export dstat=$? +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 +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/log2.out +@$out ${cwd}/tmp/log1.out update volume=vol47 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test update volume=vol48 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test 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 wait +messages +quit EOF +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 +stop_bacula + +check_two_logs + end_test