public async Task ReadStreamDoesNotOverflowOnMoreThan2GB() { // This test should never fail with OverflowException var repeated = new byte["128 MB".ToSize()]; Func <Task <ByteString> > producer = async() => await Task.FromResult(ByteString.CopyFrom(repeated)); using (var readStream = new BufferedReadStream(producer)) { var data = new byte["128 MB".ToSize()]; while (readStream.Position < "4 GB".ToSize()) { await readStream.ReadAsync(data, 0, data.Length); } } }