]> git.sur5r.net Git - bacula/bacula/blobdiff - regress/scripts/functions
update configure
[bacula/bacula] / regress / scripts / functions
index 15aea131067724b0f44fd1f65b528aa897650176..7395361cd503be1368fffabb39aedf8b0f8b7a6f 100644 (file)
@@ -5,7 +5,7 @@
 
 check_encoding()
 {
-   ${bin}/bacula-dir -d50 -t -c ${scripts}/bacula-dir.conf 2>&1 | grep 'Wanted SQL_ASCII, got UTF8' >/dev/null
+   ${bin}/bacula-dir -d50 -t -c ${conf}/bacula-dir.conf 2>&1 | grep 'Wanted SQL_ASCII, got UTF8' >/dev/null
    if [ $? = 0 ]; then
        echo "Found database encoding problem, please modify the database encoding (SQL_ASCII)"
        exit 1
@@ -19,14 +19,21 @@ start_test()
    outf="${tmp}/sed_tmp"
    echo "s%  mail =%# mail = %g" >${outf}
    echo "s%  operator =%# operator =%g" >>${outf}
-   cp ${scripts}/bacula-dir.conf ${tmp}/1
-   sed -f ${outf} ${tmp}/1 > ${scripts}/bacula-dir.conf
+   cp ${conf}/bacula-dir.conf ${tmp}/1
+   sed -f ${outf} ${tmp}/1 > ${conf}/bacula-dir.conf
    echo " "
    echo " "
    echo " === Starting $TestName at `date +%R:%S` ==="
-   echo " === Starting $TestName at `date +%R:%S` ===" >> working/log
+   echo " === Starting $TestName at `date +%R:%S` ===" >> ${working}/log
    echo " "
+   export TestName
    export zstat
+   export estat
+   estat=0
+   zstat=0
+   bstat=0
+   rstat=0
+   dstat=0
 }
 
 require_root()
@@ -103,6 +110,10 @@ set_debug()
 
 print_debug()
 {
+   echo $* | grep ERROR > /dev/null
+   if test $? -eq 0; then
+     echo $* >> $tmp/err.log
+   fi
    if test "$debug" -eq 1 ; then
      echo $*
    fi
@@ -115,7 +126,7 @@ check_files_written()
     FILES=`awk '/FD Files Written:/ { last=$4 } END { print last }' $LOG`
 
     if [ "$NB" != "$FILES" ]; then
-        print_debug "Expect $NB files, get $FILES"
+        print_debug "ERROR: Expect $NB files, get $FILES"
         bstat=2
     fi
 }
@@ -153,15 +164,16 @@ run_bacula()
 {
    debug_wait
    zstat=0
+   estat=0
    if test "$debug" -eq 1 ; then
-     ${scripts}/bacula-ctl-sd start
-     ${scripts}/bacula-ctl-fd start $1
-     ${scripts}/bacula-ctl-dir start
-     cat ${tmp}/bconcmds | ${bin}/bconsole -c ${scripts}/bconsole.conf
+     ${scripts}/bacula-ctl-sd start -m
+     ${scripts}/bacula-ctl-fd start -m $1
+     ${scripts}/bacula-ctl-dir start -m
+     cat ${tmp}/bconcmds | ${bin}/bconsole -c ${conf}/bconsole.conf
      return $?
    else
-     ${bin}/bacula start >/dev/null 2>&1
-     cat ${tmp}/bconcmds | ${bin}/bconsole -c ${scripts}/bconsole.conf >/dev/null 2>&1
+     ${scripts}/bacula start >/dev/null 2>&1
+     cat ${tmp}/bconcmds | ${bin}/bconsole -c ${conf}/bconsole.conf >/dev/null 2>&1
      return $?
    fi
 }
