From b183b01c8e6ead0bf5e134e115c5a0fcb3aab367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 27 Nov 2018 21:46:24 +0100 Subject: add test for Buffer edge case --- js/buffer.ts | 3 +-- js/buffer_test.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'js') diff --git a/js/buffer.ts b/js/buffer.ts index f53f6b25d..b06259ed0 100644 --- a/js/buffer.ts +++ b/js/buffer.ts @@ -132,8 +132,7 @@ export class Buffer implements Reader, Writer { // Buffer is empty, reset to recover space. this.reset(); if (p.byteLength === 0) { - // TODO This edge case should be tested by porting TestReadEmptyAtEOF - // from the Go tests. + // this edge case is tested in 'bufferReadEmptyAtEOF' test return { nread: 0, eof: false }; } return { nread: 0, eof: true }; diff --git a/js/buffer_test.ts b/js/buffer_test.ts index c614b2e03..843a85f97 100644 --- a/js/buffer_test.ts +++ b/js/buffer_test.ts @@ -109,6 +109,16 @@ test(async function bufferBasicOperations() { } }); +test(async function bufferReadEmptyAtEOF() { + // check that EOF of 'buf' is not reached (even though it's empty) if + // results are written to buffer that has 0 length (ie. it can't store any data) + let buf = new Buffer(); + const zeroLengthTmp = new Uint8Array(0); + let result = await buf.read(zeroLengthTmp); + assertEqual(result.nread, 0); + assertEqual(result.eof, false); +}); + test(async function bufferLargeByteWrites() { init(); const buf = new Buffer(); -- cgit v1.2.3