aboutsummaryrefslogtreecommitdiff
path: root/tests/runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/runner.py')
-rwxr-xr-xtests/runner.py88
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;
}
''')