| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 50a0a22 commit 5fa4455
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -907,6 +907,11 @@ function writev(fd, buffers, position, callback) { | |||
| 907 | 907 | validateBufferArray(buffers); | |
| 908 | 908 | callback = maybeCallback(callback || position); | |
| 909 | 909 | ||
| 910 | + if (buffers.length === 0) { | ||
| 911 | + process.nextTick(callback, null, 0, buffers); | ||
| 912 | + return; | ||
| 913 | + } | ||
| 914 | + | ||
| 910 | 915 | const req = new FSReqCallback(); | |
| 911 | 916 | req.oncomplete = wrapper; | |
| 912 | 917 | ||
@@ -933,6 +938,10 @@ function writevSync(fd, buffers, position) { | |||
| 933 | 938 | fd = getValidatedFd(fd); | |
| 934 | 939 | validateBufferArray(buffers); | |
| 935 | 940 | ||
| 941 | + if (buffers.length === 0) { | ||
| 942 | + return 0; | ||
| 943 | + } | ||
| 944 | + | ||
| 936 | 945 | const ctx = {}; | |
| 937 | 946 | ||
| 938 | 947 | if (typeof position !== 'number') | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -56,11 +56,21 @@ const getFileName = (i) => path.join(tmpdir.path, `writev_sync_${i}.txt`); | |||
| 56 | 56 | assert(Buffer.concat(bufferArr).equals(fs.readFileSync(filename))); | |
| 57 | 57 | } | |
| 58 | 58 | ||
| 59 | + // fs.writevSync with empty array of buffers | ||
| 60 | + { | ||
| 61 | + const filename = getFileName(3); | ||
| 62 | + const fd = fs.openSync(filename, 'w'); | ||
| 63 | + const written = fs.writevSync(fd, []); | ||
| 64 | + assert.strictEqual(written, 0); | ||
| 65 | + fs.closeSync(fd); | ||
| 66 | + | ||
| 67 | + } | ||
| 68 | + | ||
| 59 | 69 | /** | |
| 60 | 70 | * Testing with wrong input types | |
| 61 | 71 | */ | |
| 62 | 72 | { | |
| 63 | - const filename = getFileName(3); | ||
| 73 | + const filename = getFileName(4); | ||
| 64 | 74 | const fd = fs.openSync(filename, 'w'); | |
| 65 | 75 | ||
| 66 | 76 | [false, 'test', {}, [{}], ['sdf'], null, undefined].forEach((i) => { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -57,11 +57,30 @@ const getFileName = (i) => path.join(tmpdir.path, `writev_${i}.txt`); | |||
| 57 | 57 | fs.writev(fd, bufferArr, done); | |
| 58 | 58 | } | |
| 59 | 59 | ||
| 60 | + | ||
| 61 | + // fs.writev with empty array of buffers | ||
| 62 | + { | ||
| 63 | + const filename = getFileName(3); | ||
| 64 | + const fd = fs.openSync(filename, 'w'); | ||
| 65 | + const bufferArr = []; | ||
| 66 | + let afterSyncCall = false; | ||
| 67 | + | ||
| 68 | + const done = common.mustSucceed((written, buffers) => { | ||
| 69 | + assert.strictEqual(buffers.length, 0); | ||
| 70 | + assert.strictEqual(written, 0); | ||
| 71 | + assert(afterSyncCall); | ||
| 72 | + fs.closeSync(fd); | ||
| 73 | + }); | ||
| 74 | + | ||
| 75 | + fs.writev(fd, bufferArr, done); | ||
| 76 | + afterSyncCall = true; | ||
| 77 | + } | ||
| 78 | + | ||
| 60 | 79 | /** | |
| 61 | 80 | * Testing with wrong input types | |
| 62 | 81 | */ | |
| 63 | 82 | { | |
| 64 | - const filename = getFileName(3); | ||
| 83 | + const filename = getFileName(4); | ||
| 65 | 84 | const fd = fs.openSync(filename, 'w'); | |
| 66 | 85 | ||
| 67 | 86 | [false, 'test', {}, [{}], ['sdf'], null, undefined].forEach((i) => { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments