@@ -21,6 +21,10 @@ const builtin = @import("builtin");
2121
2222const Allocator = std .mem .Allocator ;
2323
24+ pub const std_options = std.Options {
25+ .http_disable_tls = true ,
26+ };
27+
2428const BORDER = "=" ** 80 ;
2529
2630// use in custom panic handler
@@ -43,6 +47,12 @@ pub fn main() !void {
4347 var skip : usize = 0 ;
4448 var leak : usize = 0 ;
4549
50+ const address = try std .net .Address .parseIp ("127.0.0.1" , 9582 );
51+ var listener = try address .listen (.{.reuse_address = true });
52+ defer listener .deinit ();
53+ const http_thread = try std .Thread .spawn (.{}, serverHTTP , .{& listener });
54+ defer http_thread .join ();
55+
4656 const printer = Printer .init ();
4757 printer .fmt ("\r \x1b [0K" , .{}); // beginning of line and clear to end of line
4858
@@ -314,31 +324,55 @@ fn isTeardown(t: std.builtin.TestFn) bool {
314324 return std .mem .endsWith (u8 , t .name , "tests:afterAll" );
315325}
316326
317- test {
318- const msgTest = @import ( "msg.zig" ) ;
319- std . testing . refAllDecls ( msgTest );
320-
321- const dumpTest = @import ( "browser/dump.zig" );
322- std .testing . refAllDecls ( dumpTest );
323-
324- const mimeTest = @import ( "browser/mime.zig" );
325- std . testing . refAllDecls ( mimeTest );
326-
327- const cssTest = @import ( "css/css.zig" );
328- std .testing . refAllDecls ( cssTest );
329-
330- const cssParserTest = @import ( "css/parser.zig" );
331- std . testing . refAllDecls ( cssParserTest ) ;
327+ fn serverHTTP ( listener : * std.net.Server ) ! void {
328+ var read_buffer : [ 1024 ] u8 = undefined ;
329+ ACCEPT : while ( true ) {
330+ var conn = try listener . accept ();
331+ defer conn . stream . close ( );
332+ var server = std .http . Server . init ( conn , & read_buffer );
333+
334+ while ( server . state == .ready ) {
335+ var request = server . receiveHead () catch | err | switch ( err ) {
336+ error . HttpConnectionClosing = > continue : ACCEPT ,
337+ else = > {
338+ std .debug . print ( "Test HTTP Server error: {} \n " , .{ err } );
339+ return err ;
340+ }
341+ } ;
332342
333- const cssMatchTest = @import ("css/match_test.zig" );
334- std .testing .refAllDecls (cssMatchTest );
343+ const path = request .head .target ;
344+ if (std .mem .eql (u8 , path , "/loader" )) {
345+ try writeResponse (& request , .{
346+ .body = "Hello!" ,
347+ });
348+ }
349+ }
350+ }
351+ }
335352
336- const cssLibdomTest = @import ("css/libdom_test.zig" );
337- std .testing .refAllDecls (cssLibdomTest );
353+ const Response = struct {
354+ body : []const u8 = "" ,
355+ status : std.http.Status = .ok ,
356+ };
338357
339- const queryTest = @import ("url/query.zig" );
340- std .testing .refAllDecls (queryTest );
358+ fn writeResponse (req : * std.http.Server.Request , res : Response ) ! void {
359+ try req .respond (res .body , .{
360+ .status = res .status
361+ });
362+ }
341363
342- std .testing .refAllDecls (@import ("generate.zig" ));
364+ test {
365+ std .testing .refAllDecls ( @import ("url/query.zig" ));
366+ std .testing .refAllDecls (@import ("browser/dump.zig" ));
367+ std .testing .refAllDecls (@import ("browser/loader.zig" ));
368+ std .testing .refAllDecls (@import ("browser/mime.zig" ));
343369 std .testing .refAllDecls (@import ("cdp/msg.zig" ));
370+ std .testing .refAllDecls (@import ("css/css.zig" ));
371+ std .testing .refAllDecls (@import ("css/libdom_test.zig" ));
372+ std .testing .refAllDecls (@import ("css/match_test.zig" ));
373+ std .testing .refAllDecls (@import ("css/parser.zig" ));
374+ std .testing .refAllDecls (@import ("generate.zig" ));
375+ std .testing .refAllDecls (@import ("http/Client.zig" ));
376+ std .testing .refAllDecls (@import ("msg.zig" ));
377+ std .testing .refAllDecls (@import ("storage/storage.zig" ));
344378}
0 commit comments