diff options
author | Anthony Pesch <inolen@gmail.com> | 2013-09-27 00:53:28 -0700 |
---|---|---|
committer | Anthony Pesch <inolen@gmail.com> | 2013-09-29 01:50:35 -0700 |
commit | 4db117910eb13fc93d632dd4e3fb4cf127544538 (patch) | |
tree | 64d1790b108f642168fb1c8033f407e32909b60e /tests/fs | |
parent | 67f4aab994dc04230d96eb0fed7f8bce57f2f188 (diff) |
- added basic nodefs r/w test
Diffstat (limited to 'tests/fs')
-rw-r--r-- | tests/fs/test_nodefs_rw.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/fs/test_nodefs_rw.c b/tests/fs/test_nodefs_rw.c new file mode 100644 index 00000000..140da332 --- /dev/null +++ b/tests/fs/test_nodefs_rw.c @@ -0,0 +1,49 @@ +#include <assert.h> +#include <stdio.h> +#include <emscripten.h> + +int main() { + FILE *file; + int res; + char buffer[512]; + + // write something locally with node + EM_ASM( + var fs = require('fs'); + fs.writeFileSync('foobar.txt', 'yeehaw'); + ); + + // mount the current folder as a NODEFS instance + // inside of emscripten + EM_ASM( + FS.mkdir('/working'); + FS.mount(NODEFS, { root: '.' }, '/working'); + ); + + // read and validate the contents of the file + file = fopen("/working/foobar.txt", "r"); + assert(file); + res = fread(buffer, sizeof(char), 6, file); + assert(res == 6); + fclose(file); + + assert(!strcmp(buffer, "yeehaw")); + + // write out something new + file = fopen("/working/foobar.txt", "w"); + assert(file); + res = fwrite("cheez", sizeof(char), 5, file); + assert(res == 5); + fclose(file); + + // validate the changes were persisted to the underlying fs + EM_ASM( + var fs = require('fs'); + var contents = fs.readFileSync('foobar.txt', { encoding: 'utf8' }); + assert(contents === 'cheez'); + ); + + puts("success"); + + return 0; +} |