@@ -1525,6 +1525,41 @@ test "sendfile" {
1525
1525
try testing .expectEqualStrings ("header1\n second header\n ine1\n secontrailer1\n second trailer\n " , written_buf [0.. amt ]);
1526
1526
}
1527
1527
1528
+ test "sendfile with buffered data" {
1529
+ var tmp = tmpDir (.{});
1530
+ defer tmp .cleanup ();
1531
+
1532
+ try tmp .dir .makePath ("os_test_tmp" );
1533
+
1534
+ var dir = try tmp .dir .openDir ("os_test_tmp" , .{});
1535
+ defer dir .close ();
1536
+
1537
+ var src_file = try dir .createFile ("sendfile1.txt" , .{ .read = true });
1538
+ defer src_file .close ();
1539
+
1540
+ try src_file .writeAll ("AAAABBBB" );
1541
+
1542
+ var dest_file = try dir .createFile ("sendfile2.txt" , .{ .read = true });
1543
+ defer dest_file .close ();
1544
+
1545
+ var src_buffer : [32 ]u8 = undefined ;
1546
+ var file_reader = src_file .reader (& src_buffer );
1547
+
1548
+ try file_reader .seekTo (0 );
1549
+ try file_reader .interface .fill (8 );
1550
+
1551
+ var fallback_buffer : [32 ]u8 = undefined ;
1552
+ var file_writer = dest_file .writer (& fallback_buffer );
1553
+
1554
+ try std .testing .expectEqual (4 , try file_writer .interface .sendFileAll (& file_reader , .limited (4 )));
1555
+
1556
+ var written_buf : [8 ]u8 = undefined ;
1557
+ const amt = try dest_file .preadAll (& written_buf , 0 );
1558
+
1559
+ try std .testing .expectEqual (4 , amt );
1560
+ try std .testing .expectEqualSlices (u8 , "AAAA" , written_buf [0.. amt ]);
1561
+ }
1562
+
1528
1563
test "copyRangeAll" {
1529
1564
var tmp = tmpDir (.{});
1530
1565
defer tmp .cleanup ();
0 commit comments