Skip to content
Prev Previous commit
Test performing scatter/gather I/O with an empty segment array.
  • Loading branch information
teo-tsirpanis committed Sep 13, 2021
commit 0c0f64edfcd6918f2c74462314aee2d26a42c71d
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,17 @@ public async Task ReadWriteAsyncUsingMultipleBuffers(bool memoryPageSized)
}
}

[Fact]
public async Task ReadWriteAsyncUsingEmptyBuffers()
{
string filePath = GetTestFilePath();
using SafeFileHandle handle = File.OpenHandle(filePath, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None, FileOptions.Asynchronous | NoBuffering);

long nRead = await RandomAccess.ReadAsync(handle, Array.Empty<Memory<byte>>(), 0);
Assert.Equal(0, nRead);
await RandomAccess.WriteAsync(handle, Array.Empty<ReadOnlyMemory<byte>>(), 0);
}

// when using FileOptions.Asynchronous we are testing Scatter&Gather APIs on Windows (FILE_FLAG_OVERLAPPED requirement)
private static FileOptions GetFileOptions(bool asyncHandle) => (asyncHandle ? FileOptions.Asynchronous : FileOptions.None) | NoBuffering;
}
Expand Down