diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/runner.py | 65 | ||||
-rw-r--r-- | tests/sdl_key.c | 43 |
2 files changed, 76 insertions, 32 deletions
diff --git a/tests/runner.py b/tests/runner.py index 0f8883c8..5e101024 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -126,15 +126,6 @@ class RunnerCore(unittest.TestCase): def in_dir(self, *pathelems): return os.path.join(self.get_dir(), *pathelems) - def get_shared_library_name(self, linux_name): - if platform.system() == 'Linux': - return linux_name - elif platform.system() == 'Darwin': - return linux_name.replace('.so', '') + '.dylib' - else: - print >> sys.stderr, 'get_shared_library_name needs to be implemented on %s' % platform.system() - return linux_name - def get_stdout_path(self): return os.path.join(self.get_dir(), 'stdout') @@ -1957,6 +1948,39 @@ Succeeded! 1.000000=1.000000*2^0 -1.000000=-1.000000*2^0''') + def test_rounding(self): + src = ''' + #include <stdio.h> + #include <math.h> + + int main() + { + printf("%.1f ", round(1.4)); + printf("%.1f ", round(1.6)); + printf("%.1f ", round(-1.4)); + printf("%.1f ", round(-1.6)); + + printf("%.1f ", round(1.5)); + printf("%.1f ", round(2.5)); + printf("%.1f ", round(-1.5)); + printf("%.1f ", round(-2.5)); + + printf("%ld ", lrint(1.4)); + printf("%ld ", lrint(1.6)); + printf("%ld ", lrint(-1.4)); + printf("%ld ", lrint(-1.6)); + + printf("%ld ", lrint(1.5)); + printf("%ld ", lrint(2.5)); + printf("%ld ", lrint(-1.5)); + printf("%ld ", lrint(-2.5)); + + return 0; + } + ''' + self.do_run(src, "1.0 2.0 -1.0 -2.0 2.0 3.0 -2.0 -3.0 " + "1 2 -1 -2 2 2 -2 -2") + def test_getgep(self): # Generated code includes getelementptr (getelementptr, 0, 1), i.e., GEP as the first param to GEP src = ''' @@ -6515,7 +6539,7 @@ Pass: 0.000012 0.000012''') int main(){ unsigned int a; float e, f, g; - sscanf("a 1.1 1.1 1.1", "%x %E %F %G", &a, &e, &f, &g); + sscanf("a 1.1 1.1 1.1", "%X %E %F %G", &a, &e, &f, &g); printf("%d %.1F %.1F %.1F\n", a, e, f, g); } ''' @@ -8389,7 +8413,7 @@ def process(filename): [os.path.sep.join('codec/CMakeFiles/j2k_to_image.dir/index.c.o'.split('/')), os.path.sep.join('codec/CMakeFiles/j2k_to_image.dir/convert.c.o'.split('/')), os.path.sep.join('codec/CMakeFiles/j2k_to_image.dir/__/common/color.c.o'.split('/')), - os.path.join('bin', self.get_shared_library_name('libopenjpeg.so.1.4.0'))], + os.path.join('bin', 'libopenjpeg.so.1.4.0')], configure=['cmake', '.'], #configure_args=['--enable-tiff=no', '--enable-jp3d=no', '--enable-png=no'], make_args=[]) # no -j 2, since parallel builds can fail @@ -12088,23 +12112,26 @@ elif 'browser' in str(sys.argv): setTimeout(doOne, 1000/60); } - function simulateKeyEvent(c) { + function keydown(c) { var event = document.createEvent("KeyboardEvent"); event.initKeyEvent("keydown", true, true, window, 0, 0, 0, 0, c, c); document.dispatchEvent(event); - var event2 = document.createEvent("KeyboardEvent"); - event2.initKeyEvent("keyup", true, true, window, + } + + function keyup(c) { + var event = document.createEvent("KeyboardEvent"); + event.initKeyEvent("keyup", true, true, window, 0, 0, 0, 0, c, c); - document.dispatchEvent(event2); + document.dispatchEvent(event); } ''') open(os.path.join(self.get_dir(), 'sdl_key.c'), 'w').write(self.with_report_result(open(path_from_root('tests', 'sdl_key.c')).read())) Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'sdl_key.c'), '-o', 'page.html', '--pre-js', 'pre.js', '-s', '''EXPORTED_FUNCTIONS=['_main', '_one']''']).communicate() - self.run_browser('page.html', '', '/report_result?510510') + self.run_browser('page.html', '', '/report_result?223092870') def test_sdl_text(self): open(os.path.join(self.get_dir(), 'pre.js'), 'w').write(''' @@ -13113,6 +13140,9 @@ elif 'benchmark' in str(sys.argv): class benchmark(RunnerCore): def print_stats(self, times, native_times, last=False, reps=TEST_REPS): + if reps == 0: + print '(no reps)' + return mean = sum(times)/len(times) squared_times = map(lambda x: x*x, times) mean_of_squared = sum(squared_times)/len(times) @@ -13501,6 +13531,7 @@ elif 'benchmark' in str(sys.argv): self.lua('scimark', '[small problem sizes]', output_parser=output_parser) def test_zzz_lua_binarytrees(self): + # js version: ['binarytrees.lua', {0: 0, 1: 9.5, 2: 11.99, 3: 12.85, 4: 14.72, 5: 15.82}[arguments[0]]] def args_processor(args): arg = int(DEFAULT_ARG) if arg == 0: @@ -13953,7 +13984,7 @@ fi assert os.path.exists(RELOOPER) == (i >= 2), 'have relooper on O2: ' + output src = open('a.out.js').read() main = src.split('function _main()')[1].split('\n}\n')[0] - assert ('while (1) {' in main or 'while(1){' in main) == (i >= 2), 'reloop code on O2: ' + main + assert ('while (1) {' in main or 'while(1){' in main or '} while ($' in main or '}while($' in main) == (i >= 2), 'reloop code on O2: ' + main assert ('switch' not in main) == (i >= 2), 'reloop code on O2: ' + main def test_jcache(self): diff --git a/tests/sdl_key.c b/tests/sdl_key.c index 19b0a3d6..7a304fc1 100644 --- a/tests/sdl_key.c +++ b/tests/sdl_key.c @@ -12,16 +12,30 @@ void one() { case SDL_KEYDOWN: break; case SDL_KEYUP: + // don't handle the modifier key events + if (event.key.keysym.sym == SDLK_LCTRL || + event.key.keysym.sym == SDLK_LSHIFT || + event.key.keysym.sym == SDLK_LALT) { + return; + } + if ((event.key.keysym.mod & KMOD_LCTRL) || (event.key.keysym.mod & KMOD_RCTRL)) { + result *= 2; + } + if ((event.key.keysym.mod & KMOD_LSHIFT) || (event.key.keysym.mod & KMOD_RSHIFT)) { + result *= 3; + } + if ((event.key.keysym.mod & KMOD_LALT) || (event.key.keysym.mod & KMOD_RALT)) { + result *= 5; + } switch (event.key.keysym.sym) { - case SDLK_RIGHT: printf("right\n"); result *= 2; break; - case SDLK_LEFT: printf("left\n"); result *= 3; break; - case SDLK_DOWN: printf("down\n"); result *= 5; break; - case SDLK_UP: printf("up\n"); result *= 7; break; - case SDLK_SPACE: printf("space\n"); result *= 11; break; - case SDLK_a: printf("a\n"); result *= 13; break; + case SDLK_RIGHT: printf("right\n"); result *= 7; break; + case SDLK_LEFT: printf("left\n"); result *= 11; break; + case SDLK_DOWN: printf("down\n"); result *= 13; break; + case SDLK_UP: printf("up\n"); result *= 17; break; + case SDLK_a: printf("a\n"); result *= 19; break; default: { if (event.key.keysym.scancode == SDL_SCANCODE_B) { - printf("b scancode\n"); result *= 17; break; + printf("b scancode\n"); result *= 23; break; } printf("unknown key: sym %d scancode %d\n", event.key.keysym.sym, event.key.keysym.scancode); REPORT_RESULT(); @@ -40,14 +54,13 @@ int main(int argc, char **argv) { SDL_Init(SDL_INIT_VIDEO); SDL_Surface *screen = SDL_SetVideoMode(600, 450, 32, SDL_HWSURFACE); - emscripten_run_script("simulateKeyEvent(38)"); // up - emscripten_run_script("simulateKeyEvent(40)"); // down - emscripten_run_script("simulateKeyEvent(37)"); // left - emscripten_run_script("simulateKeyEvent(39)"); // right - emscripten_run_script("simulateKeyEvent(32)"); // space - emscripten_run_script("simulateKeyEvent(65)"); // a - emscripten_run_script("simulateKeyEvent(66)"); // b - emscripten_run_script("simulateKeyEvent(100)"); // trigger the end + emscripten_run_script("keydown(1250);keydown(38);keyup(38);keyup(1250);"); // alt, up + emscripten_run_script("keydown(1248);keydown(1249);keydown(40);keyup(40);keyup(1249);keyup(1248);"); // ctrl, shift, down + emscripten_run_script("keydown(37);keyup(37);"); // left + emscripten_run_script("keydown(39);keyup(39);"); // right + emscripten_run_script("keydown(65);keyup(65);"); // a + emscripten_run_script("keydown(66);keyup(66);"); // b + emscripten_run_script("keydown(100);keyup(100);"); // trigger the end if (argc == 1337) one(); // keep it alive |