diff options
author | Chris Wilson <chris+github@qwirx.com> | 2006-11-27 19:19:57 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2006-11-27 19:19:57 +0000 |
commit | b166ceb019aab7583d66f69b86d7241b5fb5d5e6 (patch) | |
tree | 05f7a8ba08919a1e04549cce0fdb2b0cb79b562f | |
parent | 065e0b531fe827c3a153a76493d11e3e2a73b9ea (diff) |
Added a test for diff termination if MaximumDiffingTime is exceeded
(refs #3, refs #9)
-rw-r--r-- | test/bbackupd/testbbackupd.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/bbackupd/testbbackupd.cpp b/test/bbackupd/testbbackupd.cpp index eafea4c3..36cf4f77 100644 --- a/test/bbackupd/testbbackupd.cpp +++ b/test/bbackupd/testbbackupd.cpp @@ -673,6 +673,58 @@ int test_bbackupd() == comp); } + intercept_setup_delay("testfiles/TestDir1/spacetest/f1", + 0, 4000, SYS_read); + pid = start_internal_daemon(); + + fd = open("testfiles/TestDir1/spacetest/f1", O_WRONLY); + TEST_THAT(fd > 0); + // write again, to update the file's timestamp + TEST_THAT(write(fd, buffer, sizeof(buffer)) == sizeof(buffer)); + TEST_THAT(close(fd) == 0); + + wait_for_backup_operation(); + // can't test whether intercept was triggered, because + // it's in a different process. + // TEST_THAT(intercept_triggered()); + stop_internal_daemon(pid); + + // check that the diff was aborted, i.e. upload was not a diff + found1 = false; + + while (!reader.IsEOF()) + { + std::string line; + TEST_THAT(reader.GetLine(line)); + if (line == "Send GetBlockIndexByName(0x3,\"f1\")") + { + found1 = true; + break; + } + } + + TEST_THAT(found1); + if (found1) + { + std::string line; + TEST_THAT(reader.GetLine(line)); + TEST_THAT(line == "Receive Success(0xf)"); + TEST_THAT(reader.GetLine(line)); + TEST_THAT(line == "Receiving stream, size 60"); + + // delaying for 4 seconds in one step means that + // the diff timer and the keepalive timer will + // both expire, and the diff timer is honoured first, + // so there will be no keepalives. + + TEST_THAT(reader.GetLine(line)); + std::string comp = "Send StoreFile(0x3,"; + TEST_THAT(line.substr(0, comp.size()) == comp); + comp = ",0x0,\"f1\")"; + TEST_THAT(line.substr(line.size() - comp.size()) + == comp); + } + // restore timers for rest of tests Timers::Init(); } |