#!/bin/sh # # Test for a tape truncation bug. # TestName="truncate-bug-tape" JobName=truncatebug . scripts/functions require_tape_drive scripts/copy-tape-confs scripts/cleanup-tape echo "${cwd}/build" >${cwd}/tmp/file-list change_jobname NightlySave $JobName start_test cat <tmp/bconcmds @$out /dev/null messages @$out tmp/log1.out label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default @# do a bunch of saves so we have 12 files on the tape @#setdebug level=100 dir setdebug level=100 storage=DDS-4 run job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes run level=Full job=$JobName yes wait messages quit END_OF_DATA run_bacula scripts/check_for_zombie_jobs storage=DDS-4 cat <tmp/bconcmds @$out /dev/null messages @$out tmp/log2.out @# @# now do a restore @# restore where=${cwd}/tmp/bacula-restores storage=DDS-4 3 @# select JobId=4 (i.e. file five on the tape) 4 cd ${cwd}/build @# mark a single file mark configure done yes wait messages quit END_OF_DATA run_bconsole scripts/check_for_zombie_jobs storage=DDS-4 # Now write to tape one more time cat <tmp/bconcmds @$out /dev/null messages @$out tmp/log3.out run level=Full job=$JobName yes wait messages quit END_OF_DATA run_bconsole check_for_zombie_jobs storage=DDS-4 stop_bacula check_two_logs grep "^ Termination: *Backup OK" tmp/log3.out 2>&1 >/dev/null dstat=$? end_test