]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
BEE Backport regress/tests/many-incremental-test
authorEric Bollengier <eric@baculasystems.com>
Wed, 2 Sep 2020 13:28:12 +0000 (15:28 +0200)
committerEric Bollengier <eric@baculasystems.com>
Tue, 1 Mar 2022 14:36:18 +0000 (15:36 +0100)
This commit is the result of the squash of the following main commits:

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Tue Jul 21 10:28:13 2020 +0200

    regress: Add copyright to regress scripts

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Tue Mar 5 10:35:10 2019 +0100

    regress: Fix tests for ubuntu

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Fri Jun 26 10:40:27 2015 +0200

    regress: Add many-incremental-test

regress/tests/many-incremental-test [new file with mode: 0755]

diff --git a/regress/tests/many-incremental-test b/regress/tests/many-incremental-test
new file mode 100755 (executable)
index 0000000..5e7fc12
--- /dev/null
@@ -0,0 +1,84 @@
+#!/bin/sh
+#
+# Copyright (C) 2000-2020 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
+# Run a simple backup of a directory with many files multiple times
+#  in // over multiple volumes, and run a restore for each Job.
+#
+TestName="many-incremental-test"
+JobName=backup
+. scripts/functions
+
+scripts/cleanup
+scripts/copy-test-confs
+echo "$tmp/files" >${cwd}/tmp/file-list
+
+$bperl -e 'add_attribute("$conf/bacula-sd.conf", "Maximum Concurrent Jobs", "50", "Device")'
+$bperl -e 'add_attribute("$conf/bacula-sd.conf", "Maximum Concurrent Jobs", "50", "Storage")'
+$bperl -e 'add_attribute("$conf/bacula-dir.conf", "Maximum Concurrent Jobs", "50", "Storage")'
+$bperl -e 'add_attribute("$conf/bacula-dir.conf", "Maximum Concurrent Jobs", "50", "Director")'
+$bperl -e 'add_attribute("$conf/bacula-dir.conf", "Maximum Concurrent Jobs", "50", "Client")'
+$bperl -e 'add_attribute("$conf/bacula-dir.conf", "Maximum Concurrent Jobs", "50", "Job")'
+
+$bperl -e 'add_attribute("$conf/bacula-sd.conf", "Maximum File Size", "5MB", "Device")'
+$bperl -e 'add_attribute("$conf/bacula-dir.conf", "SpoolData", "no", "Job")'
+$bperl -e 'add_attribute("$conf/bacula-dir.conf", "Accurate", "yes", "Job")'
+director=`$bperl -e "get_dirname()"`
+
+change_jobname NightlySave $JobName
+start_test
+
+$bperl -e 'create_many_files("$tmp/files", 300000, 10000)'
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@output /dev/null
+messages
+@$out ${cwd}/tmp/log1.out
+label storage=File volume=TestVolume001 drive=0 slot=0
+messages
+quit
+END_OF_DATA
+
+run_bacula
+
+# compress the volume at the filesystem level if possible
+chattr +c $tmp/TestVolume001 2> /dev/null
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out ${cwd}/tmp/log1.out
+run job=$JobName yes
+wait
+messages
+quit
+END_OF_DATA
+
+# run the full backup
+run_bconsole
+
+for i in `seq 1 30`
+do
+    $bperl -e 'update_some_files_rep("$tmp/files")'
+    run_bconsole
+done
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out ${cwd}/tmp/log2.out
+restore select all done where=$tmp/bacula-restores
+@exec "cp $working/$director.restore.1.bsr $working/restore1.bsr"
+yes
+wait
+messages
+quit
+END_OF_DATA
+
+run_bconsole
+
+check_for_zombie_jobs storage=File
+stop_bacula
+
+$rscripts/diff.pl -s $tmp/files -d $tmp/bacula-restores/$tmp/files
+dstat=$?
+
+check_two_logs
+end_test