buf.fill(0xFF); written = buf.write('abcd', 0, 2, encoding); console.log(buf); assert.equal(written, 2); assert.equal(buf[0], 0x61); assert.equal(buf[1], 0x00); assert.equal(buf[2], 0xFF); assert.equal(buf[3], 0xFF); }); // test unmatched surrogates not producing invalid utf8 output // ef bf bd = utf-8 representation of unicode replacement character // see https://codereview.chromium.org/121173009/ // TRIREME: Different UTF-8 replacement in Java. buf = new Buffer('ab\ud800cd', 'utf8'); console.log(buf.inspect()); assert.equal(buf[0], 0x61); assert.equal(buf[1], 0x62); assert.equal(buf[2], 0x3f); assert.equal(buf[3], 0x63); assert.equal(buf[4], 0x64); // test for buffer overrun buf = new Buffer([0, 0, 0, 0, 0]); // length: 5 var sub = buf.slice(0, 4); // length: 4 written = sub.write('12345', 'binary'); assert.equal(written, 4); assert.equal(buf[4], 0); // test for _charsWritten buf = new Buffer(9);