aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library.js4
-rwxr-xr-xtests/runner.py24
2 files changed, 26 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js
index c3f7c600..25195415 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3215,7 +3215,7 @@ LibraryManager.library = {
var streamObj = FS.streams[stream];
if (bytesRead == -1) {
if (streamObj) streamObj.error = true;
- return -1;
+ return 0;
} else {
if (bytesRead < bytesToRead) streamObj.eof = true;
return Math.floor(bytesRead / size);
@@ -3299,7 +3299,7 @@ LibraryManager.library = {
var bytesWritten = _write(stream, ptr, bytesToWrite);
if (bytesWritten == -1) {
if (FS.streams[stream]) FS.streams[stream].error = true;
- return -1;
+ return 0;
} else {
return Math.floor(bytesWritten / size);
}
diff --git a/tests/runner.py b/tests/runner.py
index 1e5841a4..da37583d 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -4498,6 +4498,30 @@ def process(filename):
'''
self.do_run(src, 'isatty? 0,0,1\ngot: 35\ngot: 45\ngot: 25\ngot: 15\n', post_build=post)
+ def test_fwrite_0(self):
+ src = r'''
+ #include <stdio.h>
+ #include <stdlib.h>
+
+ int main ()
+ {
+ FILE *fh;
+
+ fh = fopen("a.txt", "wb");
+ if (!fh) exit(1);
+ fclose(fh);
+
+ fh = fopen("a.txt", "rb");
+ if (!fh) exit(1);
+
+ char data[] = "foobar";
+ size_t written = fwrite(data, 1, sizeof(data), fh);
+
+ printf("written=%zu\n", written);
+ }
+ '''
+ self.do_run(src, 'written=0')
+
def test_fgetc_unsigned(self):
if self.emcc_args is None: return self.skip('requires emcc')
src = r'''