aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xemcc11
-rwxr-xr-xtests/runner.py11
-rw-r--r--tools/shared.py5
3 files changed, 16 insertions, 11 deletions
diff --git a/emcc b/emcc
index 596a9c33..d5b5e907 100755
--- a/emcc
+++ b/emcc
@@ -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):