aboutsummaryrefslogtreecommitdiff
path: root/tests/runner.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-11-24 12:31:28 -0800
committerAlon Zakai <alonzakai@gmail.com>2011-11-24 12:31:28 -0800
commit2121e4bcb25d22cb87925e04b18fb1db40b6d260 (patch)
tree8523c595c9e9b343e7f0fa6c35d5567fe64cd7d0 /tests/runner.py
parent309659d7b214828841540dd14de217b2058ce96e (diff)
add benchmark for corrections
Diffstat (limited to 'tests/runner.py')
-rw-r--r--tests/runner.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/tests/runner.py b/tests/runner.py
index a3f9f0ce..e35dc1e8 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -4524,7 +4524,7 @@ else:
POST_OPTIMIZATIONS = [['js-optimizer', 'loopOptimizer'], 'eliminator', 'closure', ['js-optimizer', 'unGlobalize', 'removeAssignsToUndefined', 'simplifyNotComps']]
TEST_REPS = 10
- TOTAL_TESTS = 6
+ TOTAL_TESTS = 7
tests_done = 0
total_times = map(lambda x: 0., range(TOTAL_TESTS))
@@ -4702,14 +4702,30 @@ else:
src = open(path_from_root('tests', 'fannkuch.cpp'), 'r').read()
self.do_benchmark(src, ['10'], 'Pfannkuchen(10) = 38.')
+ def test_corrections(self):
+ Settings.CORRECT_SIGNS = Settings.CORRECT_OVERFLOWS = Settings.CORRECT_ROUNDINGS = 1
+ src = '''
+ #include<stdio.h>
+ int main() {
+ int N = 6000;
+ int M = 6000;
+ unsigned int final = 0;
+ for (int t = 0; t < M; t++) {
+ for (int i = 0; i < N; i++) {
+ final += i / ((t % 5)+1);
+ if (final > 1000) final /= (t % 3)+1;
+ }
+ }
+ printf("final: %d.\\n", final);
+ return 1;
+ }
+ '''
+ self.do_benchmark(src, [], 'final: 599.')
+
def test_fasta(self):
src = open(path_from_root('tests', 'fasta.cpp'), 'r').read()
self.do_benchmark(src, ['2100000'], '''GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\nTCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\nAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\nGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\nCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\nGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\nGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\nTTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\nAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\nGCCTGGGCGA''')
- def zzztest_raytrace(self): # This test is disabled because it gives wildly different results depending on float rounding, JIT effects, etc.
- src = open(path_from_root('tests', 'raytrace.cpp'), 'r').read().replace('double', 'float') # benchmark with floats
- self.do_benchmark(src, ['7', '256'], open(path_from_root('tests', 'raytrace_7_256.ppm')).read())
-
def test_skinning(self):
src = open(path_from_root('tests', 'skinning_test_no_simd.cpp'), 'r').read()
self.do_benchmark(src, ['10000', '1000'], 'blah=0.000000')