@@ -3804,21 +3804,34 @@ def check(text):
3804
3804
stderr = self.expect_fail([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../data1.txt'])
3805
3805
self.assertContained('which is not contained within the current directory', stderr)
3806
3806
3807
+ stderr = self.expect_fail([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../data1.txt', '--modularize'])
3808
+ self.assertContained('which is not contained within the current directory', stderr)
3809
+
3807
3810
# relative path that ends up under us is cool
3808
3811
proc = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../subdir/data2.txt'], stderr=PIPE, stdout=PIPE)
3809
3812
self.assertEqual(proc.stderr, '')
3810
3813
check(proc.stdout)
3811
3814
3812
- # direct path leads to the same code being generated - relative path does not make us do anything different
3813
- proc2 = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', 'data2.txt'], stderr=PIPE, stdout=PIPE)
3814
- check(proc2.stdout)
3815
- self.assertEqual(proc2.stderr, '')
3815
+ proc = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../subdir/data2.txt', '--modularize'], stderr=PIPE, stdout=PIPE)
3816
+ self.assertEqual(proc.stderr, '')
3817
+ check(proc.stdout)
3816
3818
3817
3819
def clean(txt):
3818
3820
lines = txt.splitlines()
3819
3821
lines = [l for l in lines if 'PACKAGE_UUID' not in l and 'loadPackage({' not in l]
3820
3822
return ''.join(lines)
3821
3823
3824
+ # direct path leads to the same code being generated - relative path does not make us do anything different
3825
+ proc2 = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', 'data2.txt'], stderr=PIPE, stdout=PIPE)
3826
+ check(proc2.stdout)
3827
+ self.assertEqual(proc2.stderr, '')
3828
+
3829
+ self.assertTextDataIdentical(clean(proc.stdout), clean(proc2.stdout))
3830
+
3831
+ proc2 = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', 'data2.txt', '--modularize'], stderr=PIPE, stdout=PIPE)
3832
+ check(proc2.stdout)
3833
+ self.assertEqual(proc2.stderr, '')
3834
+
3822
3835
self.assertTextDataIdentical(clean(proc.stdout), clean(proc2.stdout))
3823
3836
3824
3837
def test_file_packager_response_file(self):
@@ -3919,6 +3932,11 @@ def test_file_packager_returns_error_if_target_equal_to_jsoutput(self):
3919
3932
err = self.expect_fail([FILE_PACKAGER, 'test.data', '--js-output=test.data'])
3920
3933
self.assertContained(MESSAGE, err)
3921
3934
3935
+ def test_file_packager_returns_error_if_emcc_and_modularize(self):
3936
+ MESSAGE = 'error: Can\'t use modularize option together with --from-emcc since the code should be embedded within emcc\'s code'
3937
+ err = self.expect_fail([FILE_PACKAGER, 'test.data', '--modularize', '--from-emcc'])
3938
+ self.assertEqual(MESSAGE, err)
3939
+
3922
3940
def test_file_packager_embed(self):
3923
3941
create_file('data.txt', 'hello data')
3924
3942
@@ -3945,6 +3963,21 @@ def test_file_packager_embed(self):
3945
3963
output = self.run_js('a.out.js')
3946
3964
self.assertContained('hello data', output)
3947
3965
3966
+ def test_filepackager_standalone_modularize(self):
3967
+ MESSAGE = 'Remember to build the main file with `-sFORCE_FILESYSTEM` so that it includes support for loading this file package'
3968
+
3969
+ 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
3971
+ self.assertEqual(MESSAGE, err)
3972
+
3973
+ generated_content = read_file('data.js')
3974
+
3975
+ expected_opening = "export default function loadDataFile(Module) {"
3976
+ expected_closing = "\n};\n// END the loadDataFile function"
3977
+
3978
+ self.assertContained(expected_opening, generated_content)
3979
+ self.assertContained(expected_closing, generated_content)
3980
+
3948
3981
@crossplatform
3949
3982
def test_file_packager_depfile(self):
3950
3983
create_file('data1.txt', 'data1')
0 commit comments