Skip to content

Commit 0e18817

Browse files
committed
C API plus test
1 parent e888c84 commit 0e18817

File tree

6 files changed

+689
-15
lines changed

6 files changed

+689
-15
lines changed

CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ SET(support_SOURCES
9090
)
9191
ADD_LIBRARY(support STATIC ${support_SOURCES})
9292

93+
SET(binaryen_c_SOURCES
94+
src/binaryen-c.cpp
95+
)
96+
ADD_LIBRARY(binaryen-c STATIC ${binaryen_c_SOURCES})
97+
9398
SET(binaryen-shell_SOURCES
9499
src/binaryen-shell.cpp
95100
src/pass.cpp

check.py

+27-15
Original file line numberDiff line numberDiff line change
@@ -569,21 +569,33 @@ def fix(x):
569569

570570
print '\n[ checking example testcases... ]\n'
571571

572-
cmd = [os.environ.get('CXX') or 'g++', '-std=c++11',
573-
os.path.join('test', 'example', 'find_div0s.cpp'),
574-
os.path.join('src', 'pass.cpp'),
575-
os.path.join('src', 'wasm.cpp'),
576-
os.path.join('src', 'passes', 'Print.cpp'),
577-
'-Isrc', '-g', '-lasmjs', '-lsupport', '-Llib/.', '-pthread']
578-
if os.environ.get('COMPILER_FLAGS'):
579-
for f in os.environ.get('COMPILER_FLAGS').split(' '):
580-
cmd.append(f)
581-
print ' '.join(cmd)
582-
subprocess.check_call(cmd)
583-
actual = subprocess.Popen(['./a.out'], stdout=subprocess.PIPE).communicate()[0]
584-
expected = open(os.path.join('test', 'example', 'find_div0s.txt')).read()
585-
if actual != expected:
586-
fail(actual, expected)
572+
for t in sorted(os.listdir(os.path.join('test', 'example'))):
573+
cmd = [os.path.join('src', 'pass.cpp'),
574+
os.path.join('src', 'wasm.cpp'),
575+
os.path.join('src', 'passes', 'Print.cpp'),
576+
'-Isrc', '-g', '-lasmjs', '-lsupport', '-Llib/.', '-pthread']
577+
if t.endswith('.cpp'):
578+
cmd = [os.path.join('test', 'example', t)] + cmd
579+
elif t.endswith('.c'):
580+
# build the C file separately
581+
extra = [os.environ.get('CC') or 'gcc',
582+
os.path.join('test', 'example', t), '-c', '-o', 'example.o',
583+
'-Isrc', '-g', '-lasmjs', '-lsupport', '-Llib/.', '-pthread']
584+
print ' '.join(extra)
585+
subprocess.check_call(extra)
586+
cmd = ['example.o', '-lbinaryen-c'] + cmd
587+
else:
588+
continue
589+
if os.environ.get('COMPILER_FLAGS'):
590+
for f in os.environ.get('COMPILER_FLAGS').split(' '):
591+
cmd.append(f)
592+
cmd = [os.environ.get('CXX') or 'g++', '-std=c++11'] + cmd
593+
print ' '.join(cmd)
594+
subprocess.check_call(cmd)
595+
actual = subprocess.Popen(['./a.out'], stdout=subprocess.PIPE).communicate()[0]
596+
expected = open(os.path.join('test', 'example', '.'.join(t.split('.')[:-1]) + '.txt')).read()
597+
if actual != expected:
598+
fail(actual, expected)
587599

588600
if has_emcc:
589601

0 commit comments

Comments
 (0)