aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/runner.py65
-rw-r--r--tests/sdl_key.c43
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