aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-02-11 22:19:41 -0700
committerAndrew Kelley <andrew@ziglang.org>2024-02-23 02:37:11 -0700
commit50e2a5f673d880515caf3497bfb6eb0114149de1 (patch)
tree81e3aa0e6078f86f4669c3f2189dd54431938da2 /test
parent06d0c58305a04d28da9a2caf510fc906e38a54ef (diff)
downloadzig-50e2a5f673d880515caf3497bfb6eb0114149de1.tar.gz
zig-50e2a5f673d880515caf3497bfb6eb0114149de1.zip
std.http: remove 'done' flag
This is a state machine that already has a `state` field. No need to additionally store "done" - it just makes things unnecessarily complicated and buggy.
Diffstat (limited to 'test')
-rw-r--r--test/standalone/http.zig95
1 files changed, 76 insertions, 19 deletions
diff --git a/test/standalone/http.zig b/test/standalone/http.zig
index 5002d8910d..a50721e4d0 100644
--- a/test/standalone/http.zig
+++ b/test/standalone/http.zig
@@ -165,10 +165,11 @@ fn handleRequest(res: *Server.Response) !void {
var handle_new_requests = true;
fn runServer(srv: *Server) !void {
+ var client_header_buffer: [1024]u8 = undefined;
outer: while (handle_new_requests) {
var res = try srv.accept(.{
.allocator = salloc,
- .header_strategy = .{ .dynamic = max_header_size },
+ .client_header_buffer = &client_header_buffer,
});
defer res.deinit();
@@ -244,7 +245,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -269,7 +273,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -293,7 +300,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.HEAD, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.HEAD, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -319,7 +329,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -344,7 +357,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.HEAD, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.HEAD, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -370,7 +386,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -397,7 +416,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.POST, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.POST, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
req.transfer_encoding = .{ .content_length = 14 };
@@ -429,7 +451,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -456,7 +481,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.POST, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.POST, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
req.transfer_encoding = .chunked;
@@ -486,7 +514,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -510,7 +541,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -534,7 +568,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -558,7 +595,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -580,7 +620,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.GET, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.GET, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
try req.send(.{});
@@ -628,7 +671,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.POST, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.POST, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
req.transfer_encoding = .chunked;
@@ -659,7 +705,10 @@ pub fn main() !void {
const uri = try std.Uri.parse(location);
log.info("{s}", .{location});
- var req = try client.open(.POST, uri, h, .{});
+ var server_header_buffer: [1024]u8 = undefined;
+ var req = try client.open(.POST, uri, h, .{
+ .server_header_buffer = &server_header_buffer,
+ });
defer req.deinit();
req.transfer_encoding = .chunked;
@@ -678,9 +727,17 @@ pub fn main() !void {
var requests = try calloc.alloc(http.Client.Request, total_connections);
defer calloc.free(requests);
+ var header_bufs = std.ArrayList([]u8).init(calloc);
+ defer header_bufs.deinit();
+ defer for (header_bufs.items) |item| calloc.free(item);
+
for (0..total_connections) |i| {
- var req = try client.open(.GET, uri, .{ .allocator = calloc }, .{});
- req.response.parser.done = true;
+ const headers_buf = try calloc.alloc(u8, 1024);
+ try header_bufs.append(headers_buf);
+ var req = try client.open(.GET, uri, .{ .allocator = calloc }, .{
+ .server_header_buffer = headers_buf,
+ });
+ req.response.parser.state = .complete;
req.connection.?.closing = false;
requests[i] = req;
}