summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcheck.py19
-rw-r--r--test/wasm_backend/hello_world.cpp8
-rw-r--r--test/wasm_backend/hello_world.txt1
3 files changed, 27 insertions, 1 deletions
diff --git a/check.py b/check.py
index bb21c9dfc..78dbb1751 100755
--- a/check.py
+++ b/check.py
@@ -241,6 +241,7 @@ if actual != expected:
fail(actual, expected)
if has_emcc:
+
print '\n[ checking wasm.js methods... ]\n'
for method in [None, 'asm2wasm', 'wasm-s-parser', 'just-asm']:
@@ -282,7 +283,23 @@ if has_emcc:
assert proc.returncode != 0
assert 'hello, world!' not in out
- print '\n[ checking wasm.js testcases... (need emcc in your path) ]\n'
+ print '\n[ checking emcc WASM_BACKEND testcases... ]\n'
+
+ for c in ['hello_world.cpp']:
+ print '..', c
+ base = c.replace('.cpp', '').replace('.c', '')
+ expected = open(os.path.join('test', 'wasm_backend', base + '.txt')).read()
+ command = ['emcc', '-o', 'a.wasm.js', '-s', 'BINARYEN="' + os.getcwd() + '"', os.path.join('test', 'wasm_backend', c), '-O1', '-s', 'WASM_BACKEND=1', '-s', 'ONLY_MY_CODE=1']
+ print '....' + ' '.join(command)
+ subprocess.check_call(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ if has_node:
+ proc = subprocess.Popen(['nodejs', 'a.wasm.js'], stdout=subprocess.PIPE)
+ out, err = proc.communicate()
+ assert proc.returncode == 0
+ if out.strip() != expected.strip():
+ fail(out, expected)
+
+ print '\n[ checking wasm.js testcases... ]\n'
for c in tests:
if c.endswith(('.c', '.cpp')):
diff --git a/test/wasm_backend/hello_world.cpp b/test/wasm_backend/hello_world.cpp
new file mode 100644
index 000000000..a4a6a025d
--- /dev/null
+++ b/test/wasm_backend/hello_world.cpp
@@ -0,0 +1,8 @@
+#include <emscripten.h>
+
+int main() {
+ EM_ASM({
+ Module.print("hello, world!");
+ });
+}
+
diff --git a/test/wasm_backend/hello_world.txt b/test/wasm_backend/hello_world.txt
new file mode 100644
index 000000000..270c611ee
--- /dev/null
+++ b/test/wasm_backend/hello_world.txt
@@ -0,0 +1 @@
+hello, world!