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; }
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; }