static void test(bool do_encrypt) { struct st_object *obj; struct st_keylist *klist; struct st_client *stc; int port; bool rcb; char val[] = "my first value"; char key[64] = "deadbeef"; size_t len = 0; void *mem; port = hail_readport(TEST_PORTFILE); OK(port > 0); stc = stc_new(TEST_HOST, port, TEST_USER, TEST_USER_KEY, do_encrypt); OK(stc); rcb = stc_table_openz(stc, TEST_TABLE, 0); OK(rcb); /* store object */ rcb = stc_put_inlinez(stc, key, val, strlen(val), 0); OK(rcb); /* make sure object appears in list of volume keys */ klist = stc_keys(stc); OK(klist); OK(klist->contents); OK(klist->contents->next == NULL); obj = klist->contents->data; OK(obj); OK(obj->name); OK(!strcmp(obj->name, key)); OK(obj->time_mod); OK(obj->etag); OK(obj->size == strlen(val)); OK(obj->owner); stc_free_keylist(klist); /* get object */ mem = stc_get_inlinez(stc, key, &len); OK(mem); OK(len == strlen(val)); OK(!memcmp(val, mem, strlen(val))); free(mem); /* delete object */ rcb = stc_delz(stc, key); OK(rcb); stc_free(stc); }
static struct st_client *stc_new2(const char *server) { char *host; char *port; host = strdupa(server); host = strtok(host, ":"); if (!host) return NULL; port = strtok(NULL, ":"); if (!port) return NULL; return stc_new(host, atoi(port), "testuser", "testuser", false); }