support chunked transfer encoding to create failing test

This commit is contained in:
Emil Lerch 2023-08-29 11:56:23 -07:00
parent 70bd8dafa5
commit 0a1de2b967
Signed by: lobo
GPG Key ID: A7B62D657EF764F8

View File

@ -1330,6 +1330,7 @@ const TestOptions = struct {
server_remaining_requests: usize = 1, server_remaining_requests: usize = 1,
server_response: []const u8 = "unset", server_response: []const u8 = "unset",
server_response_headers: [][2][]const u8 = &[_][2][]const u8{}, server_response_headers: [][2][]const u8 = &[_][2][]const u8{},
server_response_transfer_encoding: ?std.http.TransferEncoding = null,
request_body: []u8 = "", request_body: []u8 = "",
request_method: std.http.Method = undefined, request_method: std.http.Method = undefined,
request_target: []const u8 = undefined, request_target: []const u8 = undefined,
@ -1445,7 +1446,11 @@ fn processRequest(options: *TestOptions, server: *std.http.Server) !void {
} }
break :brk "Unexpected error generating request to lambda"; break :brk "Unexpected error generating request to lambda";
}; };
res.transfer_encoding = .{ .content_length = response_bytes.len }; if (options.server_response_transfer_encoding == null)
res.transfer_encoding = .{ .content_length = response_bytes.len }
else
res.transfer_encoding = .chunked;
try res.do(); try res.do();
_ = try res.writer().writeAll(response_bytes); _ = try res.writer().writeAll(response_bytes);
try res.finish(); try res.finish();
@ -1504,7 +1509,7 @@ const TestSetup = struct {
null, null,
); );
aws_creds.static_credentials = self.creds; aws_creds.static_credentials = self.creds;
var client = try Client.init(self.allocator, .{}); var client = Client.init(self.allocator, .{});
self.client = &client; self.client = &client;
return .{ return .{
.region = "us-west-2", .region = "us-west-2",
@ -1806,6 +1811,7 @@ test "ec2_query_no_input: EC2 describe regions" {
.{ "Content-Type", "text/xml;charset=UTF-8" }, .{ "Content-Type", "text/xml;charset=UTF-8" },
.{ "x-amzn-RequestId", "4cdbdd69-800c-49b5-8474-ae4c17709782" }, .{ "x-amzn-RequestId", "4cdbdd69-800c-49b5-8474-ae4c17709782" },
}), }),
.server_response_transfer_encoding = .chunked,
}); });
defer test_harness.deinit(); defer test_harness.deinit();
const options = try test_harness.start(); const options = try test_harness.start();