Changeset 2100 for box/trunk/test


Ignore:
Timestamp:
01/03/2008 22:50:02 (4 years ago)
Author:
chris
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • box/trunk/test/bbackupd/testbbackupd.cpp

    r2097 r2100  
    604604SocketStreamTLS sSocket; 
    605605 
    606 std::auto_ptr<BackupProtocolClient> Connect(TLSContext& rContext, int flags) 
     606std::auto_ptr<BackupProtocolClient> Connect(TLSContext& rContext) 
    607607{ 
    608608        sSocket.Open(rContext, Socket::TypeINET,  
     
    620620                        WrongServerVersion); 
    621621        } 
     622        return connection; 
     623} 
     624 
     625std::auto_ptr<BackupProtocolClient> ConnectAndLogin(TLSContext& rContext, 
     626        int flags) 
     627{ 
     628        std::auto_ptr<BackupProtocolClient> connection(Connect(rContext)); 
    622629        connection->QueryLogin(0x01234567, flags); 
    623630        return connection; 
    624631} 
    625  
     632         
    626633std::auto_ptr<BackupStoreDirectory> ReadDirectory 
    627634( 
     
    12501257 
    12511258        { 
    1252                 std::auto_ptr<BackupProtocolClient> client = Connect( 
    1253                         context, 
    1254                         BackupProtocolClientLogin::Flags_ReadOnly); 
    1255                  
    1256                 std::auto_ptr<BackupStoreDirectory> dir = ReadDirectory( 
    1257                         *client, 
    1258                         BackupProtocolClientListDirectory::RootDirectory); 
    1259  
    1260                 // int64_t testDirId = SearchDir(*dir, "Test2"); 
    1261                 // TEST_THAT(testDirId == 0); 
    1262  
    1263                 sync_and_wait(); 
    1264  
    1265                 dir = ReadDirectory(*client, 
    1266                         BackupProtocolClientListDirectory::RootDirectory); 
    1267                 int64_t testDirId = SearchDir(*dir, "Test2"); 
    1268                 TEST_THAT(testDirId != 0); 
     1259                { 
     1260                        std::auto_ptr<BackupProtocolClient> client = 
     1261                                ConnectAndLogin(context, 
     1262                                BackupProtocolClientLogin::Flags_ReadOnly); 
     1263                         
     1264                        std::auto_ptr<BackupStoreDirectory> dir =  
     1265                                ReadDirectory(*client, 
     1266                                BackupProtocolClientListDirectory::RootDirectory); 
     1267 
     1268                        // int64_t testDirId = SearchDir(*dir, "Test2"); 
     1269                        // TEST_THAT(testDirId == 0); 
     1270 
     1271                        sync_and_wait(); 
     1272 
     1273                        dir = ReadDirectory(*client, 
     1274                                BackupProtocolClientListDirectory::RootDirectory); 
     1275                        int64_t testDirId = SearchDir(*dir, "Test2"); 
     1276                        TEST_THAT(testDirId != 0); 
     1277                        client->QueryFinished(); 
     1278                        sSocket.Close(); 
     1279                } 
    12691280 
    12701281                // Kill the daemon 
     
    12891300                wait_for_sync_end(); 
    12901301 
    1291                 dir = ReadDirectory(*client, 
    1292                         BackupProtocolClientListDirectory::RootDirectory); 
    1293                 testDirId = SearchDir(*dir, "Test2"); 
    1294                 TEST_THAT(testDirId != 0); 
     1302                { 
     1303                        std::auto_ptr<BackupProtocolClient> client = 
     1304                                ConnectAndLogin(context, 
     1305                                BackupProtocolClientLogin::Flags_ReadOnly); 
     1306                         
     1307                        std::auto_ptr<BackupStoreDirectory> dir =  
     1308                                ReadDirectory(*client, 
     1309                                BackupProtocolClientListDirectory::RootDirectory); 
     1310                        int64_t testDirId = SearchDir(*dir, "Test2"); 
     1311                        TEST_THAT(testDirId != 0); 
     1312                        client->QueryFinished(); 
     1313                        sSocket.Close(); 
     1314                } 
    12951315 
    12961316                wait_for_sync_end(); 
    1297                  
    1298                 dir = ReadDirectory(*client, 
    1299                         BackupProtocolClientListDirectory::RootDirectory); 
    1300                 testDirId = SearchDir(*dir, "Test2"); 
    1301                 TEST_THAT(testDirId != 0); 
    1302  
    1303                 BackupStoreDirectory::Iterator i(*dir); 
    1304                 BackupStoreFilenameClear dirname("Test2"); 
    1305                 BackupStoreDirectory::Entry *en = i.FindMatchingClearName(dirname); 
    1306                 TEST_THAT(en != 0); 
    1307                 int16_t en_flags = en->GetFlags(); 
    1308                 TEST_THAT(en_flags && BackupStoreDirectory::Entry::Flags_Deleted); 
    1309  
    1310                 // Log out. 
    1311                 client->QueryFinished(); 
    1312                 sSocket.Close(); 
     1317 
     1318                { 
     1319                        std::auto_ptr<BackupProtocolClient> client = 
     1320                                ConnectAndLogin(context, 
     1321                                BackupProtocolClientLogin::Flags_ReadOnly); 
     1322                         
     1323                        std::auto_ptr<BackupStoreDirectory> dir =  
     1324                                ReadDirectory(*client, 
     1325                                BackupProtocolClientListDirectory::RootDirectory); 
     1326                        int64_t testDirId = SearchDir(*dir, "Test2"); 
     1327                        TEST_THAT(testDirId != 0); 
     1328 
     1329                        BackupStoreDirectory::Iterator i(*dir); 
     1330                        BackupStoreFilenameClear dirname("Test2"); 
     1331                        BackupStoreDirectory::Entry *en =  
     1332                                i.FindMatchingClearName(dirname); 
     1333                        TEST_THAT(en != 0); 
     1334                        int16_t en_flags = en->GetFlags(); 
     1335                        TEST_THAT(en_flags && BackupStoreDirectory::Entry::Flags_Deleted); 
     1336                        client->QueryFinished(); 
     1337                        sSocket.Close(); 
     1338                } 
    13131339        } 
    13141340 
     
    15681594                { 
    15691595                        std::auto_ptr<BackupProtocolClient> client = 
    1570                                 Connect(context, 0); 
     1596                                ConnectAndLogin(context, 0); 
    15711597 
    15721598                        std::auto_ptr<BackupStoreDirectory> dir = ReadDirectory( 
     
    15781604                        dir = ReadDirectory(*client, baseDirId); 
    15791605 
    1580                         int64_t testDirId = SearchDir(dir, dirname.c_str()); 
     1606                        int64_t testDirId = SearchDir(*dir, dirname.c_str()); 
    15811607                        TEST_THAT(testDirId != 0); 
    15821608                        dir = ReadDirectory(*client, testDirId); 
    15831609                 
    1584                         TEST_THAT(SearchDir(dir, filename.c_str()) != 0); 
     1610                        TEST_THAT(SearchDir(*dir, filename.c_str()) != 0); 
    15851611                        // Log out 
    15861612                        client->QueryFinished(); 
     
    23362362 
    23372363                { 
    2338                         std::auto_ptr<BackupProtocolClient> client = Connect( 
    2339                                 context, 
     2364                        std::auto_ptr<BackupProtocolClient> client =  
     2365                                ConnectAndLogin(context, 
    23402366                                BackupProtocolClientLogin::Flags_ReadOnly); 
    23412367                         
     
    25092535                { 
    25102536                        // connect and log in 
    2511                         std::auto_ptr<BackupProtocolClient> client = Connect( 
    2512                                 context, 
     2537                        std::auto_ptr<BackupProtocolClient> client =  
     2538                                ConnectAndLogin(context, 
    25132539                                BackupProtocolClientLogin::Flags_ReadOnly); 
    25142540 
     
    27822808                                try 
    27832809                                { 
    2784                                         SocketStreamTLS conn; 
    2785                                         conn.Open(context, Socket::TypeINET,  
    2786                                                 "localhost", BOX_PORT_BBSTORED); 
    2787                                         BackupProtocolClient protocol(conn); 
    2788                                         protocol.QueryVersion(BACKUP_STORE_SERVER_VERSION); 
    2789                                         std::auto_ptr<BackupProtocolClientLoginConfirmed> loginConf(protocol.QueryLogin(0x01234567, 0));        // read-write 
    2790                                         // Make sure the marker isn't zero, because that's the default, and it should have changed 
     2810                                        std::auto_ptr<BackupProtocolClient> 
     2811                                                protocol = Connect(context); 
     2812                                        // Make sure the marker isn't zero, 
     2813                                        // because that's the default, and 
     2814                                        // it should have changed 
     2815                                        std::auto_ptr<BackupProtocolClientLoginConfirmed> loginConf(protocol->QueryLogin(0x01234567, 0)); 
    27912816                                        TEST_THAT(loginConf->GetClientStoreMarker() != 0); 
    27922817                                         
    27932818                                        // Change it to something else 
    2794                                         protocol.QuerySetClientStoreMarker(12); 
     2819                                        protocol->QuerySetClientStoreMarker(12); 
    27952820                                         
    27962821                                        // Success! 
     
    27982823                                         
    27992824                                        // Log out 
    2800                                         protocol.QueryFinished(); 
     2825                                        protocol->QueryFinished(); 
     2826                                        sSocket.Close(); 
    28012827                                } 
    28022828                                catch(...) 
     
    28612887                        printf("\n==== Resume restore\n"); 
    28622888 
    2863                         std::auto_ptr<BackupProtocolClient> client = Connect( 
    2864                                 context, 
     2889                        std::auto_ptr<BackupProtocolClient> client =  
     2890                                ConnectAndLogin(context, 
    28652891                                BackupProtocolClientLogin::Flags_ReadOnly); 
    28662892 
     
    29032929 
    29042930                { 
    2905                         std::auto_ptr<BackupProtocolClient> client = Connect( 
    2906                                 context, 0 /* read-write */); 
     2931                        std::auto_ptr<BackupProtocolClient> client =  
     2932                                ConnectAndLogin(context, 0 /* read-write */); 
    29072933 
    29082934                        // Do restore and undelete 
Note: See TracChangeset for help on using the changeset viewer.