@@ -7,6 +7,7 @@ const Step = std.Build.Step;
7
7
const Coverage = std .debug .Coverage ;
8
8
const abi = std .Build .Fuzz .abi ;
9
9
const log = std .log ;
10
+ const assert = std .debug .assert ;
10
11
11
12
const WebServer = @This ();
12
13
@@ -383,7 +384,10 @@ fn sendCoverageContext(
383
384
// TODO: make each events URL correspond to one coverage map
384
385
const coverage_map = & coverage_maps [0 ];
385
386
const cov_header : * const abi.SeenPcsHeader = @ptrCast (coverage_map .mapped_memory [0.. @sizeOf (abi .SeenPcsHeader )]);
387
+ comptime assert (abi .SeenPcsHeader .trailing [0 ] == .pc_addr );
386
388
const seen_pcs = coverage_map .mapped_memory [@sizeOf (abi .SeenPcsHeader ) + coverage_map .source_locations .len * @sizeOf (usize ) .. ];
389
+ comptime assert (abi .SeenPcsHeader .trailing [1 ][0 ] == .pc_bits );
390
+ comptime assert (abi .SeenPcsHeader .trailing [1 ][1 ] == u8 );
387
391
const n_runs = @atomicLoad (usize , & cov_header .n_runs , .monotonic );
388
392
const unique_runs = @atomicLoad (usize , & cov_header .unique_runs , .monotonic );
389
393
const lowest_stack = @atomicLoad (usize , & cov_header .lowest_stack , .monotonic );
@@ -630,6 +634,7 @@ fn prepareTables(
630
634
gop .value_ptr .mapped_memory = mapped_memory ;
631
635
632
636
const header : * const abi.SeenPcsHeader = @ptrCast (mapped_memory [0.. @sizeOf (abi .SeenPcsHeader )]);
637
+ comptime assert (abi .SeenPcsHeader .trailing [0 ] == .pc_addr );
633
638
const pcs_bytes = mapped_memory [@sizeOf (abi .SeenPcsHeader ).. ][0 .. header .pcs_len * @sizeOf (usize )];
634
639
const pcs = std .mem .bytesAsSlice (usize , pcs_bytes );
635
640
const source_locations = try gpa .alloc (Coverage .SourceLocation , pcs .len );
@@ -649,6 +654,7 @@ fn addEntryPoint(ws: *WebServer, coverage_id: u64, addr: u64) error{ AlreadyRepo
649
654
650
655
const coverage_map = ws .coverage_files .getPtr (coverage_id ).? ;
651
656
const ptr = coverage_map .mapped_memory ;
657
+ comptime assert (abi .SeenPcsHeader .trailing [0 ] == .pc_addr );
652
658
const pcs_bytes = ptr [@sizeOf (abi .SeenPcsHeader ).. ][0 .. coverage_map .source_locations .len * @sizeOf (usize )];
653
659
const pcs : []const usize = @alignCast (std .mem .bytesAsSlice (usize , pcs_bytes ));
654
660
const index = std .sort .upperBound (usize , pcs , addr , struct {
0 commit comments