diff --git a/src/library_wasmfs.js b/src/library_wasmfs.js index c138349320140..11fe48c4adadc 100644 --- a/src/library_wasmfs.js +++ b/src/library_wasmfs.js @@ -50,7 +50,8 @@ var WasmfsLibrary = { createDataFile: function(parent, name, data, canRead, canWrite, canOwn) { // Data files must be cached until the file system itself has been initialized. var mode = FS.getMode(canRead, canWrite); - wasmFS$preloadedFiles.push({pathName: parent, fileData: data, mode: mode}); + var pathName = name ? parent + '/' + name : parent; + wasmFS$preloadedFiles.push({pathName: pathName, fileData: data, mode: mode}); }, createPath: function(parent, path, canRead, canWrite) { // Cache file path directory names. diff --git a/tests/test_other.py b/tests/test_other.py index d621006745c13..1ebfd9176b0c6 100644 --- a/tests/test_other.py +++ b/tests/test_other.py @@ -1502,7 +1502,11 @@ def test_include_file(self, args): result = self.run_js('a.out.js', engine=config.NODE_JS) self.assertContained('|hello from a file wi|', result) - def test_embed_file_dup(self): + @parameterized({ + '': ([],), + 'wasmfs': (['-sWASMFS'],), + }) + def test_embed_file_dup(self, args): ensure_dir(self.in_dir('tst', 'test1')) ensure_dir(self.in_dir('tst', 'test2')) @@ -1529,7 +1533,7 @@ def test_embed_file_dup(self): } ''') - self.run_process([EMXX, 'main.cpp', '--embed-file', 'tst']) + self.run_process([EMXX, 'main.cpp', '--embed-file', 'tst'] + args) self.assertContained('|frist|\n|sacond|\n|thard|\n', self.run_js('a.out.js')) def test_exclude_file(self): diff --git a/tools/file_packager.py b/tools/file_packager.py index a05c9513fdb66..d00ba65376887 100755 --- a/tools/file_packager.py +++ b/tools/file_packager.py @@ -649,7 +649,7 @@ def generate_js(data_target, data_files, metadata): var content = HEAPU32[start32++]; var name = UTF8ToString(name_addr) // canOwn this data in the filesystem, it is a slice of wasm memory that will never change - Module['FS_createDataFile'](undefined, name, HEAP8.subarray(content, content + len), true, true, true); + Module['FS_createDataFile'](name, null, HEAP8.subarray(content, content + len), true, true, true); } while (HEAPU32[start32]);''' else: err('--obj-output is recommended when using --embed. This outputs an object file for linking directly into your application is more effecient than JS encoding')