Beispiel #1
0
int test_main(int argc, char *const argv[]) {
    int r;
    const char *env_dir = TOKU_TEST_FILENAME;
    const char *db_filename = "ftcxx_cursor_test";
    parse_args(argc, argv);

    char rm_cmd[strlen(env_dir) + strlen("rm -rf ") + 1];
    snprintf(rm_cmd, sizeof(rm_cmd), "rm -rf %s", env_dir);
    r = system(rm_cmd);
    assert_zero(r);

    r = toku_os_mkdir(env_dir, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
    assert_zero(r);

    int env_open_flags = DB_CREATE | DB_PRIVATE | DB_INIT_MPOOL | DB_INIT_TXN | DB_INIT_LOCK | DB_INIT_LOG;
    ftcxx::DBEnv env = ftcxx::DBEnvBuilder()
        .set_default_bt_compare(uint_dbt_cmp)
        .open(env_dir, env_open_flags, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

    ftcxx::DBTxn create_txn(env);
    ftcxx::DB db = ftcxx::DBBuilder()
        .open(env, create_txn, db_filename, NULL, DB_BTREE, DB_CREATE, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
    create_txn.commit();

    run_test(env, db);

    return 0;
}
Beispiel #2
0
void test_new_delete() {
    system("rm -rf " DIR);
    toku_os_mkdir(DIR, 0777);
    DbEnv env(0);
    { int r = env.set_redzone(0); assert(r==0); }
    { int r = env.open(DIR, DB_INIT_MPOOL + DB_CREATE + DB_PRIVATE, 0777); assert(r == 0); }
    Db *db = new Db(&env, 0); assert(db != 0);
    delete db;
}
int test_error_stream(void) {
    int r;

    system("rm -rf " DIR);
    toku_os_mkdir(DIR, 0777);

    DbEnv env(DB_CXX_NO_EXCEPTIONS);
    env.set_errpfx("my_env_error_stream");
    env.set_error_stream(&std::cerr);
    
    r = env.open(DIR, DB_INIT_MPOOL + DB_CREATE + DB_PRIVATE, 0777); assert(r == 0);
    r = env.open(DIR, DB_INIT_MPOOL + DB_CREATE + DB_PRIVATE, 0777); assert(r == EINVAL);

    Db db(&env, 0);
    db.set_errpfx("my_db_error_stream");
    db.set_error_stream(&std::cerr);
    r = db.open(NULL, FNAME, 0, DB_BTREE, DB_CREATE, 0777); assert(r == 0);
    r = db.close(0); assert(r == 0);
    r = db.close(0); assert(r == EINVAL);
    r = env.close(0); assert(r == 0);
    r = env.close(0); assert(r == EINVAL);
    return 0;
}