diff options
-rw-r--r-- | src/mongo/db/storage/kv/kv_engine_test_harness.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/mongo/db/storage/kv/kv_engine_test_harness.cpp b/src/mongo/db/storage/kv/kv_engine_test_harness.cpp index e1b24ed718d..b2773caec19 100644 --- a/src/mongo/db/storage/kv/kv_engine_test_harness.cpp +++ b/src/mongo/db/storage/kv/kv_engine_test_harness.cpp @@ -87,33 +87,37 @@ namespace mongo { ASSERT( engine ); string ns = "a.b"; - scoped_ptr<RecordStore> rs; - { - MyOperationContext opCtx( engine ); - ASSERT_OK( engine->createRecordStore( &opCtx, ns, CollectionOptions() ) ); - rs.reset( engine->getRecordStore( &opCtx, ns, ns, CollectionOptions() ) ); - ASSERT( rs ); - } - + // 'loc' holds location of "abc" and is referenced after restarting engine. DiskLoc loc; { - MyOperationContext opCtx( engine ); - WriteUnitOfWork uow( &opCtx ); - StatusWith<DiskLoc> res = rs->insertRecord( &opCtx, "abc", 4, false ); - ASSERT_OK( res.getStatus() ); - loc = res.getValue(); - uow.commit(); - } - - { - MyOperationContext opCtx( engine ); - ASSERT_EQUALS( string("abc"), rs->dataFor( &opCtx, loc ).data() ); + scoped_ptr<RecordStore> rs; + { + MyOperationContext opCtx( engine ); + ASSERT_OK( engine->createRecordStore( &opCtx, ns, CollectionOptions() ) ); + rs.reset( engine->getRecordStore( &opCtx, ns, ns, CollectionOptions() ) ); + ASSERT( rs ); + } + + { + MyOperationContext opCtx( engine ); + WriteUnitOfWork uow( &opCtx ); + StatusWith<DiskLoc> res = rs->insertRecord( &opCtx, "abc", 4, false ); + ASSERT_OK( res.getStatus() ); + loc = res.getValue(); + uow.commit(); + } + + { + MyOperationContext opCtx( engine ); + ASSERT_EQUALS( string("abc"), rs->dataFor( &opCtx, loc ).data() ); + } } engine = helper->restartEngine(); { + scoped_ptr<RecordStore> rs; MyOperationContext opCtx( engine ); rs.reset( engine->getRecordStore( &opCtx, ns, ns, CollectionOptions() ) ); ASSERT_EQUALS( string("abc"), rs->dataFor( &opCtx, loc ).data() ); |