--- /dev/null
+#!/bin/sh
+#
+# test the reload and test command
+#
+TestName="reload-test"
+. scripts/functions
+
+require_linux
+scripts/cleanup
+scripts/copy-confs
+
+bstat=0
+rstat=0
+zstat=0
+
+detect_error()
+{
+ $bin/bacula-dir -t $conf/bacula-dir.conf 2>&1 >> $tmp/testconf.log
+ if [ $? = 0 ]; then
+ estat=1
+ print_debug "Should detect error on bacula-dir.conf"
+ fi
+}
+
+do_reload()
+{
+ cat > $tmp/bcons <<EOF
+reload
+messages
+EOF
+ cat $tmp/bcons | $bin/bconsole -c $conf/bconsole.conf 2>&1 >>$tmp/reload.log
+
+ ps $pid > /dev/null
+ if [ $? != 0 ]; then
+ estat=1
+ print_debug "Bacula shouldn't die with a reload"
+ fi
+
+ ls -l /proc/$pid/fd | grep bacula-dir.conf
+ if [ $? = 0 ]; then
+ estat=1
+ print_debug "Should not have bacula-dir.conf open"
+ fi
+}
+
+start_test
+
+# should be ok
+$bin/bacula-dir -t $conf/bacula-dir.conf
+if [ $? != 0 ]; then
+ estat=1
+ print_debug "Error on bacula-dir.conf"
+fi
+
+$bin/bacula-ctl-dir start >/dev/null
+pid=`cat $working/bacula-dir.$BASEPORT.pid`
+read a
+sleep 2
+
+ls -l /proc/$pid/fd | grep bacula-dir.conf
+if [ $? = 0 ]; then
+ estat=1
+ print_debug "Should not have bacula-dir.conf open"
+fi
+
+# should work well
+do_reload
+
+# backup the configuration
+cp $conf/bacula-dir.conf $tmp/1
+cat >> $conf/bacula-dir.conf<<EOF
+This is an error
+EOF
+
+detect_error
+do_reload
+
+cp $tmp/1 $conf/bacula-dir.conf
+cat >> $conf/bacula-dir.conf<<EOF
+Job {
+}
+EOF
+
+detect_error
+do_reload
+
+cp $tmp/1 $conf/bacula-dir.conf
+cat >> $conf/bacula-dir.conf<<EOF
+Director {
+ Name = second-dir
+ DIRport = 1101 # where we listen for UA connections
+ QueryFile = "/tmp/regress/bin/query.sql"
+ WorkingDirectory = "/tmp/regress/working"
+ PidDirectory = "/tmp/regress/working"
+ Maximum Concurrent Jobs = 1
+ Password = "xxx" # Console password
+ Messages = Daemon
+}
+EOF
+
+detect_error
+do_reload
+
+cp $tmp/1 $conf/bacula-dir.conf
+cat >> $conf/bacula-dir.conf<<EOF
+Job {
+ Name = "BackupClient1"
+ JobDefs = "DefaultJob"
+ Write Bootstrap = "/tmp/regress/working/Client1.bsr"
+}
+Job {
+ Name = "BackupClient1"
+ JobDefs = "DefaultJob"
+ Write Bootstrap = "/tmp/regress/working/Client1.bsr"
+}
+EOF
+
+detect_error
+do_reload
+
+$bin/bacula-ctl-dir stop >/dev/null
+
+end_test