diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-03-21 14:24:55 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-03-21 14:24:55 -0700 |
commit | e0092a687d3f62ff4dccda1ef628a4284aa878ca (patch) | |
tree | d8112b04828167936da9f0818b090d9502d09859 | |
parent | 0a169e141b51b2c0da7650bdc395dc4ca2068401 (diff) |
fix some bugs with preloading of entire directories
-rwxr-xr-x | emcc | 11 | ||||
-rwxr-xr-x | tests/runner.py | 11 | ||||
-rw-r--r-- | tools/shared.py | 5 |
3 files changed, 16 insertions, 11 deletions
@@ -816,8 +816,9 @@ try: # Expand directories into individual files def add(mode, dirname, names): for name in names: - combined = os.path.join(dirname, name) - data_files.append({ 'name': os.path.join(dirname, name), 'mode': mode }) + fullname = os.path.join(dirname, name) + if not os.path.isdir(fullname): + data_files.append({ 'name': fullname, 'mode': mode }) for file_ in data_files: if os.path.isdir(file_['name']): @@ -844,12 +845,12 @@ try: partial_dirs = [] for file_ in data_files: dirname = os.path.dirname(file_['name']) - parts = dirname.split(os.path.sep) if dirname != '' and dirname != os.path.sep: + parts = dirname.split(os.path.sep) for i in range(len(parts)): - partial = os.path.sep.join(parts[:i]) + partial = os.path.sep.join(parts[:i+1]) if partial not in partial_dirs: - code += '''FS.createFolder('/%s', '%s', true, false);\n''' % (os.path.sep.join(parts[:i-1]), parts[-1]) + code += '''FS.createFolder('/%s', '%s', true, false);\n''' % (os.path.sep.join(parts[:i]), parts[-1]) partial_dirs.append(partial) counter = 0 diff --git a/tests/runner.py b/tests/runner.py index d38af50c..fddcf1df 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -6277,10 +6277,11 @@ f.close() def test_emcc_multifile(self): # a few files inside a directory - if not os.path.exists(os.path.join(self.get_dir(), 'subdirr')): - os.makedirs(os.path.join(self.get_dir(), 'subdirr')); + self.clear() + os.makedirs(os.path.join(self.get_dir(), 'subdirr')); + os.makedirs(os.path.join(self.get_dir(), 'subdirr', 'moar')); open(os.path.join(self.get_dir(), 'subdirr', 'data1.txt'), 'w').write('''1214141516171819''') - open(os.path.join(self.get_dir(), 'subdirr', 'data2.txt'), 'w').write('''3.14159265358979''') + open(os.path.join(self.get_dir(), 'subdirr', 'moar', 'data2.txt'), 'w').write('''3.14159265358979''') open(os.path.join(self.get_dir(), 'main.cpp'), 'w').write(self.with_report_result(r''' #include <stdio.h> #include <string.h> @@ -6295,7 +6296,7 @@ f.close() printf("|%s|\n", buf); int result = !strcmp("1214141516171819", buf); - FILE *f2 = fopen("subdirr/data2.txt", "r"); + FILE *f2 = fopen("subdirr/moar/data2.txt", "r"); fread(buf, 1, 16, f2); buf[16] = 0; fclose(f2); @@ -6308,7 +6309,7 @@ f.close() ''')) # by individual files - Popen(['python', EMCC, os.path.join(self.get_dir(), 'main.cpp'), '--preload-file', 'subdirr/data1.txt', '--preload-file', 'subdirr/data2.txt', '-o', 'page.html']).communicate() + Popen(['python', EMCC, os.path.join(self.get_dir(), 'main.cpp'), '--preload-file', 'subdirr/data1.txt', '--preload-file', 'subdirr/moar/data2.txt', '-o', 'page.html']).communicate() self.run_browser('page.html', 'You should see two cool numbers', '/report_result?1') os.remove('page.html') diff --git a/tools/shared.py b/tools/shared.py index 8c968698..61ec912e 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -190,7 +190,10 @@ def try_delete(filename): try: os.unlink(filename) except: - pass + try: + shutil.rmtree(filename) + except: + pass class TempFiles: def __init__(self): |