コード例 #1
0
ファイル: DumpLoadTest.cpp プロジェクト: pombredanne/db8
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) );
}
コード例 #2
0
ファイル: MojDb.cpp プロジェクト: KyleMaas/db8
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 {