summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJesper Jensen <jesper@jnsn.dev>2025-07-18 11:08:44 +0200
committerJesper Jensen <jesper@jnsn.dev>2025-07-18 11:08:44 +0200
commit70f7f2ec889c82a38328ea22b3d0bb60ce58410f (patch)
tree7583bdc5642afa4c3529994b8daa1226c73bc509 /test
parent84ba09387e3305aaef1ccb63db5207ae5ad6b936 (diff)
Test that we can't cancel a lookup
Diffstat (limited to 'test')
-rw-r--r--test/api.c68
1 files changed, 48 insertions, 20 deletions
diff --git a/test/api.c b/test/api.c
index c88ed46..06edc9b 100644
--- a/test/api.c
+++ b/test/api.c
@@ -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;