comparison seobeo/tests/seobeo_response_test.c @ 223:0e7b9464248d hg-web

[hg-web] Add browser route regression coverage
author MrJuneJune <me@mrjunejune.com>
date Sun, 02 Aug 2026 10:07:40 -0700
parents ce7f4400c2de
children
comparison
equal deleted inserted replaced
222:a8d6435dc021 223:0e7b9464248d
43 43
44 close(sockets[0]); 44 close(sockets[0]);
45 close(sockets[1]); 45 close(sockets[1]);
46 free(handle.write_buffer); 46 free(handle.write_buffer);
47 Dowa_Arena_Free(arena); 47 Dowa_Arena_Free(arena);
48
49 if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) != 0)
50 return 1;
51
52 memset(&handle, 0, sizeof(handle));
53 handle.socket = sockets[0];
54 handle.write_buffer_capacity = 4096;
55 handle.write_buffer = malloc(handle.write_buffer_capacity);
56 arena = Dowa_Arena_Create(4096);
57 response = NULL;
58 Dowa_HashMap_Push_Arena(response, "status", "204", arena);
59 Dowa_HashMap_Push_Arena(response, "content-type", "text/plain", arena);
60 Dowa_HashMap_Push_Arena(response, "body", "", arena);
61 Seobeo_Router_Send_Response(&handle, response, arena);
62
63 memset(received, 0, sizeof(received));
64 length = read(sockets[1], received, sizeof(received) - 1);
65 if (length <= 0 ||
66 !strstr(received, "HTTP/1.1 204 No Content\r\n") ||
67 !strstr(received, "Content-Length: 0\r\n") ||
68 !strstr(received, "\r\n\r\n"))
69 failed = 1;
70
71 if (failed)
72 fprintf(stderr, "Unexpected no-content response:\n%s\n", received);
73
74 close(sockets[0]);
75 close(sockets[1]);
76 free(handle.write_buffer);
77 Dowa_Arena_Free(arena);
48 return failed; 78 return failed;
49 } 79 }