示例#1
0
TEST_F(testsIbpGenHandler, BasicIbpGenHandlerPutGetMemCheck) {
    std::string cfgFile = testsTools::InitConfig(2, WithHotData);
    AbstractController* ctrl = NULL;
    StatusCode st = Controller::create(cfgFile, ctrl);
    ASSERT_TRUE(st.ok());
    ASSERT_TRUE(NULL != ctrl);
    EXPECT_EQ(cfgFile, ctrl->getConfigFile());
    EXPECT_EQ(TESTUUID, ctrl->getUuid());
    std::string cfgFileName = ctrl->getConfigFile();

    ctrl->start();

    StatusCode stPut = ctrl->put("key", "data");
    EXPECT_TRUE(stPut.ok());

    std::string buffer(80, 'A');
    DataChunk fetched(buffer);
    size_t count;
    StatusCode stGet = ctrl->fetch("key", std::move(fetched), count);
    EXPECT_TRUE(stGet.ok());
    EXPECT_TRUE(fetched == "data");

    ctrl->stop();

    ctrl->destroy();
    delete ctrl;
}
示例#2
0
TEST_F(testsLevelDbFacade, BasicLevelDbFacadePutGetMemCheck) {
    std::vector<bool> falseTrue = { false, true };
    for (bool param1 : falseTrue) {
        for (bool param2 : falseTrue) {
            for (bool param3 : falseTrue) {
                std::string dbPath = std::string(MKTMPNAME()) + "_IBP";
                FileTools::createDirectory(dbPath);

                LevelDbFacade db(dbPath, param1, param2, param3);
                EXPECT_TRUE(db.isClosed());
                db.open();
                EXPECT_FALSE(db.isClosed());

                StatusCode stPut = db.put("key", "data");
                EXPECT_TRUE(stPut.ok());

                std::string fetched;
                StatusCode stGet = db.get("key", &fetched);
                EXPECT_TRUE(stGet.ok());
                EXPECT_TRUE(fetched == "data");

                EXPECT_FALSE(db.isClosed());
                db.close();
                EXPECT_TRUE(db.isClosed());
                std::string output;
                db.getStats(output);

                FileTools::removeDirectory(dbPath);
            }
        }
    }
}
示例#3
0
TEST_F(testsCombinedBlockStore, Basic2IbpSetPutGetMemCheck) {
    std::string ibp1Path = std::string(MKTMPNAME()) + "_IBP1";
    FileTools::createDirectory(ibp1Path);

    std::string ibp2Path = std::string(MKTMPNAME()) + "_IBP2";
    FileTools::createDirectory(ibp2Path);

    std::vector<std::string> ibpsPath;
    ibpsPath.emplace_back(ibp1Path);
    ibpsPath.emplace_back(ibp2Path);

    CombinedBlockStore db(ibpsPath);
    EXPECT_TRUE(db.isClosed());
    db.open();
    EXPECT_FALSE(db.isClosed());

    StatusCode stPut = db.put("key", "data");
    EXPECT_TRUE(stPut.ok());

    std::string fetched;
    StatusCode stGet = db.get("key", &fetched);
    EXPECT_TRUE(stGet.ok());
    EXPECT_TRUE(fetched == "data");

    std::string stats;
    EXPECT_TRUE(db.getStats(stats));
    EXPECT_FALSE(stats.empty());
    EXPECT_FALSE(db.isClosed());
    db.close();
    EXPECT_TRUE(db.isClosed());
    EXPECT_TRUE(db.repair().ok());

    FileTools::removeDirectory(ibp1Path);
    FileTools::removeDirectory(ibp2Path);
}
示例#4
0
文件: libibsc.cpp 项目: cyrinux/eguan
int ibsCommitTransaction(const int id, const int transactionId) {
    IBS_CHECK_ID(id);
    std::string transactionUuid;
    bool isValid = ibs::Transaction::getUuidFromId(transactionId, transactionUuid);
    if (isValid) {
        StatusCode status = ibs->commitTransaction(transactionUuid);
        if (status.ok()) {
            return 0;
        }
        else {
            return errorCodeFromStatusCode(status);
        }
    }
    else {
        return IBS__INVALID_TRANSACTION_ID;
    }
}