void run() { NamespaceDetails* nsd = nsdetails( _ns ); // _id_ is at 0, so nIndexes == 1 IndexCatalog::IndexBuildBlock* a = halfAddIndex("a"); IndexCatalog::IndexBuildBlock* b = halfAddIndex("b"); IndexCatalog::IndexBuildBlock* c = halfAddIndex("c"); IndexCatalog::IndexBuildBlock* d = halfAddIndex("d"); int offset = nsd->_catalogFindIndexByName( "b_1", true ); ASSERT_EQUALS(2, offset); delete b; ASSERT_EQUALS(2, nsd->_catalogFindIndexByName( "c_1", true ) ); ASSERT_EQUALS(3, nsd->_catalogFindIndexByName( "d_1", true ) ); offset = nsd->_catalogFindIndexByName( "d_1", true ); delete d; ASSERT_EQUALS(2, nsd->_catalogFindIndexByName( "c_1", true ) ); ASSERT( nsd->_catalogFindIndexByName( "d_1", true ) < 0 ); offset = nsd->_catalogFindIndexByName( "a_1", true ); delete a; ASSERT_EQUALS(1, nsd->_catalogFindIndexByName( "c_1", true )); delete c; }