@@ -3947,20 +3947,46 @@ def test_file_packager_embed(self):
3947
3947
output = self.run_js('a.out.js')
3948
3948
self.assertContained('hello data', output)
3949
3949
3950
- def test_filepackager_standalone_modularize (self):
3950
+ def test_file_packager_standalone_modularize (self):
3951
3951
MESSAGE = 'Remember to build the main file with `-sFORCE_FILESYSTEM` so that it includes support for loading this file package'
3952
3952
3953
3953
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
3955
3955
self.assertEqual(MESSAGE, err)
3956
3956
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
+ }
3958
3970
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'])
3961
3976
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)
3964
3990
3965
3991
@crossplatform
3966
3992
def test_file_packager_depfile(self):
0 commit comments