#!/bin/sh # # Copyright (C) 2000-2015 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # # Run a backup of the full bacula build directory, but with the # Maximum File Size set. Then do a restore of a few files to kick in # disk seeking (not yet enabled), and ensure that the restored files # match. Even though disk seeking is not yet enabled, this is a good test, # and once it is enabled, this will test it. # TestName="restore-disk-seek-test" JobName=restore-disk-seek . scripts/functions scripts/cleanup scripts/copy-test-confs echo "${cwd}/tmp/build" >${cwd}/tmp/file-list rm -rf ${cwd}/tmp/build mkdir -p ${cwd}/tmp/build # Copy only the .c files (to be restored) # set files to "*.c" for all c files files="ua_tree.c ua_update.c" # files="*.c" for i in ${files}; do cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build done cd ${cwd}/tmp/build ls >../1 cd .. sed s%\^%${cwd}/tmp/build/% 1 | sort | uniq >restore-list # # At this point restore-list contains the list # of files we will restore # rm -f 1 cd ${cwd} # # Now arrange to backup *everything* # rm -rf ${cwd}/tmp/build mkdir -p ${cwd}/tmp/build cp -fp ${cwd}/build/src/dird/* ${cwd}/tmp/build # # Enable MaximumFileSize to ensure lots of JobMedia records and thus # lots of seeking # cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf change_jobname CompressedTest $JobName start_test cat <${cwd}/tmp/bconcmds @output /dev/null messages @$out ${cwd}/tmp/log1.out label storage=File volume=TestVolume001 run job=$JobName yes wait messages @# @# now do a restore @# @$out ${cwd}/tmp/log2.out setdebug level=30 fd setdebug level=11 storage=File sql @# print the JobMedia records select * from JobMedia; restore bootstrap=${cwd}/tmp/kern.bsr where=${cwd}/tmp/bacula-restores storage=File 7 <${cwd}/tmp/restore-list yes wait messages quit END_OF_DATA run_bacula check_for_zombie_jobs storage=File stop_bacula # Now setup a control directory of only what we *should* restore rm -rf ${cwd}/tmp/build mkdir -p ${cwd}/tmp/build for i in ${files}; do cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build done check_two_logs check_restore_tmp_build_diff end_test