#!/bin/sh
#
# Copyright (C) 2000-2026 Kern Sibbald
# License: BSD 2-Clause; see file LICENSE-FOSS
#
# Create a 60MB file with random bytes. Back it up to 6 Volumes
#   each constrained to 10MB using the automatic labeling feature.
#
TestName="six-vol-test"
JobName=SixVol
. scripts/functions

if test ! -c /dev/urandom ; then
   echo "No random device. Test skipped.\n"
   exit 0
fi

scripts/cleanup
scripts/copy-testa-confs
# copy special conf file
/bin/cp -f scripts/testb-bacula-dir.conf bin/bacula-dir.conf

echo "${cwd}/tmp/largefile" >${cwd}/tmp/file-list
# Create 56MB file with random data
#echo "Creating a 56MB file with random data ..."
dd if=/dev/urandom of=${cwd}/tmp/largefile bs=1024 count=55000 >/dev/null 2>&1
#echo "largefile created"

change_jobname MultiVol $JobName
start_test

cat <<END_OF_DATA >${cwd}/tmp/bconcmds
@output /dev/null
messages
@$out ${cwd}/tmp/log1.out
setdebug level=200 storage=File trace=1
run job=$JobName storage=File yes
run job=$JobName storage=File yes
run job=$JobName storage=File yes
run job=$JobName storage=File yes
run job=$JobName storage=File yes
wait
list volumes
messages
@# 
@# now do a restore
@#
@$out ${cwd}/tmp/log2.out
sql
select * from JobMedia where JobId=4;
select * from JobMedia where JobId=5;

setdebug level=200 storage=File trace=1
restore where=${cwd}/tmp/bacula-restores select storage=File
unmark *
mark *
done
yes
wait
messages
quit
END_OF_DATA

run_bacula
check_for_zombie_jobs storage=File
stop_bacula

check_two_logs
#diff ${cwd}/tmp/largefile  ${cwd}/tmp/bacula-restores${cwd}/tmp/largefile 2>&1 >/dev/null
diff ${cwd}/tmp/largefile  ${cwd}/tmp/bacula-restores${cwd}/tmp/largefile
dstat=$?
end_test
