aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorjuj <jujjyl@gmail.com>2014-05-02 15:49:51 +0300
committerjuj <jujjyl@gmail.com>2014-05-02 15:49:51 +0300
commit4cd5d1d622a6a2b32a5f91df5285060faa93a023 (patch)
treea30defa6d1bab3b41cec5902d1f17f0d03a58583 /tests
parent9dd3a7059749d4051202687817bf6b68ab2ce54c (diff)
parent439612cf923b70e87b4c4e739b90ec1df23ddda3 (diff)
Merge pull request #2330 from juj/fs-tracking
fs-tracking
Diffstat (limited to 'tests')
-rw-r--r--tests/fs/test_trackingdelegate.c39
-rw-r--r--tests/fs/test_trackingdelegate.out9
-rw-r--r--tests/test_core.py5
3 files changed, 53 insertions, 0 deletions
diff --git a/tests/fs/test_trackingdelegate.c b/tests/fs/test_trackingdelegate.c
new file mode 100644
index 00000000..6cdece72
--- /dev/null
+++ b/tests/fs/test_trackingdelegate.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <emscripten.h>
+
+int main() {
+
+ EM_ASM(
+ FS.trackingDelegate['willMovePath'] = function(oldpath, newpath) {
+ Module.print('About to move "' + oldpath + '" to "' + newpath + '"');
+ };
+ FS.trackingDelegate['onMovePath'] = function(oldpath, newpath) {
+ Module.print('Moved "' + oldpath + '" to "' + newpath + '"');
+ };
+ FS.trackingDelegate['willDeletePath'] = function(path) {
+ Module.print('About to delete "' + path + '"');
+ };
+ FS.trackingDelegate['onDeletePath'] = function(path) {
+ Module.print('Deleted "' + path + '"');
+ };
+ FS.trackingDelegate['onOpenFile'] = function(path, flags) {
+ Module.print('Opened "' + path + '" with flags ' + flags);
+ };
+ FS.trackingDelegate['onWriteToFile'] = function(path) {
+ Module.print('Wrote to file "' + path + '"');
+ };
+ );
+
+ FILE *file;
+ file = fopen("/file.txt", "w");
+ fputs("hello!", file);
+ fclose(file);
+ rename("/file.txt", "/renamed.txt");
+ file = fopen("/renamed.txt", "r");
+ char str[256] = {};
+ fgets(str, 255, file);
+ printf("File read returned '%s'\n", str);
+ fclose(file);
+ remove("/renamed.txt");
+}
diff --git a/tests/fs/test_trackingdelegate.out b/tests/fs/test_trackingdelegate.out
new file mode 100644
index 00000000..b3c941c2
--- /dev/null
+++ b/tests/fs/test_trackingdelegate.out
@@ -0,0 +1,9 @@
+Opened "/file.txt" with flags 2
+Wrote to file "/file.txt"
+About to move "/file.txt" to "/renamed.txt"
+Moved "/file.txt" to "/renamed.txt"
+Opened "/renamed.txt" with flags 1
+File read returned 'hello!'
+Wrote to file "/dev/tty"
+About to delete "/renamed.txt"
+Deleted "/renamed.txt"
diff --git a/tests/test_core.py b/tests/test_core.py
index 379559e7..cf2730d0 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -4254,6 +4254,11 @@ def process(filename):
src = open(path_from_root('tests', 'fs', 'test_nodefs_rw.c'), 'r').read()
self.do_run(src, 'success', force_c=True, js_engines=[NODE_JS])
+ def test_fs_trackingdelegate(self):
+ src = path_from_root('tests', 'fs', 'test_trackingdelegate.c')
+ out = path_from_root('tests', 'fs', 'test_trackingdelegate.out')
+ self.do_run_from_file(src, out)
+
def test_unistd_access(self):
self.clear()
if not self.is_emscripten_abi(): return self.skip('asmjs-unknown-emscripten needed for inline js')