@@ -3963,20 +3963,46 @@ def test_file_packager_embed(self):
39633963 output = self.run_js('a.out.js')
39643964 self.assertContained('hello data', output)
39653965
3966- def test_filepackager_standalone_modularize (self):
3966+ def test_file_packager_standalone_modularize (self):
39673967 MESSAGE = 'Remember to build the main file with `-sFORCE_FILESYSTEM` so that it includes support for loading this file package'
39683968
39693969 create_file('data.txt', 'hello data')
3970- err = self.run_process([FILE_PACKAGER, 'test.data', '--modularize', '--preload', 'data.txt', '--js-output=data.js '], stderr=PIPE).stderr
3970+ err = self.run_process([FILE_PACKAGER, 'test.data', '--modularize', '--preload', 'data.txt', '--js-output=dataFileLoader.mjs '], stderr=PIPE).stderr
39713971 self.assertEqual(MESSAGE, err)
39723972
3973- generated_content = read_file('data.js')
3973+ create_file('test.cpp', '''
3974+ #include <stdio.h>
3975+ #include <emscripten/bind.h>
3976+
3977+ int test_fun() {
3978+ FILE* f = fopen("data.txt", "r");
3979+ char buf[64];
3980+ int rtn = fread(buf, 1, 64, f);
3981+ buf[rtn] = '\\0';
3982+ fclose(f);
3983+ printf("%s\\n", buf);
3984+ return 0;
3985+ }
39743986
3975- expected_opening = "export default function loadDataFile(Module) {"
3976- expected_closing = "\n};\n// END the loadDataFile function"
3987+ EMSCRIPTEN_BINDINGS(my_module) {
3988+ emscripten::function("TestFun", &test_fun);
3989+ }
3990+ ''')
3991+ self.run_process([EMCC, 'test.cpp', '-sFORCE_FILESYSTEM', '-sMODULARIZE', '-sEXPORT_ES6', '-o', 'moduleFile.mjs', '-lembind'])
39773992
3978- self.assertContained(expected_opening, generated_content)
3979- self.assertContained(expected_closing, generated_content)
3993+ create_file('run.js', '''
3994+ import loadDataFile from 'dataFileLoader.mjs'
3995+ import {default as loadModule} from 'moduleFile.mjs'
3996+
3997+ var module = loadModule();
3998+ module.then((mod) => {
3999+ loadDataFile(mod);
4000+ mod.TestFun();
4001+ });
4002+ ''')
4003+
4004+ output = self.run_js('run.js')
4005+ self.assertContained('hello data', output)
39804006
39814007 @crossplatform
39824008 def test_file_packager_depfile(self):
0 commit comments