diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-08-26 11:58:01 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-08-26 11:58:01 -0700 |
commit | 422d9a1f3227ae8f47fa8bd0037c2220bb2017f7 (patch) | |
tree | 107571ed84b48bab5bfb5aea6b7e5b01b814929f | |
parent | 1c92c15746d6eff0522fdb819a8d4213334f1144 (diff) |
make headless test use its own file
-rw-r--r-- | tests/sdl_headless.c | 65 | ||||
-rw-r--r-- | tests/test_other.py | 2 |
2 files changed, 66 insertions, 1 deletions
diff --git a/tests/sdl_headless.c b/tests/sdl_headless.c new file mode 100644 index 00000000..349c5e26 --- /dev/null +++ b/tests/sdl_headless.c @@ -0,0 +1,65 @@ +#include <stdio.h> +#include <stdlib.h> +#include <SDL/SDL.h> +#include <SDL/SDL_ttf.h> +#include <emscripten.h> + + +int main(int argc, char **argv) { +#if EMSCRIPTEN + // include GL stuff, to check that we can compile hybrid 2d/GL apps + extern void glBegin(int mode); + extern void glBindBuffer(int target, int buffer); + if (argc == 9876) { + glBegin(0); + glBindBuffer(0, 0); + } +#endif + + SDL_Init(SDL_INIT_VIDEO); + SDL_Surface *screen = SDL_SetVideoMode(600, 450, 32, SDL_HWSURFACE); + + printf("Init: %d\n", TTF_Init()); + + TTF_Font *font = TTF_OpenFont("sans-serif", 40); + printf("Font: %p\n", font); + + SDL_Color color = { 0xff, 0x99, 0x00, 0xff }; + + SDL_Surface *text = TTF_RenderText_Solid(font, "hello orange world", color); + + SDL_Color color2 = { 0xbb, 0, 0xff, 0xff }; + SDL_Surface *text2 = TTF_RenderText_Solid(font, "a second line, purple", color2); + + // render + SDL_Rect dest = { 0, 50, 0, 0 }; + SDL_BlitSurface (text, NULL, screen, NULL); + dest.y = 100; + SDL_BlitSurface (text2, NULL, screen, &dest); + + // fill stuff + SDL_Rect rect = { 200, 200, 175, 125 }; + SDL_FillRect(screen, &rect, SDL_MapRGBA(screen->format, 0x22, 0x22, 0xff, 0xff)); + + SDL_Flip(screen); + + SDL_LockSurface(screen); + + int sum = 0; + for (int i = 0; i < screen->h; i++) { + sum += *((char*)screen->pixels + i*screen->w*4 + i*4 + 0); + } + printf("Sum: %d\n", sum); + + printf("you should see two lines of text in different colors and a blue rectangle\n"); + + SDL_Quit(); + + printf("done.\n"); + + int result = sum > 3000 && sum < 5000; // varies a little on different browsers, font differences? + REPORT_RESULT(); + + return 0; +} + diff --git a/tests/test_other.py b/tests/test_other.py index ce3dee79..a6813b07 100644 --- a/tests/test_other.py +++ b/tests/test_other.py @@ -1881,7 +1881,7 @@ seeked= file. if SPIDERMONKEY_ENGINE not in JS_ENGINES: return self.skip('cannot run without spidermonkey due to node limitations (Uint8ClampedArray etc.)') shutil.copyfile(path_from_root('tests', 'screenshot.png'), os.path.join(self.get_dir(), 'example.png')) - Popen([PYTHON, EMCC, path_from_root('tests', 'sdl_canvas.c'), '-s', 'HEADLESS=1']).communicate() + Popen([PYTHON, EMCC, path_from_root('tests', 'sdl_headless.c'), '-s', 'HEADLESS=1']).communicate() output = run_js('a.out.js', engine=SPIDERMONKEY_ENGINE, stderr=PIPE) assert '''Init: 0 Font: 0x1 |