@@ -3788,21 +3788,34 @@ def check(text):
3788
3788
stderr = self.expect_fail([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../data1.txt'])
3789
3789
self.assertContained('which is not contained within the current directory', stderr)
3790
3790
3791
+ stderr = self.expect_fail([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../data1.txt', '--modularize'])
3792
+ self.assertContained('which is not contained within the current directory', stderr)
3793
+
3791
3794
# relative path that ends up under us is cool
3792
3795
proc = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../subdir/data2.txt'], stderr=PIPE, stdout=PIPE)
3793
3796
self.assertEqual(proc.stderr, '')
3794
3797
check(proc.stdout)
3795
3798
3796
- # direct path leads to the same code being generated - relative path does not make us do anything different
3797
- proc2 = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', 'data2.txt'], stderr=PIPE, stdout=PIPE)
3798
- check(proc2.stdout)
3799
- self.assertEqual(proc2.stderr, '')
3799
+ proc = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', '../subdir/data2.txt', '--modularize'], stderr=PIPE, stdout=PIPE)
3800
+ self.assertEqual(proc.stderr, '')
3801
+ check(proc.stdout)
3800
3802
3801
3803
def clean(txt):
3802
3804
lines = txt.splitlines()
3803
3805
lines = [l for l in lines if 'PACKAGE_UUID' not in l and 'loadPackage({' not in l]
3804
3806
return ''.join(lines)
3805
3807
3808
+ # direct path leads to the same code being generated - relative path does not make us do anything different
3809
+ proc2 = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', 'data2.txt'], stderr=PIPE, stdout=PIPE)
3810
+ check(proc2.stdout)
3811
+ self.assertEqual(proc2.stderr, '')
3812
+
3813
+ self.assertTextDataIdentical(clean(proc.stdout), clean(proc2.stdout))
3814
+
3815
+ proc2 = self.run_process([FILE_PACKAGER, 'test.data', '--quiet', '--preload', 'data2.txt', '--modularize'], stderr=PIPE, stdout=PIPE)
3816
+ check(proc2.stdout)
3817
+ self.assertEqual(proc2.stderr, '')
3818
+
3806
3819
self.assertTextDataIdentical(clean(proc.stdout), clean(proc2.stdout))
3807
3820
3808
3821
def test_file_packager_response_file(self):
@@ -3903,6 +3916,11 @@ def test_file_packager_returns_error_if_target_equal_to_jsoutput(self):
3903
3916
err = self.expect_fail([FILE_PACKAGER, 'test.data', '--js-output=test.data'])
3904
3917
self.assertContained(MESSAGE, err)
3905
3918
3919
+ def test_file_packager_returns_error_if_emcc_and_modularize(self):
3920
+ MESSAGE = 'error: Can\'t use modularize option together with --from-emcc since the code should be embedded within emcc\'s code'
3921
+ err = self.expect_fail([FILE_PACKAGER, 'test.data', '--modularize', '--from-emcc'])
3922
+ self.assertEqual(MESSAGE, err)
3923
+
3906
3924
def test_file_packager_embed(self):
3907
3925
create_file('data.txt', 'hello data')
3908
3926
@@ -3929,6 +3947,21 @@ def test_file_packager_embed(self):
3929
3947
output = self.run_js('a.out.js')
3930
3948
self.assertContained('hello data', output)
3931
3949
3950
+ def test_filepackager_standalone_modularize(self):
3951
+ MESSAGE = 'Remember to build the main file with `-sFORCE_FILESYSTEM` so that it includes support for loading this file package'
3952
+
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
3955
+ self.assertEqual(MESSAGE, err)
3956
+
3957
+ generated_content = read_file('data.js')
3958
+
3959
+ expected_opening = "export default function loadDataFile(Module) {"
3960
+ expected_closing = "\n};\n// END the loadDataFile function"
3961
+
3962
+ self.assertContained(expected_opening, generated_content)
3963
+ self.assertContained(expected_closing, generated_content)
3964
+
3932
3965
@crossplatform
3933
3966
def test_file_packager_depfile(self):
3934
3967
create_file('data1.txt', 'data1')
0 commit comments