@@ -1500,13 +1500,11 @@ fn readObjectRaw(allocator: Allocator, reader: *std.Io.Reader, size: u64) ![]u8
1500
1500
return aw .toOwnedSlice ();
1501
1501
}
1502
1502
1503
- /// Expands delta data from `delta_reader` to `writer`. `base_object` must
1504
- /// support `reader` and `seekTo` (such as a `std.io.FixedBufferStream`).
1503
+ /// Expands delta data from `delta_reader` to `writer`.
1505
1504
///
1506
1505
/// The format of the delta data is documented in
1507
1506
/// [pack-format](https://git-scm.com/docs/pack-format).
1508
1507
fn expandDelta (base_object : []const u8 , delta_reader : * std.Io.Reader , writer : * std.Io.Writer ) ! void {
1509
- var base_offset : u32 = 0 ;
1510
1508
while (true ) {
1511
1509
const inst : packed struct { value : u7 , copy : bool } = @bitCast (delta_reader .takeByte () catch | e | switch (e ) {
1512
1510
error .EndOfStream = > return ,
@@ -1528,7 +1526,7 @@ fn expandDelta(base_object: []const u8, delta_reader: *std.Io.Reader, writer: *s
1528
1526
.offset3 = if (available .offset3 ) try delta_reader .takeByte () else 0 ,
1529
1527
.offset4 = if (available .offset4 ) try delta_reader .takeByte () else 0 ,
1530
1528
};
1531
- base_offset = @bitCast (offset_parts );
1529
+ const base_offset : u32 = @bitCast (offset_parts );
1532
1530
const size_parts : packed struct { size1 : u8 , size2 : u8 , size3 : u8 } = .{
1533
1531
.size1 = if (available .size1 ) try delta_reader .takeByte () else 0 ,
1534
1532
.size2 = if (available .size2 ) try delta_reader .takeByte () else 0 ,
@@ -1537,7 +1535,6 @@ fn expandDelta(base_object: []const u8, delta_reader: *std.Io.Reader, writer: *s
1537
1535
var size : u24 = @bitCast (size_parts );
1538
1536
if (size == 0 ) size = 0x10000 ;
1539
1537
try writer .writeAll (base_object [base_offset .. ][0.. size ]);
1540
- base_offset += size ;
1541
1538
} else if (inst .value != 0 ) {
1542
1539
try delta_reader .streamExact (writer , inst .value );
1543
1540
} else {
@@ -1582,13 +1579,15 @@ fn runRepositoryTest(comptime format: Oid.Format, head_commit: []const u8) !void
1582
1579
// (all files in the test repo are known to be smaller than this)
1583
1580
const max_file_size = 8192 ;
1584
1581
1585
- const index_file_data = try git_dir .dir .readFileAlloc (testing .allocator , "testrepo.idx" , max_file_size );
1586
- defer testing .allocator .free (index_file_data );
1587
- // testrepo.idx is generated by Git. The index created by this file should
1588
- // match it exactly. Running `git verify-pack -v testrepo.pack` can verify
1589
- // this.
1590
- const testrepo_idx = @embedFile ("git/testdata/testrepo-" ++ @tagName (format ) ++ ".idx" );
1591
- try testing .expectEqualSlices (u8 , testrepo_idx , index_file_data );
1582
+ if (! skip_checksums ) {
1583
+ const index_file_data = try git_dir .dir .readFileAlloc (testing .allocator , "testrepo.idx" , max_file_size );
1584
+ defer testing .allocator .free (index_file_data );
1585
+ // testrepo.idx is generated by Git. The index created by this file should
1586
+ // match it exactly. Running `git verify-pack -v testrepo.pack` can verify
1587
+ // this.
1588
+ const testrepo_idx = @embedFile ("git/testdata/testrepo-" ++ @tagName (format ) ++ ".idx" );
1589
+ try testing .expectEqualSlices (u8 , testrepo_idx , index_file_data );
1590
+ }
1592
1591
1593
1592
var index_file_reader = index_file .reader (& index_file_buffer );
1594
1593
var repository : Repository = undefined ;
@@ -1669,12 +1668,10 @@ fn runRepositoryTest(comptime format: Oid.Format, head_commit: []const u8) !void
1669
1668
const skip_checksums = true ;
1670
1669
1671
1670
test "SHA-1 packfile indexing and checkout" {
1672
- if (skip_checksums ) return error .SkipZigTest ;
1673
1671
try runRepositoryTest (.sha1 , "dd582c0720819ab7130b103635bd7271b9fd4feb" );
1674
1672
}
1675
1673
1676
1674
test "SHA-256 packfile indexing and checkout" {
1677
- if (skip_checksums ) return error .SkipZigTest ;
1678
1675
try runRepositoryTest (.sha256 , "7f444a92bd4572ee4a28b2c63059924a9ca1829138553ef3e7c41ee159afae7a" );
1679
1676
}
1680
1677
0 commit comments