TEST empty_set_get() { int retval; long size, number; unsigned char *data; rlite *db = NULL; RL_CALL_VERBOSE(rl_open, RL_OK, ":memory:", &db, RLITE_OPEN_READWRITE | RLITE_OPEN_CREATE); RL_CALL_VERBOSE(rl_multi_string_set, RL_OK, db, &number, NULL, 0); RL_CALL_VERBOSE(rl_multi_string_get, RL_OK, db, number, &data, &size); EXPECT_INT(size, 0); EXPECT_PTR(data, NULL); rl_close(db); PASS(); }
TEST basic_insert_hash_test() { long btree_node_size = 2; INIT(); long **keys = malloc(sizeof(long *) * 7); long **vals = malloc(sizeof(long *) * 7); long btree_page = db->next_empty_page; RL_CALL_VERBOSE(rl_write, RL_OK, db, btree->type->btree_type, btree_page, btree); long i; for (i = 0; i < 7; i++) { keys[i] = malloc(sizeof(long)); vals[i] = malloc(sizeof(long)); *keys[i] = i + 1; *vals[i] = i * 10; RL_CALL_VERBOSE(rl_btree_add_element, RL_OK, db, btree, btree_page, keys[i], vals[i]); RL_CALL_VERBOSE(rl_btree_is_balanced, RL_OK, db, btree); } void *val; for (i = 0; i < 7; i++) { RL_CALL_VERBOSE(rl_btree_find_score, RL_FOUND, db, btree, keys[i], &val, NULL, NULL); EXPECT_PTR(val, vals[i]); EXPECT_LONG(*(long *)val, i * 10); } long nonexistent_vals[2] = {0, 8}; for (i = 0; i < 2; i++) { RL_CALL_VERBOSE(rl_btree_find_score, RL_NOT_FOUND, db, btree, &nonexistent_vals[i], NULL, NULL, NULL); } retval = 0; cleanup: free(vals); free(keys); rl_close(db); if (retval == 0) { PASS(); } else { FAIL(); } }