@@ -170,18 +182,18 @@ run_bconsole()
 {
    bconsole_file=${1:-${tmp}/bconcmds}
    if test "$debug" -eq 1 ; then
-     cat $bconsole_file | ${bin}/bconsole -c ${scripts}/bconsole.conf
+     cat $bconsole_file | ${bin}/bconsole -c ${conf}/bconsole.conf
    else
-     cat $bconsole_file | ${bin}/bconsole -c ${scripts}/bconsole.conf  2>&1 >/dev/null
+     cat $bconsole_file | ${bin}/bconsole -c ${conf}/bconsole.conf  2>&1 >/dev/null
    fi
 }
 
 run_btape()
 {
    if test "$debug" -eq 1 ; then
-     cat ${tmp}/bconcmds | ${bin}/btape -c ${scripts}/bacula-sd.conf DDS-4 | tee ${tmp}/log1.out
+     cat ${tmp}/bconcmds | ${bin}/btape -c ${conf}/bacula-sd.conf tape | tee ${tmp}/log1.out
    else
-     cat ${tmp}/bconcmds | ${bin}/btape -c ${scripts}/bacula-sd.conf DDS-4 >${tmp}/log1.out 2>&1
+     cat ${tmp}/bconcmds | ${bin}/btape -c ${conf}/bacula-sd.conf tape >${tmp}/log1.out 2>&1
    fi
 }
 
@@ -212,11 +224,11 @@ bscan_libdbi()
 
 stop_bacula()
 {
-   ${bin}/bacula stop 2>&1 >/dev/null
-   zstat=0
-   bstat=0
-   rstat=0
-   dstat=0
+   if test "$debug" -eq 1 ; then
+      ${scripts}/bacula stop
+   else
+      ${scripts}/bacula stop 2>&1 >/dev/null
+   fi
 }
 
 check_for_zombie_jobs()
@@ -233,10 +245,10 @@ change_jobname()
       oldname=$1
       newname=$2
    fi
-   rm -f ${bin}/1
-   mv ${scripts}/bacula-dir.conf ${bin}/1
-   echo "s%${oldname}%${newname}%g" >${tmp}/1
-   sed -f ${tmp}/1 ${bin}/1 >${scripts}/bacula-dir.conf
+   rm -f $tmp/1 $tmp/2
+   mv ${conf}/bacula-dir.conf $tmp/1
+   echo "s%${oldname}%${newname}%g" >$tmp/2
+   sed -f $tmp/2 $tmp/1 >$conf/bacula-dir.conf
 #  echo "Job ${oldname} changed to ${newname}"
 }
 
@@ -272,6 +284,7 @@ check_two_logs()
 check_restore_diff()
 {
    if test "$debug" -eq 1 ; then
+      $rscripts/diff.pl -s ${src} -d ${tmp}/bacula-restores${src}
       diff -ur ${src} ${tmp}/bacula-restores${src}
    else 
       diff -ur ${src} ${tmp}/bacula-restores${src} 2>&1 >/dev/null
@@ -279,9 +292,22 @@ check_restore_diff()
    dstat=$?
 }
 
+check_restore_bin_diff()
+{
+   if test "$debug" -eq 1 ; then
+      $rscripts/diff.pl -s ${bin} -d ${tmp}/bacula-restores${bin}
+      diff -ur ${bin} ${tmp}/bacula-restores${bin}
+   else 
+      diff -ur ${bin} ${tmp}/bacula-restores${bin} 2>&1 >/dev/null
+   fi
+   dstat=$?
+}
+
+
 check_restore_tmp_build_diff()
 {
    if test "$debug" -eq 1 ; then
+      $rscripts/diff.pl -s ${tmpsrc} -d ${tmp}/bacula-restores${tmpsrc}
       diff -ur ${tmpsrc} ${tmp}/bacula-restores${tmpsrc}
    else
       diff -ur ${tmpsrc} ${tmp}/bacula-restores${tmpsrc} 2>&1 >/dev/null
@@ -289,8 +315,32 @@ check_restore_tmp_build_diff()
    dstat=$?
 }
 
