From: Radosław Korzeniewski Date: Mon, 12 Apr 2021 16:43:58 +0000 (+0200) Subject: metaplugin: Update regression test for restore with core. X-Git-Tag: Release-11.3.2~588 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d3fd056a8f50c15810b54e801c8d4a3fceba2a5;p=thirdparty%2Fbacula.git metaplugin: Update regression test for restore with core. --- diff --git a/bacula/src/plugins/fd/pluginlib/test_metaplugin_backend.c b/bacula/src/plugins/fd/pluginlib/test_metaplugin_backend.c index 9cd98d5b8..ff683e719 100644 --- a/bacula/src/plugins/fd/pluginlib/test_metaplugin_backend.c +++ b/bacula/src/plugins/fd/pluginlib/test_metaplugin_backend.c @@ -258,6 +258,7 @@ void perform_backup() } // next file + // this file we will restore using Bacula Core functionality, so it is crucial write_plugin('I', "TEST6"); snprintf(buf, BIGBUFLEN, "FNAME:%s/bucket/%d/etc/issue\n", PLUGINPREFIX, mypid); write_plugin('C', buf); @@ -694,6 +695,8 @@ void perform_restore(){ int len; int fsize; bool loopgo = true; + bool restore_skip_create = false; + bool restore_with_core = false; if (regress_error_restore_stderr) { // test some stderror handling @@ -729,16 +732,29 @@ void perform_restore(){ } /* check if FNAME then follow file parameters */ if (strncmp(buf, "FNAME:", 6) == 0) { + restore_with_core = strstr(buf, "/_restore_with_core/") != NULL && strstr(buf, "/etc/issue") != NULL; + restore_skip_create = strstr(buf, "/_restore_skip_create/") != NULL; + /* we read here a file parameters */ while (read_plugin(buf) > 0); - /* signal OK */ -#if 1 + + if (restore_skip_create){ + // simple skipall + write_plugin('I', "TEST5R - create file skipped."); + write_plugin('C', "SKIP\n"); + continue; + } + + if (restore_with_core){ + // signal Core + write_plugin('I', "TEST5R - handle file with Core."); + write_plugin('C', "CORE\n"); + continue; + } + + // signal OK write_plugin('I', "TEST5R - create file ok."); write_plugin('C', "OK\n"); -#else - write_plugin('I', "TEST5R - create file skipped."); - write_plugin('C', "SKIP\n"); -#endif continue; } @@ -747,6 +763,8 @@ void perform_restore(){ // handle metadata read_plugin_data_stream(); /* signal OK */ + LOG("#> METADATA_STREAM data saved."); + write_plugin('I', "TEST5R - metadata saved."); write_plugin('C', "OK\n"); continue; } diff --git a/regress/scripts/metaplugin-protocol-tests.sh b/regress/scripts/metaplugin-protocol-tests.sh index 0bb939052..9876f4088 100755 --- a/regress/scripts/metaplugin-protocol-tests.sh +++ b/regress/scripts/metaplugin-protocol-tests.sh @@ -198,6 +198,46 @@ END_OF_DATA run_bconsole +# restore with skip all files +cat <${cwd}/tmp/bconcmds +@# +@# Restore +@# +@output /dev/null +messages +@$out ${cwd}/tmp/rlog3.out +setdebug level=500 client=$CLIENT trace=1 +restore fileset=$FilesetBackup5 where=${cwd}/tmp/_restore_skip_create/ select all storage=File done +yes +wait +messages +llist job=RestoreFiles +@output +quit +END_OF_DATA + +run_bconsole + +# restore with core +cat <${cwd}/tmp/bconcmds +@# +@# Restore +@# +@output /dev/null +messages +@$out ${cwd}/tmp/rlog4.out +setdebug level=500 client=$CLIENT trace=1 +restore fileset=$FilesetBackup5 where=${cwd}/tmp/_restore_with_core/ select all storage=File done +yes +wait +messages +llist job=RestoreFiles +@output +quit +END_OF_DATA + +run_bconsole + # and finally test listing mode TEST=1 for ppath in / containers containers/bucket1 containers/bucket2 @@ -317,7 +357,25 @@ REND=$(grep -w -c "TESTEND" ${cwd}/tmp/rlog2.out) if [ "x$RET" != "xT" ] || [ "$REND" -ne 1 ] then echo "rlog2" "$RET" "$REND" - rstat=1 + rstat=2 +fi + +RET=$(grep "jobstatus:" ${cwd}/tmp/rlog3.out | tail -1 | awk '{print $2}') +REND=$(grep -w -c "TESTEND" ${cwd}/tmp/rlog3.out) +if [ "x$RET" != "xT" ] || [ "$REND" -ne 1 ] +then + echo "rlog3" "$RET" "$REND" + rstat=3 +fi + +RET=$(grep "jobstatus:" ${cwd}/tmp/rlog4.out | tail -1 | awk '{print $2}') +REND=$(grep -w -c "TESTEND" ${cwd}/tmp/rlog4.out) +diff ${cwd}/tmp/_restore_with_core/*/bucket/*/etc/issue /etc/issue > /dev/null 2>&1 +RDIFF=$? +if [ "x$RET" != "xT" ] || [ "$REND" -ne 1 ] || [ $RDIFF -ne 0 ] +then + echo "rlog4" "$RET" "$REND" + rstat=4 fi end_test