aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/proxyClient.js8
-rw-r--r--src/proxyWorker.js13
-rw-r--r--tests/sdl_canvas_proxy.c10
-rw-r--r--tests/test_browser.py4
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('''