#!/bin/sh # # Copyright (C) 2000-2015 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # # 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=tape 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=50 storage=tape 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=tape cat <tmp/bconcmds @$out /dev/null messages @$out tmp/log2.out @# @# now do a restore @# restore where=${cwd}/tmp/bacula-restores storage=tape 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=tape # 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=tape stop_bacula check_two_logs grep "^ Termination: *Backup OK" tmp/log3.out 2>&1 >/dev/null dstat=$? end_test