diff options
author | Chris Wilson <chris+github@qwirx.com> | 2013-10-22 21:31:20 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2013-10-22 21:31:20 +0000 |
commit | f5171997b5c2ec4ae36e6729b57e1194c99860a8 (patch) | |
tree | 30f47bb5d5c5788e6c99baf197205481034fd17e /test/backupstore | |
parent | 478bee5a3a7967522472287888ea8d672e8ecef9 (diff) |
Add a test that Used block counts match expected values.
Diffstat (limited to 'test/backupstore')
-rw-r--r-- | test/backupstore/testbackupstore.cpp | 39 | ||||
-rw-r--r-- | test/backupstore/testfiles/query.conf | 1 |
2 files changed, 39 insertions, 1 deletions
diff --git a/test/backupstore/testbackupstore.cpp b/test/backupstore/testbackupstore.cpp index b85d0fd7..72696de0 100644 --- a/test/backupstore/testbackupstore.cpp +++ b/test/backupstore/testbackupstore.cpp @@ -38,6 +38,7 @@ #include "ServerControl.h" #include "Socket.h" #include "SocketStreamTLS.h" +#include "StoreStructure.h" #include "TLSContext.h" #include "Test.h" #include "autogen_BackupProtocol.h" @@ -782,8 +783,27 @@ void test_server_1(BackupProtocolClient &protocol, BackupProtocolClient &protoco TEST_THAT(dir.GetNumberOfEntries() == 0); } + std::string root_dir_fn; + StoreStructure::MakeObjectFilename( + BackupProtocolListDirectory::RootDirectory, + "backup/01234567/" /* mStoreRoot */, 0 /* mStoreDiscSet */, + root_dir_fn, false /* EnsureDirectoryExists */); + std::auto_ptr<RaidFileRead> storedFile(RaidFileRead::Open(0, root_dir_fn)); + int root_dir_blocks = storedFile->GetDiscUsageInBlocks(); + std::auto_ptr<BackupProtocolAccountUsage> usage; + usage = protocol.QueryGetAccountUsage(); + + TEST_EQUAL_LINE(root_dir_blocks, usage->GetBlocksUsed(), + "wrong BlocksUsed"); + TEST_EQUAL_LINE(0, usage->GetBlocksInOldFiles(), + "wrong BlocksInOldFiles"); + TEST_EQUAL_LINE(0, usage->GetBlocksInDeletedFiles(), + "wrong BlocksInDeletedFiles"); + TEST_EQUAL_LINE(root_dir_blocks, usage->GetBlocksInDirectories(), + "wrong BlocksInDirectories"); + // Store a file -- first make the encoded file - BackupStoreFilenameClear store1name("testfiles/file1"); + BackupStoreFilenameClear store1name("file1"); { FileStream out("testfiles/file1_upload1", O_WRONLY | O_CREAT | O_EXCL); std::auto_ptr<IOStream> encoded(BackupStoreFile::EncodeFile("testfiles/file1", BackupProtocolListDirectory::RootDirectory, store1name)); @@ -893,6 +913,23 @@ void test_server_1(BackupProtocolClient &protocol, BackupProtocolClient &protoco } } + std::string file1_fn; + StoreStructure::MakeObjectFilename(store1objid, + "backup/01234567/" /* mStoreRoot */, 0 /* mStoreDiscSet */, + file1_fn, false /* EnsureDirectoryExists */); + storedFile = RaidFileRead::Open(0, file1_fn); + int file1_blocks = storedFile->GetDiscUsageInBlocks(); + + usage = protocol.QueryGetAccountUsage(); + TEST_EQUAL_LINE(root_dir_blocks + file1_blocks, usage->GetBlocksUsed(), + "wrong BlocksUsed"); + TEST_EQUAL_LINE(0, usage->GetBlocksInOldFiles(), + "wrong BlocksInOldFiles"); + TEST_EQUAL_LINE(0, usage->GetBlocksInDeletedFiles(), + "wrong BlocksInDeletedFiles"); + TEST_EQUAL_LINE(root_dir_blocks, + usage->GetBlocksInDirectories(), "wrong BlocksInDirectories"); + // Try using GetFile on a directory { TEST_CHECK_THROWS(std::auto_ptr<BackupProtocolSuccess> getFile(protocol.QueryGetFile(BackupProtocolListDirectory::RootDirectory, BackupProtocolListDirectory::RootDirectory)), diff --git a/test/backupstore/testfiles/query.conf b/test/backupstore/testfiles/query.conf index 984ace6c..a25f148c 100644 --- a/test/backupstore/testfiles/query.conf +++ b/test/backupstore/testfiles/query.conf @@ -17,6 +17,7 @@ MinimumFileAge = 4 MaxUploadWait = 24 FileTrackingSizeThreshold = 1024 DiffingUploadSizeThreshold = 1024 +StorePort = 22011 Server { |