diff options
-rw-r--r-- | src/proxyClient.js | 8 | ||||
-rw-r--r-- | src/proxyWorker.js | 13 | ||||
-rw-r--r-- | tests/sdl_canvas_proxy.c | 10 | ||||
-rw-r--r-- | tests/test_browser.py | 4 |
4 files changed, 33 insertions, 2 deletions
diff --git a/src/proxyClient.js b/src/proxyClient.js index f102ed86..bbf3e278 100644 --- a/src/proxyClient.js +++ b/src/proxyClient.js @@ -8,6 +8,14 @@ var worker = new Worker('{{{ filename }}}.js'); worker.onmessage = function(event) { var data = event.data; switch (data.target) { + case 'stdout': { + Module.print(data.content); + break; + } + case 'stderr': { + Module.printErr(data.content); + break; + } case 'window': { window[data.method](); break; diff --git a/src/proxyWorker.js b/src/proxyWorker.js index b9f71614..29259552 100644 --- a/src/proxyWorker.js +++ b/src/proxyWorker.js @@ -8,7 +8,9 @@ function EventListener() { }; }; -var window = new EventListener(); +var window = this; +var windowExtra = new EventListener(); +for (var x in windowExtra) window[x] = windowExtra[x]; window.close = function() { postMessage({ target: 'window', method: 'close' }); @@ -58,3 +60,12 @@ document.createElement = function(what) { Module.canvas = document.createElement('canvas'); +Module.setStatus = function(){}; + +Module.print = function(x) { + postMessage({ target: 'stdout', content: x }); +}; +Module.printErr = function(x) { + postMessage({ target: 'stderr', content: x }); +}; + diff --git a/tests/sdl_canvas_proxy.c b/tests/sdl_canvas_proxy.c index 2b33be29..27ef3bb4 100644 --- a/tests/sdl_canvas_proxy.c +++ b/tests/sdl_canvas_proxy.c @@ -1,9 +1,19 @@ #include <stdio.h> #include <stdlib.h> #include <SDL/SDL.h> +#include <assert.h> #include <emscripten.h> int main(int argc, char **argv) { + FILE *f = fopen("data.txt", "rb"); + assert(f); + assert(fgetc(f) == 'd'); + assert(fgetc(f) == 'a'); + assert(fgetc(f) == 't'); + assert(fgetc(f) == 'u'); + assert(fgetc(f) == 'm'); + fclose(f); + SDL_Init(SDL_INIT_VIDEO); SDL_Surface *screen = SDL_SetVideoMode(600, 450, 32, SDL_HWSURFACE); diff --git a/tests/test_browser.py b/tests/test_browser.py index c2910c80..01bd189b 100644 --- a/tests/test_browser.py +++ b/tests/test_browser.py @@ -645,7 +645,9 @@ window.close = function() { </body>''' % open('reftest.js').read()) open('test.html', 'w').write(html) - self.btest('sdl_canvas_proxy.c', reference='sdl_canvas_proxy.png', args=['--proxy-to-worker'], manual_reference=True, post_build=post) + open('data.txt', 'w').write('datum') + + self.btest('sdl_canvas_proxy.c', reference='sdl_canvas_proxy.png', args=['--proxy-to-worker', '--preload-file', 'data.txt'], manual_reference=True, post_build=post) def test_sdl_key(self): open(os.path.join(self.get_dir(), 'pre.js'), 'w').write(''' |