[Box Backup-commit] COMMIT r2100 - box/trunk/test/bbackupd
boxbackup-dev@fluffy.co.uk
boxbackup-dev@fluffy.co.uk
Sat, 1 Mar 2008 22:50:02 +0000 (UTC)
Author: chris
Date: 2008-03-01 22:50:02 +0000 (Sat, 01 Mar 2008)
New Revision: 2100
Modified:
box/trunk/test/bbackupd/testbbackupd.cpp
Log:
Fix multiple connections to server (not supported on Windows) in test
that redundant locations are deleted on time.
Commonise some more login code to simplify tests.
Modified: box/trunk/test/bbackupd/testbbackupd.cpp
===================================================================
--- box/trunk/test/bbackupd/testbbackupd.cpp 2008-03-01 22:44:25 UTC (rev 2099)
+++ box/trunk/test/bbackupd/testbbackupd.cpp 2008-03-01 22:50:02 UTC (rev 2100)
@@ -603,7 +603,7 @@
SocketStreamTLS sSocket;
-std::auto_ptr<BackupProtocolClient> Connect(TLSContext& rContext, int flags)
+std::auto_ptr<BackupProtocolClient> Connect(TLSContext& rContext)
{
sSocket.Open(rContext, Socket::TypeINET,
"localhost", BOX_PORT_BBSTORED);
@@ -619,10 +619,17 @@
THROW_EXCEPTION(BackupStoreException,
WrongServerVersion);
}
+ return connection;
+}
+
+std::auto_ptr<BackupProtocolClient> ConnectAndLogin(TLSContext& rContext,
+ int flags)
+{
+ std::auto_ptr<BackupProtocolClient> connection(Connect(rContext));
connection->QueryLogin(0x01234567, flags);
return connection;
}
-
+
std::auto_ptr<BackupStoreDirectory> ReadDirectory
(
BackupProtocolClient& rClient,
@@ -1249,23 +1256,27 @@
printf("\n==== Testing that redundant locations are deleted on time\n");
{
- std::auto_ptr<BackupProtocolClient> client = Connect(
- context,
- BackupProtocolClientLogin::Flags_ReadOnly);
-
- std::auto_ptr<BackupStoreDirectory> dir = ReadDirectory(
- *client,
- BackupProtocolClientListDirectory::RootDirectory);
+ {
+ std::auto_ptr<BackupProtocolClient> client =
+ ConnectAndLogin(context,
+ BackupProtocolClientLogin::Flags_ReadOnly);
+
+ std::auto_ptr<BackupStoreDirectory> dir =
+ ReadDirectory(*client,
+ BackupProtocolClientListDirectory::RootDirectory);
- // int64_t testDirId = SearchDir(*dir, "Test2");
- // TEST_THAT(testDirId == 0);
+ // int64_t testDirId = SearchDir(*dir, "Test2");
+ // TEST_THAT(testDirId == 0);
- sync_and_wait();
+ sync_and_wait();
- dir = ReadDirectory(*client,
- BackupProtocolClientListDirectory::RootDirectory);
- int64_t testDirId = SearchDir(*dir, "Test2");
- TEST_THAT(testDirId != 0);
+ dir = ReadDirectory(*client,
+ BackupProtocolClientListDirectory::RootDirectory);
+ int64_t testDirId = SearchDir(*dir, "Test2");
+ TEST_THAT(testDirId != 0);
+ client->QueryFinished();
+ sSocket.Close();
+ }
// Kill the daemon
terminate_bbackupd(bbackupd_pid);
@@ -1288,28 +1299,43 @@
wait_for_sync_end();
wait_for_sync_end();
- dir = ReadDirectory(*client,
- BackupProtocolClientListDirectory::RootDirectory);
- testDirId = SearchDir(*dir, "Test2");
- TEST_THAT(testDirId != 0);
+ {
+ std::auto_ptr<BackupProtocolClient> client =
+ ConnectAndLogin(context,
+ BackupProtocolClientLogin::Flags_ReadOnly);
+
+ std::auto_ptr<BackupStoreDirectory> dir =
+ ReadDirectory(*client,
+ BackupProtocolClientListDirectory::RootDirectory);
+ int64_t testDirId = SearchDir(*dir, "Test2");
+ TEST_THAT(testDirId != 0);
+ client->QueryFinished();
+ sSocket.Close();
+ }
wait_for_sync_end();
-
- dir = ReadDirectory(*client,
- BackupProtocolClientListDirectory::RootDirectory);
- testDirId = SearchDir(*dir, "Test2");
- TEST_THAT(testDirId != 0);
- BackupStoreDirectory::Iterator i(*dir);
- BackupStoreFilenameClear dirname("Test2");
- BackupStoreDirectory::Entry *en = i.FindMatchingClearName(dirname);
- TEST_THAT(en != 0);
- int16_t en_flags = en->GetFlags();
- TEST_THAT(en_flags && BackupStoreDirectory::Entry::Flags_Deleted);
+ {
+ std::auto_ptr<BackupProtocolClient> client =
+ ConnectAndLogin(context,
+ BackupProtocolClientLogin::Flags_ReadOnly);
+
+ std::auto_ptr<BackupStoreDirectory> dir =
+ ReadDirectory(*client,
+ BackupProtocolClientListDirectory::RootDirectory);
+ int64_t testDirId = SearchDir(*dir, "Test2");
+ TEST_THAT(testDirId != 0);
- // Log out.
- client->QueryFinished();
- sSocket.Close();
+ BackupStoreDirectory::Iterator i(*dir);
+ BackupStoreFilenameClear dirname("Test2");
+ BackupStoreDirectory::Entry *en =
+ i.FindMatchingClearName(dirname);
+ TEST_THAT(en != 0);
+ int16_t en_flags = en->GetFlags();
+ TEST_THAT(en_flags && BackupStoreDirectory::Entry::Flags_Deleted);
+ client->QueryFinished();
+ sSocket.Close();
+ }
}
TEST_THAT(ServerIsAlive(bbackupd_pid));
@@ -1567,7 +1593,7 @@
// Check that we can find it in directory listing
{
std::auto_ptr<BackupProtocolClient> client =
- Connect(context, 0);
+ ConnectAndLogin(context, 0);
std::auto_ptr<BackupStoreDirectory> dir = ReadDirectory(
*client,
@@ -1577,11 +1603,11 @@
TEST_THAT(baseDirId != 0);
dir = ReadDirectory(*client, baseDirId);
- int64_t testDirId = SearchDir(dir, dirname.c_str());
+ int64_t testDirId = SearchDir(*dir, dirname.c_str());
TEST_THAT(testDirId != 0);
dir = ReadDirectory(*client, testDirId);
- TEST_THAT(SearchDir(dir, filename.c_str()) != 0);
+ TEST_THAT(SearchDir(*dir, filename.c_str()) != 0);
// Log out
client->QueryFinished();
sSocket.Close();
@@ -2335,8 +2361,8 @@
"actually work\n");
{
- std::auto_ptr<BackupProtocolClient> client = Connect(
- context,
+ std::auto_ptr<BackupProtocolClient> client =
+ ConnectAndLogin(context,
BackupProtocolClientLogin::Flags_ReadOnly);
std::auto_ptr<BackupStoreDirectory> dir = ReadDirectory(
@@ -2508,8 +2534,8 @@
int64_t restoredirid = 0;
{
// connect and log in
- std::auto_ptr<BackupProtocolClient> client = Connect(
- context,
+ std::auto_ptr<BackupProtocolClient> client =
+ ConnectAndLogin(context,
BackupProtocolClientLogin::Flags_ReadOnly);
// Find the ID of the Test1 directory
@@ -2781,23 +2807,23 @@
{
try
{
- SocketStreamTLS conn;
- conn.Open(context, Socket::TypeINET,
- "localhost", BOX_PORT_BBSTORED);
- BackupProtocolClient protocol(conn);
- protocol.QueryVersion(BACKUP_STORE_SERVER_VERSION);
- std::auto_ptr<BackupProtocolClientLoginConfirmed> loginConf(protocol.QueryLogin(0x01234567, 0)); // read-write
- // Make sure the marker isn't zero, because that's the default, and it should have changed
+ std::auto_ptr<BackupProtocolClient>
+ protocol = Connect(context);
+ // Make sure the marker isn't zero,
+ // because that's the default, and
+ // it should have changed
+ std::auto_ptr<BackupProtocolClientLoginConfirmed> loginConf(protocol->QueryLogin(0x01234567, 0));
TEST_THAT(loginConf->GetClientStoreMarker() != 0);
// Change it to something else
- protocol.QuerySetClientStoreMarker(12);
+ protocol->QuerySetClientStoreMarker(12);
// Success!
done = true;
// Log out
- protocol.QueryFinished();
+ protocol->QueryFinished();
+ sSocket.Close();
}
catch(...)
{
@@ -2860,8 +2886,8 @@
printf("\n==== Resume restore\n");
- std::auto_ptr<BackupProtocolClient> client = Connect(
- context,
+ std::auto_ptr<BackupProtocolClient> client =
+ ConnectAndLogin(context,
BackupProtocolClientLogin::Flags_ReadOnly);
// Check that the restore fn returns resume possible,
@@ -2902,8 +2928,8 @@
printf("\n==== Check restore deleted files\n");
{
- std::auto_ptr<BackupProtocolClient> client = Connect(
- context, 0 /* read-write */);
+ std::auto_ptr<BackupProtocolClient> client =
+ ConnectAndLogin(context, 0 /* read-write */);
// Do restore and undelete
TEST_THAT(BackupClientRestore(*client, deldirid,