TEST_F(DatabaseSuite, dump_and_load) { // load MojAssertNoErr( MojFileFromString(MojLoadTestFileName, MojTestStr) ); MojUInt32 count = 0; MojAssertNoErr( db.load(MojLoadTestFileName, count) ); EXPECT_EQ( 11LL, count ); checkCount(); // dump count = 0; MojAssertNoErr( db.dump(MojDumpTestFileName, count) ); EXPECT_EQ( 11LL, count ); EXPECT_TRUE( db.kindEngine() ); // verify that we can get this kind MojDbKind *pk = 0; MojExpectNoErr( db.kindEngine()->getKind(kindId.data(), pk) ); EXPECT_TRUE( pk ); // del bool found = false; MojAssertNoErr( db.delKind(kindId, found) ); EXPECT_TRUE( found ); // verify that we can NOT get this kind pk = 0; EXPECT_EQ( MojErrDbKindNotRegistered, db.kindEngine()->getKind(kindId.data(), pk) ); EXPECT_FALSE( pk ); // purge deleted kinds MojAssertNoErr( db.purge(count, 0) ); EXPECT_EQ( 1LL, count ) << "Purged kinds marked for delete"; // load again. why 12? MojAssertNoErr( db.load(MojDumpTestFileName, count) ); EXPECT_EQ( 12LL, count ); checkCount(); // analyze MojObject analysis; MojAssertNoErr( db.stats(analysis) ); }
MojErr MojDb::checkDbVersion(const MojChar* path) { MojAssert(path); MojLogTrace(s_log); MojString version; MojString versionFileName; MojErr err = versionFileName.format(_T("%s/%s"), path, VersionFileName); MojErrCheck(err); err = MojFileToString(versionFileName, version); MojErrCatch(err, MojErrNotFound) { // if the version file is not found, create it // make sure the directory exists err = MojCreateDirIfNotPresent(path); MojErrCheck(err); err = version.format(_T("%lld"), DatabaseVersion); MojErrCheck(err); err = MojFileFromString(versionFileName, version); MojErrCheck(err); } else {