@@ -3947,20 +3947,46 @@ def test_file_packager_embed(self):
39473947    output = self.run_js('a.out.js')
39483948    self.assertContained('hello data', output)
39493949
3950-   def test_filepackager_standalone_modularize (self):
3950+   def test_file_packager_standalone_modularize (self):
39513951    MESSAGE = 'Remember to build the main file with `-sFORCE_FILESYSTEM` so that it includes support for loading this file package'
39523952
39533953    create_file('data.txt', 'hello data')
3954-     err = self.run_process([FILE_PACKAGER, 'test.data', '--modularize', '--preload', 'data.txt', '--js-output=data.js '], stderr=PIPE).stderr
3954+     err = self.run_process([FILE_PACKAGER, 'test.data', '--modularize', '--preload', 'data.txt', '--js-output=dataFileLoader.mjs '], stderr=PIPE).stderr
39553955    self.assertEqual(MESSAGE, err)
39563956
3957-     generated_content = read_file('data.js')
3957+     create_file('test.cpp', '''
3958+     #include <stdio.h>
3959+     #include <emscripten/bind.h>
3960+ 
3961+     int test_fun() {
3962+       FILE* f = fopen("data.txt", "r");
3963+       char buf[64];
3964+       int rtn = fread(buf, 1, 64, f);
3965+       buf[rtn] = '\\0';
3966+       fclose(f);
3967+       printf("%s\\n", buf);
3968+       return 0;
3969+     }
39583970
3959-     expected_opening = "export default function loadDataFile(Module) {"
3960-     expected_closing = "\n};\n// END the loadDataFile function"
3971+     EMSCRIPTEN_BINDINGS(my_module) {
3972+         emscripten::function("TestFun", &test_fun);
3973+     }
3974+     ''')
3975+     self.run_process([EMCC, 'test.cpp', '-sFORCE_FILESYSTEM', '-sMODULARIZE', '-sEXPORT_ES6', '-o', 'moduleFile.mjs', '-lembind'])
39613976
3962-     self.assertContained(expected_opening, generated_content)
3963-     self.assertContained(expected_closing, generated_content)
3977+     createFile('run.js', '''
3978+     import loadDataFile from 'dataFileLoader.mjs'
3979+     import {default as loadModule} from 'moduleFile.mjs'
3980+ 
3981+     var module = loadModule();
3982+     module.then((mod) => {
3983+       loadDataFile(mod);
3984+       mod.TestFun();
3985+     });
3986+     ''')
3987+ 
3988+     output = self.run_js('run.js')
3989+     self.assertContained('hello data', output)
39643990
39653991  @crossplatform
39663992  def test_file_packager_depfile(self):
0 commit comments