test wasm with node instead of a browser
This lets testing go back to being quietly headless,
and means we can run tests on the bots!
Change-Id: I92282105e624830ea5045e987ba3e7af6a532b25
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/219539
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/build/emscripten b/build/emscripten
index 05c6bba..d6dcf2d 100644
--- a/build/emscripten
+++ b/build/emscripten
@@ -1,15 +1,16 @@
cc = emcc
cxx = em++
-cflags = -g3 -s WASM=1
-ldflags = -g3 -s WASM=1 --embed-file profiles --emrun
-exe = .html
+cflags = -g3 -s WASM=1 -s ENVIRONMENT=node
+ldflags = -g3 -s WASM=1 -s ENVIRONMENT=node --embed-file profiles
+exe = .js
out = out/emscripten$mode
-# Run only when emrun is on your PATH, i.e. not on the bots.
+node = 'node'
+
rule run
- command = if which emrun >/dev/null; $
+ command = if which $node >/dev/null; $
then $
- emrun $in > $out; $
+ $node $in > $out; $
else touch $out; fi
description = run $in
diff --git a/infra/bots/bot.py b/infra/bots/bot.py
index c034f55..3e4e64b 100644
--- a/infra/bots/bot.py
+++ b/infra/bots/bot.py
@@ -51,6 +51,7 @@
os.chdir('..')
emscripten_sdk = os.path.realpath('emsdk')
+ node = emscripten_sdk + '/node/8.9.1_64bit/bin/node'
em_config = os.path.realpath(os.path.join('.', 'em_config'))
with open(em_config, 'w') as f:
@@ -63,7 +64,7 @@
'''.format(
emscripten_sdk + '/clang/e1.38.28_64bit/binaryen',
emscripten_sdk + '/clang/e1.38.28_64bit',
- emscripten_sdk + '/node/8.9.1_64bit/bin/node',
+ node,
)
append('skcms/build/emscripten',
@@ -72,6 +73,8 @@
append('skcms/build/emscripten',
'cxx = env EM_CONFIG={} {}/emscripten/1.38.28/em++'.format(
em_config, emscripten_sdk))
+ append('skcms/build/emscripten',
+ 'node = {}'.format(node))
call('{ninja}/ninja -C skcms -k 0'.format(ninja=ninja))