Skip to content

Commit 1e7790c

Browse files
committed
change file_packager modularize test
1 parent 78e3bc9 commit 1e7790c

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

test/test_other.py

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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):

tools/file_packager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1174,7 +1174,7 @@ def generate_js(data_target, data_files, metadata):
11741174
loadPackage(%s);\n''' % json.dumps(metadata)
11751175

11761176
if options.modularize:
1177-
ret += '\n};\n// END the loadDataFile function'
1177+
ret += '\n};\n// END the loadDataFile function\n'
11781178
else:
11791179
ret += '''
11801180
})();\n'''

0 commit comments

Comments
 (0)