diff options
author | Anthony Pesch <inolen@gmail.com> | 2014-01-29 19:49:56 -0800 |
---|---|---|
committer | Anthony Pesch <inolen@gmail.com> | 2014-01-30 14:58:35 -0800 |
commit | e431e3d0e7e8cb17d956f8da4b94d4e02fa8efdf (patch) | |
tree | 49b164404ed024cbb45af0593ef1843aef31387f /tests | |
parent | 25252c1c65d622e84fb8ae646f90440b6587ea10 (diff) |
added basic unmount support
don't emit syncfs callback multiple times
error when mounting to an existing mountpoint
Diffstat (limited to 'tests')
-rw-r--r-- | tests/fs/test_mount.c | 60 | ||||
-rw-r--r-- | tests/test_core.py | 4 |
2 files changed, 64 insertions, 0 deletions
diff --git a/tests/fs/test_mount.c b/tests/fs/test_mount.c new file mode 100644 index 00000000..b1a337ad --- /dev/null +++ b/tests/fs/test_mount.c @@ -0,0 +1,60 @@ +#include <assert.h> +#include <stdio.h> +#include <emscripten.h> + +int main() { + EM_ASM( + var ex; + + // write a file that should be unaffected by this process + FS.writeFile('/safe.txt', 'abc'); + + // mount it the first time + FS.mkdir('/working'); + FS.mount(MEMFS, {}, '/working'); + FS.writeFile('/working/waka.txt', 'az'); + + // mount to a missing directory + try { + FS.mount(MEMFS, {}, '/missing'); + } catch (e) { + ex = e; + } + assert(ex instanceof FS.ErrnoError && ex.errno === ERRNO_CODES.ENOENT); + + // mount to an existing mountpoint + try { + FS.mount(MEMFS, {}, '/working'); + } catch (e) { + ex = e; + } + assert(ex instanceof FS.ErrnoError && ex.errno === ERRNO_CODES.EBUSY); + + // unmount + FS.unmount('/working'); + + // unmount something that's not mounted + try { + FS.unmount('/working'); + } catch (e) { + ex = e; + } + assert(ex instanceof FS.ErrnoError && ex.errno === ERRNO_CODES.EINVAL); + + // try to read the file from the old mount + try { + FS.readFile('/working/waka.txt', { encoding: 'utf8' }); + } catch (e) { + ex = e; + } + assert(ex instanceof FS.ErrnoError && ex.errno === ERRNO_CODES.ENOENT); + + // check the safe file + var contents = FS.readFile('/safe.txt', { encoding: 'utf8' }); + assert(contents === 'abc'); + ); + + puts("success"); + + return 0; +} diff --git a/tests/test_core.py b/tests/test_core.py index 18d7d74a..9827a859 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -3955,6 +3955,10 @@ def process(filename): ''' self.do_run(src, ('got: 35\ngot: 45\ngot: 25\ngot: 15\nisatty? 0,0,1\n', 'isatty? 0,0,1\ngot: 35\ngot: 45\ngot: 25\ngot: 15\n'), post_build=post) + def test_mount(self): + src = open(path_from_root('tests', 'fs', 'test_mount.c'), 'r').read() + self.do_run(src, 'success', force_c=True) + def test_fwrite_0(self): test_path = path_from_root('tests', 'core', 'test_fwrite_0') src, output = (test_path + s for s in ('.in', '.out')) |