]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
regress: Update regression script for accurate mode.
authorRadosław Korzeniewski <radoslaw@korzeniewski.net>
Wed, 25 Aug 2021 14:54:04 +0000 (16:54 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:03 +0000 (09:03 +0100)
bacula/src/plugins/fd/pluginlib/test_metaplugin_backend.c
regress/scripts/metaplugin-protocol-tests.sh

index 9fd4b2402de7ce39584a059346322ed4f5e50762..12ed7450da1d6f100f7477378495c2bbdb022c63 100644 (file)
@@ -73,6 +73,7 @@ bool regress_standard_error_backup = false;
 bool regress_cancel_backup = false;
 bool regress_cancel_restore = false;
 
+bool Job_Level_Incremental = false;
 
 #define BUFLEN             4096
 #define BIGBUFLEN          131072
@@ -782,6 +783,32 @@ void perform_backup()
       signal_eod();
    }
 
+   bool seen = false;
+   if (Job_Level_Incremental) {
+      // we can accurateCheck query
+      write_plugin('C', "CHECK:/etc/passwd\n");
+      write_plugin('C', "STAT:F 37 0 0 100640 1\n");
+      write_plugin('C', "TSTAMP:1504271937 1504271937 1504271937\n");
+      read_plugin(buf);
+      write_plugin('I', "TEST CHECK Response");
+      write_plugin('I', buf);
+      if (strncmp(buf, "SEEN", 4) == 0) {
+         seen = true;
+      }
+   }
+
+   // backup if full or not seen
+   if (!Job_Level_Incremental || !seen) {
+      write_plugin('C', "FNAME:/etc/passwd\n");
+      write_plugin('C', "STAT:F 37 0 0 100640 1\n");
+      write_plugin('C', "TSTAMP:1504271937 1504271937 1504271937\n");
+      signal_eod();
+      /* here comes a file data contents */
+      write_plugin('C', "DATA\n");
+      write_plugin('D', "/* here comes a file data contents */");
+      signal_eod();
+   }
+
    // next file
    write_plugin('I', "TEST8");
    snprintf(buf, BIGBUFLEN, "FNAME:%s/bucket/%d/SHELL\n", PLUGINPREFIX, mypid);
@@ -1472,7 +1499,14 @@ int main(int argc, char** argv) {
 #endif
 
    /* Job Info (2) */
-   while ((len = read_plugin(buf)) > 0);
+   while ((len = read_plugin(buf)) > 0)
+   {
+      if (strcmp(buf, "Level=I\n") == 0) {
+         Job_Level_Incremental = true;
+         continue;
+      }
+   }
+
    write_plugin('I', "TEST2");
    signal_eod();
 
index ecaa4b8c5c83faa87fc1a3342e05476b758fe98c..d1e12705fd76f478ab9b81e9d89cfa548395e8a5 100755 (executable)
@@ -191,6 +191,27 @@ END_OF_DATA
 
 run_bconsole
 
+# now do an incremental backup job
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@#
+@# Backup incremental
+@#
+@output /dev/null
+messages
+@$out ${cwd}/tmp/log10.out
+status client=$CLIENT
+setdebug level=500 client=$CLIENT trace=1
+run job=$JobBackup1 level=incremental yes
+wait
+status client=$CLIENT
+messages
+llist job=$JobBackup1
+@output
+quit
+END_OF_DATA
+
+run_bconsole
+
 
 # now test estimate job
 cat <<END_OF_DATA >${cwd}/tmp/bconcmds