diff options
Diffstat (limited to 'tests/runner.py')
-rwxr-xr-x | tests/runner.py | 88 |
1 files changed, 56 insertions, 32 deletions
diff --git a/tests/runner.py b/tests/runner.py index 426d864a..92395e25 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -3442,7 +3442,7 @@ Exiting setjmp function, level: 0, prev_jmp: -1 [] [][][] [] -------------------------------- -''', ['1'], force_c=True) +''', ['2'], force_c=True) def test_array2(self): src = ''' @@ -4017,7 +4017,7 @@ def process(filename): // Try it with copying va_list tempva; - __va_copy(tempva, v); + va_copy(tempva, v); vsnprintf(d, 20, s, tempva); puts(d); @@ -5932,6 +5932,7 @@ Pass: 0.000012 0.000012''') # i64 if not Settings.USE_TYPED_ARRAYS == 2: return self.skip('64-bit sscanf only supported in ta2') src = r''' + #include <stdint.h> #include <stdio.h> int main(){ @@ -5991,6 +5992,7 @@ Pass: 0.000012 0.000012''') if Settings.USE_TYPED_ARRAYS != 2: return self.skip("need ta2 for full i64") src = r''' + #include <stdint.h> #include <stdio.h> int main(){ @@ -10231,13 +10233,29 @@ f.close() } ''') + def clear(): try_delete('a.out.js') + for args in [[], ['-O2']]: - print args + clear() + print 'warn', args output = Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'main.cpp'), '-s', 'WARN_ON_UNDEFINED_SYMBOLS=1'] + args, stderr=PIPE).communicate() self.assertContained('unresolved symbol: something', output[1]) + clear() + output = Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'main.cpp')] + args, stderr=PIPE).communicate() + self.assertNotContained('unresolved symbol: something\n', output[1]) + + for args in [[], ['-O2']]: + clear() + print 'error', args + output = Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'main.cpp'), '-s', 'ERROR_ON_UNDEFINED_SYMBOLS=1'] + args, stderr=PIPE).communicate() + self.assertContained('unresolved symbol: something', output[1]) + assert not os.path.exists('a.out.js') + + clear() output = Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'main.cpp')] + args, stderr=PIPE).communicate() self.assertNotContained('unresolved symbol: something\n', output[1]) + assert os.path.exists('a.out.js') def test_toobig(self): open(os.path.join(self.get_dir(), 'main.cpp'), 'w').write(r''' @@ -12436,13 +12454,14 @@ elif 'benchmark' in str(sys.argv): #include<stdio.h> #include<math.h> int main(int argc, char **argv) { - int arg = argc > 1 ? argv[1][0] - '0' : 2; + int arg = argc > 1 ? argv[1][0] - '0' : 3; switch(arg) { case 0: return 0; break; - case 1: arg = 130000; break; - case 2: arg = 220000; break; - case 3: arg = 610000; break; - case 4: arg = 1010000; break; + case 1: arg = 33000; break; + case 2: arg = 130000; break; + case 3: arg = 220000; break; + case 4: arg = 610000; break; + case 5: arg = 1010000; break; default: printf("error: %d\\n", arg); return -1; } @@ -12473,13 +12492,14 @@ elif 'benchmark' in str(sys.argv): #include<stdlib.h> int main(int argc, char **argv) { int N, M; - int arg = argc > 1 ? argv[1][0] - '0' : 2; + int arg = argc > 1 ? argv[1][0] - '0' : 3; switch(arg) { case 0: return 0; break; - case 1: N = 1024*1024; M = 400; break; - case 2: N = 1024*1024; M = 800; break; - case 3: N = 1024*1024; M = 4000; break; - case 4: N = 1024*1024; M = 8000; break; + case 1: N = 1024*1024; M = 55; break; + case 2: N = 1024*1024; M = 400; break; + case 3: N = 1024*1024; M = 800; break; + case 4: N = 1024*1024; M = 4000; break; + case 5: N = 1024*1024; M = 8000; break; default: printf("error: %d\\n", arg); return -1; } @@ -12562,13 +12582,14 @@ elif 'benchmark' in str(sys.argv): int sum() { return x + y + z + r + g + b; } }; int main(int argc, char **argv) { - int arg = argc > 1 ? argv[1][0] - '0' : 2; + int arg = argc > 1 ? argv[1][0] - '0' : 3; switch(arg) { case 0: return 0; break; - case 1: arg = 625; break; - case 2: arg = 1250; break; - case 3: arg = 5*1250; break; - case 4: arg = 10*1250; break; + case 1: arg = 75; break; + case 2: arg = 625; break; + case 3: arg = 1250; break; + case 4: arg = 5*1250; break; + case 5: arg = 10*1250; break; default: printf("error: %d\\n", arg); return -1; } @@ -12599,13 +12620,14 @@ elif 'benchmark' in str(sys.argv): 'int n = argc > 1 ? atoi(argv[1]) : 0;', ''' int n; - int arg = argc > 1 ? argv[1][0] - '0' : 2; + int arg = argc > 1 ? argv[1][0] - '0' : 3; switch(arg) { case 0: return 0; break; - case 1: n = 10; break; - case 2: n = 11; break; + case 1: n = 9; break; + case 2: n = 10; break; case 3: n = 11; break; - case 4: n = 12; break; + case 4: n = 11; break; + case 5: n = 12; break; default: printf("error: %d\\n", arg); return -1; } ''' @@ -12619,13 +12641,14 @@ elif 'benchmark' in str(sys.argv): #include<math.h> int main(int argc, char **argv) { int N, M; - int arg = argc > 1 ? argv[1][0] - '0' : 2; + int arg = argc > 1 ? argv[1][0] - '0' : 3; switch(arg) { case 0: return 0; break; - case 1: N = 20000; M = 3500; break; - case 2: N = 20000; M = 7000; break; - case 3: N = 20000; M = 5*7000; break; - case 4: N = 20000; M = 10*7000; break; + case 1: N = 20000; M = 550; break; + case 2: N = 20000; M = 3500; break; + case 3: N = 20000; M = 7000; break; + case 4: N = 20000; M = 5*7000; break; + case 5: N = 20000; M = 10*7000; break; default: printf("error: %d\\n", arg); return -1; } @@ -12649,13 +12672,14 @@ elif 'benchmark' in str(sys.argv): src = open(path_from_root('tests', 'fasta.cpp'), 'r').read().replace('double', double_rep) src = src.replace(' const size_t n = ( argc > 1 ) ? atoi( argv[1] ) : 512;', ''' int n; - int arg = argc > 1 ? argv[1][0] - '0' : 2; + int arg = argc > 1 ? argv[1][0] - '0' : 3; switch(arg) { case 0: return 0; break; - case 1: n = 19000000/2; break; - case 2: n = 19000000; break; - case 3: n = 19000000*5; break; - case 4: n = 19000000*10; break; + case 1: n = 19000000/20; break; + case 2: n = 19000000/2; break; + case 3: n = 19000000; break; + case 4: n = 19000000*5; break; + case 5: n = 19000000*10; break; default: printf("error: %d\\n", arg); return -1; } ''') |