aboutsummaryrefslogtreecommitdiff
path: root/tests/runner.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-05-16 11:26:34 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-05-16 11:26:34 -0700
commit4de54e3bece9a51a69bd46076acaa7746c1fa996 (patch)
tree29e8c9012bc808aa805c59799290578aeae0ab6c /tests/runner.py
parentce33f9c21230d619b2b5d42358592f204410eab4 (diff)
when not aliasing tables, keep them all at full size to avoid aliasing through the &M mask in a small table
Diffstat (limited to 'tests/runner.py')
-rwxr-xr-xtests/runner.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/tests/runner.py b/tests/runner.py
index b802a68f..1ff917d0 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -7729,15 +7729,20 @@ void*:16
assert 'asm2g' in test_modes
if self.run_name == 'asm2g':
- original = open('src.cpp.o.js').read()
results = {}
- results[Settings.ALIASING_FUNCTION_POINTERS] = len(open('src.cpp.o.js').read())
+ original = open('src.cpp.o.js').read()
+ results[Settings.ALIASING_FUNCTION_POINTERS] = len(original)
Settings.ALIASING_FUNCTION_POINTERS = 1 - Settings.ALIASING_FUNCTION_POINTERS
self.do_run(path_from_root('tests', 'cubescript'), '*\nTemp is 33\n9\n5\nhello, everyone\n*', main_file='command.cpp')
- results[Settings.ALIASING_FUNCTION_POINTERS] = len(open('src.cpp.o.js').read())
+ final = open('src.cpp.o.js').read()
+ results[Settings.ALIASING_FUNCTION_POINTERS] = len(final)
open('original.js', 'w').write(original)
print results
- assert results[1] < results[0]
+ assert results[1] < 0.99*results[0]
+ assert ' & 3]()' in original, 'small function table exists'
+ assert ' & 3]()' not in final, 'small function table does not exist'
+ assert ' & 255]()' not in original, 'big function table does not exist'
+ assert ' & 255]()' in final, 'big function table exists'
def test_gcc_unmangler(self):
Settings.NAMED_GLOBALS = 1 # test coverage for this