+# bstat is backup error
+# dstat is diff difference
+# estat is special error status (shown by print_debug message)
+# rstat is restore status
+# zstat is zombie job(s)
+#
 end_test()
 {
+   if [ x$notracedump != xyes ]; then 
+      cat ${working}/bacula.*.traceback 2>/dev/null
+      cp -f  ${working}/bacula.*.traceback ${dumps} 2>/dev/null
+      cat ${working}/*.bactrace 2>/dev/null
+      cp -f ${working}/*.bactrace ${dumps} 2>/dev/null
+   fi
+   if [ -f $tmp/err.log ]; then
+      cat $tmp/err.log
+   fi
+   if [ $estat != 0 ] ; then
+      echo " "
+      echo "  !!!!! $TestName failed!!! `date +%R:%S` !!!!! "
+      echo "   Status: estat=$estat zombie=$zstat backup=$bstat restore=$rstat diff=$dstat"
+      echo "  !!!!! $TestName failed!!! `date +%R:%S` !!!!! " >>test.out
+      echo "   Status: estat=$estat zombie=$zstat backup=$bstat restore=$rstat diff=$dstat" >>test.out
+      echo " "
+      exit 1
+   fi
    if [ $zstat != 0 ] ; then
       echo " "
       echo "  !!!!! $TestName failed!!! `date +%R:%S` !!!!! "
@@ -316,6 +366,8 @@ end_test()
       fi
       echo "   Status: backup=$bstat restore=$rstat diff=$dstat"
       echo "   Status: backup=$bstat restore=$rstat diff=$dstat" >>test.out
+      echo "   Test owner of $SITE_NAME is $EMAIL"
+      echo "   Test owner of $SITE_NAME is $EMAIL" >>test.out
       echo " "
       exit 1
    else
@@ -339,6 +391,25 @@ copy_test_confs()
    ${rscripts}/cleanup
 }
 
+disable_pluguins()
+{
+   for i in ${conf}/bacula-fd.conf; do
+      sed 's/Plugin/#Plugin/' $i > $tmp/1
+      cp -f $tmp/1 $i
+   done
+}
+
+update_win32()
+{
+   if [ -d $cwd/build/src/win32/release32   \
+     -a -d $cwd/build/src/win32/release64 ] \
+   || [ -d $cwd/release32 -a -d $cwd/release64 ]
+   then
+       echo -ne "Try to upgrade the FileDaemon:\t"
+       wget -qO - "$WIN32_ADDR:8091/install"
+   fi
+}
+
 debug_wait()
 {
   if test "x${REGRESS_WAIT}" = "x1"; then
@@ -354,6 +425,9 @@ init_slot()
    if test -n "$DRIVE" -a -n "$SLOT"; then
       if test ! -c $DRIVE -a ! -b $DRIVE -a x$USE_VTAPE != x ; then
          dir=`dirname $DRIVE`
+         if [ ! -d "$dir" ]; then
+            mkdir -p "$dir"
+         fi
          touch $dir/slot$SLOT
       fi
    fi
@@ -441,23 +515,41 @@ db_name=${db_name:-"regress"}
 db_user=${db_user:-"regress"}
 db_password=${db_password:-""}
 working=${working:-"$cwd/working"}
+dumps=${dumps:-"$cwd/dumps"}
 bin=${bin:-"$cwd/bin"}
+
 # Bacula scripts
-scripts=${scripts:-"$bin"}
+scripts=${scripts:-"$cwd/bin"}
+
+# Bacula conf files
+conf=${conf:-"$cwd/bin"}
+
 # Regress scripts
 rscripts=${rscripts:-"$cwd/scripts"}
+
 tmp=${tmp:-"$cwd/tmp"}
+
+# Bacula source directory when copied here
+#  also build directory
 src=${src:-"$cwd/build"}
+
+# Temp source directory so we don't mess up $src
 tmpsrc=${tmpsrc:-"$cwd/tmp/build"}
 
 export bin
+export conf
 export working
+export dumps
 export scripts
 export rscripts
 export tmp
 export src
 export tmpsrc
 
+bperl="perl -Mscripts::functions"
+export bperl
+
+mkdir -p ${tmp}
 touch ${tmp}/dir.out ${tmp}/fd.out ${tmp}/sd.out
 
 CLIENT=${HOST}-fd