Skip to content

Commit

Permalink
systemtests: add fileset-multiple-blocks test
Browse files Browse the repository at this point in the history
This test combines the two tests fileset-multiple-include-blocks and
fileset-multiple-options-blocks by using ctest fixtures.
  • Loading branch information
joergsteffens committed Sep 20, 2021
1 parent 86289ce commit ffa3793
Show file tree
Hide file tree
Showing 56 changed files with 133 additions and 318 deletions.
6 changes: 5 additions & 1 deletion systemtests/scripts/functions
Expand Up @@ -824,7 +824,11 @@ end_test()
fi
ENDDATE="$(date +%R:%S)"

"${rscripts}/bareos" stop
# Stop the Bareos daemons only
# if a single test is defined.
if [[ "$0" == *testrunner ]]; then
"${rscripts}/bareos" stop
fi

if [ "$estat" != "0" ] ; then
echo " "
Expand Down
3 changes: 1 addition & 2 deletions systemtests/tests/CMakeLists.txt
Expand Up @@ -38,8 +38,7 @@ add_subdirectory(deprecation)
add_subdirectory(droplet-s3)
add_subdirectory(encrypt-signature)
add_subdirectory(encrypt-signature-tls-cert)
add_subdirectory(fileset-multiple-include-blocks)
add_subdirectory(fileset-multiple-options-blocks)
add_subdirectory(fileset-multiple-blocks)
add_subdirectory(filesets)
add_subdirectory(gfapi-fd)
add_subdirectory(glusterfs-backend)
Expand Down
@@ -1,30 +1,30 @@
FileSet {
Name = "FS_TESTJOB"
Name = "fileset-multi-includes"
Include {
Options {
signature = MD5
}
File=@tmpdir@/data/data1
File=@tmpdir@/data-multi-includes/data1
}
Include {
Options {
signature = MD5
compression = GZIP
}
File=@tmpdir@/data/data2
File=@tmpdir@/data-multi-includes/data2
}
Include {
Options {
signature = MD5
compression = GZIP9
}
File=@tmpdir@/data/data3
File=@tmpdir@/data-multi-includes/data3
}
Include {
Options {
signature = MD5
compression = LZ4
}
File=@tmpdir@/data/data4
File=@tmpdir@/data-multi-includes/data4
}
}
@@ -0,0 +1,35 @@
FileSet {
Name = "fileset-multi-options"
Include {

Options {
signature = MD5
wilddir = @tmpdir@/data-multi-options/*1
wild = @tmpdir@/data-multi-options/*1/*
}
Options {
signature = MD5
compression = GZIP
wilddir = @tmpdir@/data-multi-options/*2
wild = @tmpdir@/data-multi-options/*2/*
}
Options {
signature = MD5
compression = GZIP9
wilddir = @tmpdir@/data-multi-options/*3
wild = @tmpdir@/data-multi-options/*3/*
}
Options {
signature = MD5
compression = LZ4
wilddir = @tmpdir@/data-multi-options/*4
wild = @tmpdir@/data-multi-options/*4/*
}
Options {
exclude = yes
wilddir = @tmpdir@/data-multi-options/*
}

File=@tmpdir@/data-multi-options/
}
}
@@ -0,0 +1,6 @@
Job {
Name = "RestoreFiles"
Type = Restore
JobDefs = "DefaultJob"
Where = @tmp@/bareos-restores
}
@@ -1,6 +1,7 @@
Job {
Name = "backup-bareos-fd"
Name = "backup-multi-includes"
JobDefs = "DefaultJob"
Type = Backup
Client = "bareos-fd"
Fileset = "fileset-multi-includes"
}
@@ -1,6 +1,7 @@
Job {
Name = "backup-bareos-fd"
Name = "backup-multi-options"
JobDefs = "DefaultJob"
Type = Backup
Client = "bareos-fd"
Fileset = "fileset-multi-options"
}
Expand Up @@ -3,7 +3,7 @@ JobDefs {
Type = Backup
Level = Incremental
Client = bareos-fd
FileSet = "FS_TESTJOB"
FileSet = "SelfTest"
Storage = File1
Messages = Standard
Pool = Incremental
Expand Down
@@ -0,0 +1,9 @@
Pool {
Name = Differential
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Maximum Volume Bytes = 10M
Maximum Volumes = 1
Label Format = "Differential-"
}
@@ -0,0 +1,9 @@
Pool {
Name = Full
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Maximum Volume Bytes = 10M
Maximum Volumes = 1
Label Format = "Full-"
}
@@ -0,0 +1,9 @@
Pool {
Name = Incremental
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Maximum Volume Bytes = 10M
Maximum Volumes = 1
Label Format = "Incremental-"
}
Expand Up @@ -3,52 +3,49 @@ set -e
set -o pipefail
set -u

#shellcheck source=../environment.in
. ./environment

#shellcheck source=../scripts/functions
. "${rscripts}"/functions

#
# Check backups with different compression options.
#

TestName="$(basename "$(pwd)")"
TestName="$(get_test_name "$0")"
export TestName

# set other test specific variables
Client=bareos-fd
JobName=backup-bareos-fd
JobName=backup-multi-includes
Fileset=fileset-multi-includes
Storage=File1
VolumeName=TestVolume001
DataDirs="1 2 3 4"


#shellcheck source=../environment.in
. ./environment

#shellcheck source=../scripts/functions
. "${rscripts}"/functions
"${rscripts}"/cleanup
"${rscripts}"/setup
VolumeName=Full-0001

export BackupDirectory="${tmp}/data-multi-includes"
BackupFileExtra=${BackupDirectory}/extrafile.txt

for i in $DataDirs; do
mkdir -p ${tmp}/data/data$i
echo "test" > ${tmp}/data/data$i/test.dat
done

start_test

for i in 1 2 3 4; do
mkdir -p ${BackupDirectory}/data$i
echo "test" > ${BackupDirectory}/data${i}/test.dat
done

# ${tmp}/bconcmds lists the bconsole commands executed by "run_bareos"
cat <<END_OF_DATA >${tmp}/bconcmds
messages
show fileset=FS_TESTJOB
show fileset=${Fileset}
@$out ${tmp}/log1.out w
label storage=${Storage} volume=${VolumeName} pool=Full
run job=$JobName yes
run job=$JobName level=Full yes
wait
messages
@#
@# now do a restore
@#
@$out ${tmp}/log2.out w
restore client=${Client} where=${tmp}/bareos-restores select
restore client=${Client} fileset=${Fileset} where=${tmp}/bareos-restores select
unmark *
mark *
done
Expand All @@ -61,32 +58,31 @@ END_OF_DATA
# Start the bareos daemons
# and run the bconsole commands from ${tmp}/bconcmds
# Further bconsole commands can be executed by "run_bconsole".
run_bareos
run_bconsole

# verify that all are terminated
check_for_zombie_jobs storage=File1 client=${Client}

# stop bareos
stop_bareos

# check tmp/log1.out and tmp/log2.out for errors
check_two_logs

# check for differences between original files and restored files
# gives an error, because top-level data directory is not backed up
# (and has therefore other permissions)
for i in $DataDirs; do
check_restore_diff ${BackupDirectory}/data$i
done
check_restore_diff ${BackupDirectory}/data1
check_restore_diff ${BackupDirectory}/data2
check_restore_diff ${BackupDirectory}/data3
check_restore_diff ${BackupDirectory}/data4


# do some manual testing
if ! [ -d ${BackupDirectory} ]; then
set_error "Directory ${BackupDirectory} does not exists any more."
fi


check_compression "${Storage}" "${VolumeName}" "1" "${tmp}/data/data2/test.dat" "gzip"
check_compression "${Storage}" "${VolumeName}" "1" "${tmp}/data/data3/test.dat" "gzip" "9"
check_compression "${Storage}" "${VolumeName}" "1" "${BackupDirectory}/data2/test.dat" "gzip"
check_compression "${Storage}" "${VolumeName}" "1" "${BackupDirectory}/data3/test.dat" "gzip" "9"
# Warning: LZ4 compression support requested in fileset but not available on this platform. Disabling ...
#check_compression "${Storage}" "${VolumeName}" "1" "${tmp}/data/data3/test.dat" "LZ4"

Expand Down
Expand Up @@ -3,50 +3,49 @@ set -e
set -o pipefail
set -u

#shellcheck source=../environment.in
. ./environment

#shellcheck source=../scripts/functions
. "${rscripts}"/functions

#
# Check backups with different compression options.
#

TestName="$(basename "$(pwd)")"
TestName="$(get_test_name "$0")"
export TestName

# set other test specific variables
Client=bareos-fd
JobName=backup-bareos-fd
JobName=backup-multi-options
Fileset=fileset-multi-options
Storage=File1
VolumeName=TestVolume001

#shellcheck source=../environment.in
. ./environment

#shellcheck source=../scripts/functions
. "${rscripts}"/functions
"${rscripts}"/cleanup
"${rscripts}"/setup
VolumeName=Full-0001

export BackupDirectory="${tmp}/data-multi-options"
BackupFileExtra=${BackupDirectory}/extrafile.txt

start_test

for i in 1 2 3 4 5 6; do
mkdir -p ${tmp}/data/data$i
echo "test" > ${tmp}/data/data${i}/test.dat
mkdir -p ${BackupDirectory}/data$i
echo "test" > ${BackupDirectory}/data${i}/test.dat
done

start_test

# ${tmp}/bconcmds lists the bconsole commands executed by "run_bareos"
cat <<END_OF_DATA >${tmp}/bconcmds
messages
show fileset=FS_TESTJOB
show fileset=${Fileset}
@$out ${tmp}/log1.out w
label storage=${Storage} volume=${VolumeName} pool=Full
run job=$JobName storage=${Storage} yes
run job=$JobName level=Full yes
wait
messages
@#
@# now do a restore
@#
@$out ${tmp}/log2.out w
restore client=${Client} where=${tmp}/bareos-restores select storage=${Storage}
restore client=${Client} fileset=${Fileset} where=${tmp}/bareos-restores select
unmark *
mark *
done
Expand All @@ -59,14 +58,11 @@ END_OF_DATA
# Start the bareos daemons
# and run the bconsole commands from ${tmp}/bconcmds
# Further bconsole commands can be executed by "run_bconsole".
run_bareos
run_bconsole

# verify that all are terminated
check_for_zombie_jobs storage=File1 client=${Client}

# stop bareos
stop_bareos

# check tmp/log1.out and tmp/log2.out for errors
check_two_logs

Expand All @@ -91,8 +87,9 @@ if ! [ -d ${BackupDirectory} ]; then
set_error "Directory ${BackupDirectory} does not exists any more."
fi

check_compression "${Storage}" "${VolumeName}" "1" "${tmp}/data/data2/test.dat" "gzip"
check_compression "${Storage}" "${VolumeName}" "1" "${tmp}/data/data3/test.dat" "gzip" "9"

check_compression "${Storage}" "${VolumeName}" "1" "${BackupDirectory}/data2/test.dat" "gzip"
check_compression "${Storage}" "${VolumeName}" "1" "${BackupDirectory}/data3/test.dat" "gzip" "9"
# Warning: LZ4 compression support requested in fileset but not available on this platform. Disabling ...
#check_compression "${Storage}" "${VolumeName}" "1" "${tmp}/data/data3/test.dat" "LZ4"

Expand Down

This file was deleted.

This file was deleted.

0 comments on commit ffa3793

Please sign in to comment.