]> git.sur5r.net Git - bacula/bacula/commitdiff
Initial revision
authorKern Sibbald <kern@sibbald.com>
Thu, 24 Apr 2003 17:32:27 +0000 (17:32 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 24 Apr 2003 17:32:27 +0000 (17:32 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@457 91ce42f0-d328-0410-95d8-f526ca767f89

26 files changed:
regress/.cvsignore [new file with mode: 0644]
regress/README [new file with mode: 0644]
regress/all-non-root-tests [new file with mode: 0755]
regress/all-tests [new file with mode: 0755]
regress/scripts/.cvsignore [new file with mode: 0644]
regress/scripts/copy-confs [new file with mode: 0755]
regress/scripts/copy-test-confs [new file with mode: 0755]
regress/scripts/do_sed [new file with mode: 0755]
regress/scripts/exclude-dev-test [new file with mode: 0644]
regress/scripts/exclude-etc-test [new file with mode: 0644]
regress/scripts/exclude-lib-test [new file with mode: 0644]
regress/scripts/regress-config [new file with mode: 0755]
regress/scripts/setup [new file with mode: 0755]
regress/scripts/test-bacula-dir.conf.in [new file with mode: 0644]
regress/scripts/test-bacula-fd.conf.in [new file with mode: 0644]
regress/scripts/test-bacula-sd.conf.in [new file with mode: 0644]
regress/scripts/test-console.conf.in [new file with mode: 0644]
regress/tests/backup-bacula-test [new file with mode: 0755]
regress/tests/compressed-test [new file with mode: 0755]
regress/tests/dev-test-root [new file with mode: 0755]
regress/tests/etc-test-root [new file with mode: 0755]
regress/tests/lib-test-root [new file with mode: 0755]
regress/tests/sparse-compressed-test [new file with mode: 0755]
regress/tests/sparse-test [new file with mode: 0755]
regress/tests/test0 [new file with mode: 0755]
regress/tests/two-jobs-test [new file with mode: 0755]

diff --git a/regress/.cvsignore b/regress/.cvsignore
new file mode 100644 (file)
index 0000000..57d10e1
--- /dev/null
@@ -0,0 +1,3 @@
+build
+bin
+test.out
diff --git a/regress/README b/regress/README
new file mode 100644 (file)
index 0000000..a087726
--- /dev/null
@@ -0,0 +1,51 @@
+     Bacula Regression
+     Kern Sibbald
+     April 2003
+
+This is Bacula's regression script directory.
+
+To set it up, first edit Makefile and set BACULA-SOURCE to point
+to your source.
+
+Second, make sure that depkgs is in the parent directory of this
+directory (i.e. at the same level) and that it is pre-built.
+
+Then do:
+
+   make setup
+
+You run the above one time.
+
+Then you can run any of the tests in the tests subdirectory.
+Each test whose name ends in -root requires you to be root for
+a resonable run.  Each test is totally independent of any other
+test. Aside from the required "make setup", each test is totally
+self-initalizing and should clean up after itself.
+
+Not all the tests yet report OK.  This is simply because there are
+some spurious differences that I haven't yet taken the time to
+eliminate.
+
+The tests expect you to execute them from the main regress 
+directory!               
+
+You can run them individually as:
+
+   tests/two-jobs-test
+
+or all tests:
+
+   su
+   ./all-tests
+
+or all non-root tests
+
+  ./all-non-root-tests
+
+after running the root tests, while still root, it is a good idea
+to do:
+
+   make reset
+
+this cleans up any files that may be created with root permissions.
+
diff --git a/regress/all-non-root-tests b/regress/all-non-root-tests
new file mode 100755 (executable)
index 0000000..64d87e5
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# Run all tests
+#
+tests/test0
+tests/backup-bacula-test
+tests/sparse-test
+tests/compressed-test
+tests/sparse-compressed-test
+tests/wierd-files-test
+tests/two-jobs-test
+cat test.out
diff --git a/regress/all-tests b/regress/all-tests
new file mode 100755 (executable)
index 0000000..d8b5d1a
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# Run all tests
+#
+tests/test0
+tests/backup-bacula-test
+tests/sparse-test
+tests/compressed-test
+tests/sparse-compressed-test
+tests/wierd-files-test
+tests/two-jobs-test
+tests/dev-test-root
+tests/etc-test-root
+tests/lib-test-root
+cat test.out
diff --git a/regress/scripts/.cvsignore b/regress/scripts/.cvsignore
new file mode 100644 (file)
index 0000000..8e10c79
--- /dev/null
@@ -0,0 +1,8 @@
+bacula-dir.conf
+bacula-fd.conf
+bacula-sd.conf
+console.conf
+test-bacula-dir.conf
+test-bacula-fd.conf
+test-bacula-sd.conf
+test-console.conf
diff --git a/regress/scripts/copy-confs b/regress/scripts/copy-confs
new file mode 100755 (executable)
index 0000000..ee77a34
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+/bin/cp -f scripts/bacula-dir.conf bin/bacula-dir.conf
+/bin/cp -f scripts/bacula-sd.conf bin/bacula-sd.conf
+/bin/cp -f scripts/bacula-fd.conf bin/bacula-fd.conf
+/bin/cp -f scripts/console.conf bin/console.conf
diff --git a/regress/scripts/copy-test-confs b/regress/scripts/copy-test-confs
new file mode 100755 (executable)
index 0000000..45a30a2
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+/bin/cp -f scripts/test-bacula-dir.conf bin/bacula-dir.conf
+/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf
+/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf
+/bin/cp -f scripts/test-console.conf bin/console.conf
diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed
new file mode 100755 (executable)
index 0000000..61ea5fc
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+out="/tmp/sed_tmp"
+cwd=`pwd`
+# Create sed command script
+echo "s%@sbindir@%${cwd}/bin%g" >${out}
+echo "s%@scriptdir@%${cwd}/bin%g" >>${out}
+echo "s%@working_dir@%${cwd}/bin/working%g" >>${out}
+echo "s%@piddir@%${cwd}/bin/working%g" >>${out}
+echo "s%@subsysdir@%${cwd}/bin/working%g" >>${out}
+
+# process .in files with sed script
+sed -f ${out} ${cwd}/scripts/test-bacula-dir.conf.in >${cwd}/scripts/test-bacula-dir.conf
+sed -f ${out} ${cwd}/scripts/test-bacula-fd.conf.in >${cwd}/scripts/test-bacula-fd.conf
+sed -f ${out} ${cwd}/scripts/test-bacula-sd.conf.in >${cwd}/scripts/test-bacula-sd.conf
+sed -f ${out} ${cwd}/scripts/test-console.conf.in >${cwd}/scripts/test-console.conf
+
+rm -f ${out}
diff --git a/regress/scripts/exclude-dev-test b/regress/scripts/exclude-dev-test
new file mode 100644 (file)
index 0000000..4165ea1
--- /dev/null
@@ -0,0 +1,5 @@
+dev/ptmx
+dev/pts
+dev/rd/c5d2
+dev/rd
+dev/shm
diff --git a/regress/scripts/exclude-etc-test b/regress/scripts/exclude-etc-test
new file mode 100644 (file)
index 0000000..f59ca8d
--- /dev/null
@@ -0,0 +1 @@
+etc/mail/statistics
diff --git a/regress/scripts/exclude-lib-test b/regress/scripts/exclude-lib-test
new file mode 100644 (file)
index 0000000..5be32f4
--- /dev/null
@@ -0,0 +1,5 @@
+lib/ld-2.2.5.so
+lib/libtermcap.so.2.0.8
+lib/libc-2.2.5.so
+lib/libnsl-2.2.5.so
+lib/libnss_files-2.2.5.so
diff --git a/regress/scripts/regress-config b/regress/scripts/regress-config
new file mode 100755 (executable)
index 0000000..2e95818
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# This is the configuration script for regression testing
+#
+
+CFLAGS="-g -O2 -Wall" \
+ ./configure \
+    --sbindir=$1/bin \
+    --sysconfdir=$1/bin \
+    --with-pid-dir=$1/bin/working \
+    --with-subsys-dir=$1/bin/working \
+    --enable-smartalloc \
+    --with-sqlite=$1/../depkgs/sqlite \
+    --with-working-dir=$1/bin/working \
+    --with-dump-email=kern+ok@sibbald.com \
+    --with-job-email=kern+ok@sibbald.com \
+    --with-baseport=8101 
+
+exit 0
diff --git a/regress/scripts/setup b/regress/scripts/setup
new file mode 100755 (executable)
index 0000000..e6d4c55
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# Script to setup running Bacula regression tests
+#
+cwd=`pwd`
+if [ $# != 1 ] ; then
+   echo "Arg 1 must be a Bacula release directory."
+   echo " "
+   exit 1
+fi
+if [ ! -d $1 ] ; then
+   echo "Arg 1 must be a Bacula release directory."
+   echo " "
+   exit 1
+fi
+if [ ! -d ../depkgs ] ; then
+   cd ..
+   cwd=`pwd`
+   echo "The regression scripts require ${cwd}/depkgs but not found!" 
+   echo " "
+   exit 1
+fi
+rm -rf build bin
+cp -rp $1 build
+cp scripts/regress-config build
+cd build
+./regress-config ${cwd}
+make
+make install
+cp src/tools/testls ../bin
+
+cd ..
+bin/bacula stop
+bin/create_sqlite_database
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/bacula stop
+#
+# Save Bacula default conf files for later use
+#
+scripts/do_sed
diff --git a/regress/scripts/test-bacula-dir.conf.in b/regress/scripts/test-bacula-dir.conf.in
new file mode 100644 (file)
index 0000000..603fd48
--- /dev/null
@@ -0,0 +1,247 @@
+#
+# Default Bacula Director Configuration file
+#
+#  The only thing that MUST be changed is to add one or more
+#   file or directory names in the Include directive of the
+#   FileSet resource.
+#
+#  For Bacula release 1.30 (12 April 2003) -- redhat 7.3
+#
+#  You might also want to change the default email address
+#   from root to your address.  See the "mail" and "operator"
+#   directives in the Messages resource.
+#
+
+Director {                            # define myself
+  Name = rufus-dir
+  DIRport = 8101                # where we listen for UA connections
+  QueryFile = "@scriptdir@/query.sql"
+  WorkingDirectory = "@working_dir@"
+  PidDirectory = "@piddir@"
+  SubSysDirectory = "@subsysdir@"
+  Maximum Concurrent Jobs = 1
+  Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3"         # Console password
+  Messages = Standard
+}
+
+#
+# Define the main nightly save backup job
+#   By default, this job will back up to disk in /tmp
+Job {
+  Name = "NightlySave"
+  Type = Backup
+  Client=rufus-fd 
+  FileSet="Full Set"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+Job {
+  Name = "SparseTest"
+  Type = Backup
+  Client=rufus-fd 
+  FileSet="SparseSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+Job {
+  Name = "CompressedTest"
+  Type = Backup
+  Client=rufus-fd 
+  FileSet="CompressedSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+Job {
+  Name = "SparseCompressedTest"
+  Type = Backup
+  Client=rufus-fd 
+  FileSet="SparseCompressedSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+
+
+
+# Backup the catalog database (after the nightly save)
+Job {
+  Name = "BackupCatalog"
+  Type = Backup
+  Client=rufus-fd 
+  FileSet="Catalog"
+#  Schedule = "WeeklyCycleAfterBackup"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  # This creates an ASCII copy of the catalog
+  RunBeforeJob = "@sbindir@/make_catalog_backup -u bacula"
+  # This deletes the copy of the catalog
+  RunAfterJob  = "@sbindir@/delete_catalog_backup"
+  Write Bootstrap = "@working_dir@/BackupCatalog.bsr"
+}
+
+# Standard Restore template, to be changed by Console program
+Job {
+  Name = "RestoreFiles"
+  Type = Restore
+  Client=rufus-fd 
+  FileSet="Full Set"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Where = /tmp/bacula-restores
+}
+
+
+# List of files to be backed up
+FileSet {
+  Name = "Full Set"
+  Include = signature=MD5 { 
+    </tmp/file-list
+  }
+}
+
+FileSet {
+  Name = "SparseSet"
+  Include = signature=MD5 sparse=yes { 
+    </tmp/file-list
+  }
+}
+
+FileSet {
+  Name = "CompressedSet"
+  Include = signature=MD5 compression=GZIP { 
+    </tmp/file-list
+  }
+}
+
+FileSet {
+  Name = "SparseCompressedSet"
+  Include = signature=MD5 compression=GZIP { 
+    </tmp/file-list
+  }
+}
+
+
+
+#
+# When to do the backups, full backup on first sunday of the month,
+#  differential (i.e. incremental since full) every other sunday,
+#  and incremental backups other days
+Schedule {
+  Name = "WeeklyCycle"
+  Run = Full 1st sun at 1:05
+  Run = Differential 2nd-5th sun at 1:05
+  Run = Incremental mon-sat at 1:05
+}
+
+# This schedule does the catalog. It starts after the WeeklyCycle
+Schedule {
+  Name = "WeeklyCycleAfterBackup"
+  Run = Full sun-sat at 1:10
+}
+
+# This is the backup of the catalog
+FileSet {
+  Name = "Catalog"
+  Include = signature=MD5 {
+     /home/kern/bacula/regress/bin/working/bacula.sql
+  }
+}
+
+# Client (File Services) to backup
+Client {
+  Name = rufus-fd
+  Address = rufus
+  FDPort = 8102
+  Catalog = MyCatalog
+  Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc"          # password for FileDaemon
+  File Retention = 30d                # 30 days
+  Job Retention = 180d                # six months
+  AutoPrune = yes                     # Prune expired Jobs/Files
+}
+
+# Definiton of file storage device
+Storage {
+  Name = File
+  Address = rufus                # N.B. Use a fully qualified name here
+  SDPort = 8103
+  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+  Device = FileStorage
+  Media Type = File
+}
+
+# Definition of DLT tape storage device
+#Storage {
+#  Name = DLTDrive
+#  Address = rufus                # N.B. Use a fully qualified name here
+#  SDPort = 8103
+#  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"          # password for Storage daemon
+#  Device = "HP DLT 80"                # must be same as Device in Storage daemon
+#  Media Type = DLT8000                # must be same as MediaType in Storage daemon
+#}
+
+# Definition of DDS tape storage device
+#Storage {
+#  Name = SDT-10000
+#  Address = rufus                # N.B. Use a fully qualified name here
+#  SDPort = 8103
+#  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"          # password for Storage daemon
+#  Device = SDT-10000                  # must be same as Device in Storage daemon
+#  Media Type = DDS-4                  # must be same as MediaType in Storage daemon
+#}
+
+# Definition of 8mm tape storage device
+#Storage {
+#  Name = "8mmDrive"
+#  Address = rufus                # N.B. Use a fully qualified name here
+#  SDPort = 8103
+#  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+#  Device = "Exabyte 8mm"
+#  MediaType = "8mm"
+#}
+
+
+# Generic catalog service
+Catalog {
+  Name = MyCatalog
+  dbname = bacula; user = bacula; password = ""
+}
+
+# Reasonable message delivery -- send most everything to email address
+#  and to the console
+Messages {
+  Name = Standard
+  mailcommand = "@sbindir@/smtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
+  operatorcommand = "@sbindir@/smtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
+  MailOnError = kern+ok@sibbald.com = all
+  operator = kern+ok@sibbald.com = mount
+  console = all, !skipped
+#
+# WARNING! the following will create a file that you must cycle from
+#          time to time as it will grow indefinitely. However, it will
+#          also keep all your messages if the scroll off the console.
+#
+  append = "@working_dir@/log" = all, !skipped
+}
+    
+# Default pool definition
+Pool {
+  Name = Default
+  Pool Type = Backup
+  Recycle = yes                       # Bacula can automatically recycle Volumes
+  AutoPrune = yes                     # Prune expired volumes
+  Volume Retention = 365d             # one year
+  Accept Any Volume = yes             # write on any volume in the pool
+}
diff --git a/regress/scripts/test-bacula-fd.conf.in b/regress/scripts/test-bacula-fd.conf.in
new file mode 100644 (file)
index 0000000..c9c21b6
--- /dev/null
@@ -0,0 +1,33 @@
+#
+# Default  Bacula File Daemon Configuration file
+#
+#  For Bacula release 1.30 (12 April 2003) -- redhat 7.3
+#
+# There is not much to change here except perhaps the
+# File daemon Name to
+#
+
+#
+# List Directors who are permitted to contact this File daemon
+#
+Director {
+  Name = rufus-dir
+  Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc"
+}
+
+#
+# "Global" File daemon configuration specifications
+#
+FileDaemon {                          # this is me
+  Name = rufus-fd
+  FDport = 8102                  # where we listen for the director
+  WorkingDirectory = "@working_dir@"
+  Pid Directory = "@piddir@"
+  SubSys Directory = "@subsysdir@"
+}
+
+# Send all messages except skipped files back to Director
+Messages {
+  Name = Standard
+  director = rufus-dir = all
+}
diff --git a/regress/scripts/test-bacula-sd.conf.in b/regress/scripts/test-bacula-sd.conf.in
new file mode 100644 (file)
index 0000000..113f54f
--- /dev/null
@@ -0,0 +1,94 @@
+#
+# Default Bacula Storage Daemon Configuration file
+#
+#  For Bacula release 1.30 (12 April 2003) -- redhat 7.3
+#
+# You may need to change the name of your tape drive
+#   on the "Archive Device" directive in the Device
+#   resource.  If you change the Name and/or the 
+#   "Media Type" in the Device resource, please ensure
+#   that dird.conf has corresponding changes.
+#
+
+Storage {                             # definition of myself
+  Name = rufus-sd
+  SDPort = 8103                  # Director's port      
+  WorkingDirectory = "@working_dir@"
+  Pid Directory = "@piddir@"
+  Subsys Directory = "@subsysdir@"
+}
+
+#
+# List Directors who are permitted to contact Storage daemon
+#
+Director {
+  Name = rufus-dir
+  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+}
+
+#
+# Devices supported by this Storage daemon
+# To connect, the Director's bacula-dir.conf must have the
+#  same Name and MediaType. 
+#
+
+Device {
+  Name = FileStorage
+  Media Type = File
+  Archive Device = /tmp
+  LabelMedia = yes;                   # lets Bacula label unlabelled media
+  Random Access = Yes;
+  AutomaticMount = yes;               # when device opened, read it
+  RemovableMedia = no;
+  AlwaysOpen = no;
+}
+
+#Device {
+#  Name = "HP DLT 80"
+#  Media Type = DLT8000
+#  Archive Device = /dev/nst0
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = yes;
+#  RemovableMedia = yes;
+#}
+
+#Device {
+#  Name = SDT-7000                     # 
+#  Media Type = DDS-2
+#  Archive Device = /dev/nst0
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = yes;
+#  RemovableMedia = yes;
+#}
+
+#Device {
+#  Name = Floppy
+#  Media Type = Floppy
+#  Archive Device = /mnt/floppy
+#  RemovableMedia = yes;
+#  Random Access = Yes;
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = no;
+#}
+
+#
+# A very old Exabyte with no end of media detection
+#
+#Device {
+#  Name = "Exabyte 8mm"
+#  Media Type = "8mm"
+#  Archive Device = /dev/nst0
+#  Hardware end of medium = No;
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = Yes;
+#  RemovableMedia = yes;
+#}
+
+# 
+# Send all messages to the Director, 
+# mount messages also are sent to the email address
+#
+Messages {
+  Name = Standard
+  director = rufus-dir = all
+}
diff --git a/regress/scripts/test-console.conf.in b/regress/scripts/test-console.conf.in
new file mode 100644 (file)
index 0000000..a19d5e1
--- /dev/null
@@ -0,0 +1,10 @@
+#
+# Bacula User Agent (or Console) Configuration File
+#
+
+Director {
+  Name = rufus-dir
+  DIRport = 8101
+  address = rufus
+  Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3"
+}
diff --git a/regress/tests/backup-bacula-test b/regress/tests/backup-bacula-test
new file mode 100755 (executable)
index 0000000..511a88f
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory
+#   then restore it.
+#
+cwd=`pwd`
+scripts/copy-confs
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+@output
+label
+TestVolume001
+run job=NightlySave
+yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+@sleep 1
+wait
+@output /dev/null
+messages
+quit
+END_OF_DATA
+sleep 2
+bin/bacula stop
+diff -ur build /tmp/bacula-restores${cwd}/build
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== Test1 Bacula source failed!!! ===== "
+   echo "  ===== Test1 failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== Test1 Bacula source OK ===== "
+   echo "  ===== Test1 OK ===== " >>test.out
+fi
+rm -rf /tmp/bacula-restores
diff --git a/regress/tests/compressed-test b/regress/tests/compressed-test
new file mode 100755 (executable)
index 0000000..a483cb3
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory using the compressed option
+#   then restore it.
+#
+cwd=`pwd`
+scripts/copy-test-confs
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+echo "${cwd}/build" >/tmp/file-list
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+@output
+label
+TestVolume001
+run job=CompressedTest
+yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+wait
+@output /dev/null
+messages
+quit
+END_OF_DATA
+bin/bacula stop
+diff -ur build /tmp/bacula-restores${cwd}/build
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== compressed-test Bacula source failed!!! ===== "
+   echo "  ===== compressed-test failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== compressed-test Bacula source OK ===== "
+   echo "  ===== compressed-test OK ===== " >>test.out
+fi
+rm -rf /tmp/bacula-restores
diff --git a/regress/tests/dev-test-root b/regress/tests/dev-test-root
new file mode 100755 (executable)
index 0000000..99db4b6
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory
+#   then restore it.
+#
+echo " "
+echo " "
+echo " === /dev save/restore test ==="
+echo " "
+echo " "
+if [ $UID != 0 ] ; then
+   echo " "
+   echo "You must be root to run this test."
+   echo "  ===== dev test failed!!! ===== "
+   echo "  ===== dev test failed!!! ===== " >>test.out
+   echo " "
+   exit 1
+fi
+cwd=`pwd`
+scripts/copy-test-confs
+echo "/dev" >/tmp/file-list
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+label
+TestVolume001
+run job=NightlySave
+yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+@sleep 1
+wait
+messages
+@output
+quit
+END_OF_DATA
+bin/bacula stop
+cd /
+${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >/tmp/original
+cd /tmp/bacula-restores
+${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >/tmp/restored
+diff /tmp/original /tmp/restored
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== dev test failed!!! ===== "
+   echo "  ===== dev test failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== dev test OK ===== "
+   echo "  ===== dev test OK ===== " >>test.out
+   rm -rf /tmp/bacula-restores /tmp/original /tmp/restored
+   rm -rf /tmp/file-list /tmp/job /tmp/TestVolume001
+fi
diff --git a/regress/tests/etc-test-root b/regress/tests/etc-test-root
new file mode 100755 (executable)
index 0000000..b8ab1ac
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory
+#   then restore it.
+#
+echo " "
+echo " "
+echo " === /etc save/restore test ==="
+echo " "
+echo " "
+if [ $UID != 0 ] ; then
+   echo " "
+   echo "You must be root to run this test."
+   echo "  ===== Test4 failed!!! ===== "
+   echo "  ===== Test4 failed!!! ===== " >>test.out
+   echo " "
+   exit 1
+fi
+cwd=`pwd`
+scripts/copy-test-confs
+echo "/etc" >/tmp/file-list
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+label
+TestVolume001
+run job=NightlySave
+yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+@sleep 1
+wait
+messages
+@output
+quit
+END_OF_DATA
+bin/bacula stop
+cd /
+${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >/tmp/original
+cd /tmp/bacula-restores
+${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >/tmp/restored
+diff /tmp/original /tmp/restored
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== Test4 /etc failed!!! ===== "
+   echo "  ===== Test4 failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== Test4 /etc OK ===== "
+   echo "  ===== Test4 OK ===== " >>test.out
+   rm -rf /tmp/bacula-restores /tmp/original /tmp/restored
+   rm -rf /tmp/file-list /tmp/job /tmp/TestVolume001
+fi
diff --git a/regress/tests/lib-test-root b/regress/tests/lib-test-root
new file mode 100755 (executable)
index 0000000..b069eac
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory
+#   then restore it.
+#
+echo " "
+echo " "
+echo " === /lib save/restore test ==="
+echo " "
+echo " "
+if [ $UID != 0 ] ; then
+   echo " "
+   echo "You must be root to run this test."
+   echo "  ===== Test5 failed!!! ===== "
+   echo "  ===== Test5 failed!!! ===== " >>test.out
+   echo " "
+   exit 1
+fi
+cwd=`pwd`
+scripts/copy-test-confs
+echo "/lib" >/tmp/file-list
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+label
+TestVolume001
+run job=NightlySave
+yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+@sleep 1
+wait
+messages
+@output
+quit
+END_OF_DATA
+bin/bacula stop
+cd /
+${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >/tmp/original
+cd /tmp/bacula-restores
+${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >/tmp/restored
+diff /tmp/original /tmp/restored
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== Test5 /lib failed!!! ===== "
+   echo "  ===== Test5 failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== Test5 /lib OK ===== "
+   echo "  ===== Test5 OK ===== " >>test.out
+   rm -rf /tmp/bacula-restores /tmp/original /tmp/restored
+   rm -rf /tmp/file-list /tmp/job /tmp/TestVolume001
+fi
diff --git a/regress/tests/sparse-compressed-test b/regress/tests/sparse-compressed-test
new file mode 100755 (executable)
index 0000000..50b5b9c
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory using the Sparse option
+#   then restore it.
+#
+cwd=`pwd`
+scripts/copy-test-confs
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+echo "${cwd}/build" >/tmp/file-list
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+@output
+label
+TestVolume001
+run job=SparseCompressedTest
+yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+wait
+@output /dev/null
+messages
+quit
+END_OF_DATA
+bin/bacula stop
+diff -ur build /tmp/bacula-restores${cwd}/build
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== sparse-compressed-test Bacula source failed!!! ===== "
+   echo "  ===== sparse-compressed-test failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== sparse-compressed-test Bacula source OK ===== "
+   echo "  ===== sparse-compressed-test OK ===== " >>test.out
+fi
+rm -rf /tmp/bacula-restores
diff --git a/regress/tests/sparse-test b/regress/tests/sparse-test
new file mode 100755 (executable)
index 0000000..4fa9ba4
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory using the Sparse option
+#   then restore it.
+#
+cwd=`pwd`
+scripts/copy-test-confs
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+echo "${cwd}/build" >/tmp/file-list
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+@output
+label
+TestVolume001
+run job=SparseTest
+yes
+wait
+messages
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+wait
+@output /dev/null
+messages
+quit
+END_OF_DATA
+bin/bacula stop
+diff -ur build /tmp/bacula-restores${cwd}/build
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== sparse-test Bacula source failed!!! ===== "
+   echo "  ===== sparse-test failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== sparse-test Bacula source OK ===== "
+   echo "  ===== sparse-test OK ===== " >>test.out
+fi
+rm -rf /tmp/bacula-restores
diff --git a/regress/tests/test0 b/regress/tests/test0
new file mode 100755 (executable)
index 0000000..8a6da1b
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo " " >test.out
diff --git a/regress/tests/two-jobs-test b/regress/tests/two-jobs-test
new file mode 100755 (executable)
index 0000000..b64b781
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory using the compressed option
+#   then backup a second time and finally restore it
+#
+cwd=`pwd`
+scripts/copy-test-confs
+rm -rf /tmp/TestVolume001 /tmp/bacula-restores
+echo "${cwd}/build" >/tmp/file-list
+bin/bacula stop 
+bin/drop_sqlite_tables
+bin/make_sqlite_tables
+bin/bacula start
+bin/console -c bin/console.conf <<END_OF_DATA
+@output /dev/null
+messages
+label
+TestVolume001
+run job=CompressedTest
+yes
+wait
+messages
+quit
+END_OF_DATA
+echo "Backup 1 done"
+touch ${cwd}/build/src/dird/*.c
+bin/console -c bin/console.conf <<END_OF_DATA
+run job=CompressedTest
+yes
+wait
+messages
+@output
+@# 
+@# now do a restore
+@#
+restore
+5
+done
+yes
+wait
+@output /dev/null
+messages
+quit
+END_OF_DATA
+bin/bacula stop
+diff -ur build /tmp/bacula-restores${cwd}/build
+if [ $? != 0 ] ; then
+   echo " "
+   echo " "
+   echo "  ===== two-jobs-test Bacula source failed!!! ===== "
+   echo "  ===== two-jobs-test failed!!! ===== " >>test.out
+   echo " "
+else
+   echo "  ===== two-jobs-test Bacula source OK ===== "
+   echo "  ===== two-jobs-test OK ===== " >>test.out
+fi
+rm -rf /tmp/bacula-restores