diff options
| author | Jesper Jensen <jesper@jnsn.dev> | 2025-07-18 11:08:44 +0200 |
|---|---|---|
| committer | Jesper Jensen <jesper@jnsn.dev> | 2025-07-18 11:08:44 +0200 |
| commit | 70f7f2ec889c82a38328ea22b3d0bb60ce58410f (patch) | |
| tree | 7583bdc5642afa4c3529994b8daa1226c73bc509 /test/api.c | |
| parent | 84ba09387e3305aaef1ccb63db5207ae5ad6b936 (diff) | |
Test that we can't cancel a lookup
Diffstat (limited to 'test/api.c')
| -rw-r--r-- | test/api.c | 68 |
1 files changed, 48 insertions, 20 deletions
@@ -147,32 +147,35 @@ void test_lookup_get() { dht.self = (struct nodeid){.inner={0x42424242, 0x42424242, 0x42424242, 0x42424242, 0x42424242}}; api_init(&dht); - curlRes = curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:6982/lookup"); - TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + long code; + char *ct; + struct memory body = {0}; + { + curlRes = curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:6982/lookup"); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); - curlRes = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_memory); - TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + curlRes = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_memory); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); - struct memory body = {0}; - curlRes = curl_easy_setopt(curl, CURLOPT_WRITEDATA, &body); - TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + curlRes = curl_easy_setopt(curl, CURLOPT_WRITEDATA, &body); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); - curlRes = curl_easy_perform(curl); - TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + curlRes = curl_easy_perform(curl); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); - char *ct; - curlRes = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct); - TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + curlRes = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); - TEST_ASSERT_EQUAL_STRING("application/json", ct); + TEST_ASSERT_EQUAL_STRING("application/json", ct); - TEST_ASSERT_EQUAL_STRING( - "{ " - "\"state\": \"empty\" " - "}", - body.body - ); - body = (struct memory){0}; + TEST_ASSERT_EQUAL_STRING( + "{ " + "\"state\": \"empty\" " + "}", + body.body + ); + body = (struct memory){0}; + } { curlRes = curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); @@ -206,6 +209,31 @@ void test_lookup_get() { body = (struct memory){0}; } + { + curlRes = curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + + curlRes = curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_from_memory); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + + struct memory req_body = { + .body = "{\"state\": \"empty\"}", + .size = strlen(req_body.body), + }; + curlRes = curl_easy_setopt(curl, CURLOPT_READDATA, &req_body); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + + curlRes = curl_easy_perform(curl); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + + curlRes = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code); + TEST_ASSERT_EQUAL(CURLE_OK, curlRes); + TEST_ASSERT_EQUAL(409, code); + + body = (struct memory){0}; + } + + // The protocol does whatever and complete the lookup dht.lookup.state = OP_COMPLETED; |
