update tests
This commit is contained in:
Родитель
f173cd3457
Коммит
1d1924ccc9
1
emcc
1
emcc
|
@ -1007,7 +1007,6 @@ try:
|
|||
if bind:
|
||||
shared.Settings.ASM_JS = 0
|
||||
print >> sys.stderr, 'emcc: warning: disabling asm.js because it is not compatible with embind yet'
|
||||
|
||||
if closure:
|
||||
print >> sys.stderr, 'emcc: warning: disabling closure because it is not compatible with asm.js code generation'
|
||||
closure = False
|
||||
|
|
|
@ -9135,19 +9135,19 @@ Options that are modified or new in %s include:
|
|||
(['-o', 'something.js'], 0, None, 0, 1),
|
||||
(['-o', 'something.js', '-O0'], 0, None, 0, 0),
|
||||
(['-o', 'something.js', '-O1'], 1, None, 0, 0),
|
||||
(['-o', 'something.js', '-O1', '--closure', '1'], 1, None, 1, 0),
|
||||
(['-o', 'something.js', '-O1', '-g'], 1, None, 0, 0),
|
||||
(['-o', 'something.js', '-O1', '--closure', '1'], 1, None, 0, 0), # no closure when asm.js is on
|
||||
(['-o', 'something.js', '-O1', '--closure', '1', '-s', 'ASM_JS=0'], 1, None, 1, 0),
|
||||
(['-o', 'something.js', '-O2'], 2, None, 0, 1),
|
||||
(['-o', 'something.js', '-O2', '--closure', '0'], 2, None, 0, 0),
|
||||
(['-o', 'something.js', '-O2', '-g'], 2, None, 0, 0),
|
||||
(['-o', 'something.js', '-Os'], 2, None, 0, 1),
|
||||
(['-o', 'something.js', '-O3'], 3, None, 1, 1),
|
||||
(['-o', 'something.js', '-O3', '--closure', '0'], 3, None, 0, 0),
|
||||
(['-o', 'something.js', '-O3', '-s', 'ASM_JS=0'], 3, None, 1, 1),
|
||||
# and, test compiling to bitcode first
|
||||
(['-o', 'something.bc'], 0, [], 0, 0),
|
||||
(['-o', 'something.bc'], 0, ['-O0'], 0, 0),
|
||||
(['-o', 'something.bc'], 1, ['-O1'], 0, 0),
|
||||
(['-o', 'something.bc'], 2, ['-O2'], 0, 0),
|
||||
(['-o', 'something.bc'], 3, ['-O3'], 1, 0),
|
||||
(['-o', 'something.bc'], 3, ['-O3', '-s', 'ASM_JS=0'], 1, 0),
|
||||
(['-O1', '-o', 'something.bc'], 0, [], 0, 0), # -Ox is ignored and warned about
|
||||
]:
|
||||
print params, opt_level, bc_params, closure, has_malloc
|
||||
|
@ -9178,23 +9178,23 @@ Options that are modified or new in %s include:
|
|||
# closure has not been run, we can do some additional checks. TODO: figure out how to do these even with closure
|
||||
assert 'Module._main = ' not in generated, 'closure compiler should not have been run'
|
||||
if keep_debug:
|
||||
assert ('(label)' in generated) == (opt_level <= 1), 'relooping should be in opt >= 2'
|
||||
assert ('(label)' in generated or '(label | 0)' in generated) == (opt_level <= 1), 'relooping should be in opt >= 2'
|
||||
assert ('assert(STACKTOP < STACK_MAX' in generated) == (opt_level == 0), 'assertions should be in opt == 0'
|
||||
assert 'var $i;' in generated or 'var $i_0' in generated or 'var $storemerge3;' in generated or 'var $storemerge4;' in generated or 'var $i_04;' in generated, 'micro opts should always be on'
|
||||
if opt_level >= 2:
|
||||
assert 'var $i;' in generated or 'var $i_0' in generated or 'var $storemerge3;' in generated or 'var $storemerge4;' in generated or 'var $i_04;' in generated or 'var $original = 0' in generated, 'micro opts should always be on'
|
||||
if opt_level >= 2 and '-g' in params:
|
||||
assert re.search('HEAP8\[\$?\w+ ?\+ ?\(+\$?\w+ ?', generated) or re.search('HEAP8\[HEAP32\[', generated), 'eliminator should create compound expressions, and fewer one-time vars' # also in -O1, but easier to test in -O2
|
||||
assert ('_puts(' in generated) == (opt_level >= 1), 'with opt >= 1, llvm opts are run and they should optimize printf to puts'
|
||||
if opt_level <= 1 or '-g' in params: assert 'function _main() {' in generated, 'Should be unminified, including whitespace'
|
||||
elif opt_level >= 2: assert 'function _main(){' in generated, 'Should be whitespace-minified'
|
||||
elif opt_level >= 2: assert ('function _main(){' in generated or '"use asm";var a=' in generated), 'Should be whitespace-minified'
|
||||
|
||||
# emcc -s RELOOP=1 src.cpp ==> should pass -s to emscripten.py. --typed-arrays is a convenient alias for -s USE_TYPED_ARRAYS
|
||||
for params, test, text in [
|
||||
(['-s', 'ASM_JS=1', '-O2'], lambda generated: 'var b=0' in generated and not 'function _main' in generated, 'registerize/minify is run by default in -O2'),
|
||||
(['-s', 'ASM_JS=1', '-O2', '--minify', '0'], lambda generated: 'var b = 0' in generated and not 'function _main' in generated, 'minify is cancelled, but not registerize'),
|
||||
(['-s', 'ASM_JS=1', '-O2', '-g'], lambda generated: 'var b=0' not in generated and 'var b = 0' not in generated and 'function _main' in generated, 'registerize/minify is cancelled by -g'),
|
||||
(['-O2'], lambda generated: 'var b=0' in generated and not 'function _main' in generated, 'registerize/minify is run by default in -O2'),
|
||||
(['-O2', '--minify', '0'], lambda generated: 'var b = 0' in generated and not 'function _main' in generated, 'minify is cancelled, but not registerize'),
|
||||
(['-O2', '-g'], lambda generated: 'var b=0' not in generated and 'var b = 0' not in generated and 'function _main' in generated, 'registerize/minify is cancelled by -g'),
|
||||
(['-s', 'INLINING_LIMIT=0'], lambda generated: 'function _dump' in generated, 'no inlining without opts'),
|
||||
(['-O3', '-s', 'INLINING_LIMIT=0', '--closure', '0'], lambda generated: 'function _dump' not in generated, 'lto/inlining'),
|
||||
(['-Os', '--llvm-lto', '1'], lambda generated: 'function _dump' in generated, '-Os disables inlining'),
|
||||
(['-Os', '--llvm-lto', '1', '-s', 'ASM_JS=0'], lambda generated: 'function _dump' in generated, '-Os disables inlining'),
|
||||
(['-s', 'USE_TYPED_ARRAYS=0'], lambda generated: 'new Int32Array' not in generated, 'disable typed arrays'),
|
||||
(['-s', 'USE_TYPED_ARRAYS=1'], lambda generated: 'IHEAPU = ' in generated, 'typed arrays 1 selected'),
|
||||
([], lambda generated: 'Module["_dump"]' not in generated, 'dump is not exported by default'),
|
||||
|
@ -9204,6 +9204,7 @@ Options that are modified or new in %s include:
|
|||
(['--typed-arrays', '2'], lambda generated: 'new Uint16Array' in generated and 'new Uint32Array' in generated, 'typed arrays 2 selected'),
|
||||
(['--llvm-opts', '1'], lambda generated: '_puts(' in generated, 'llvm opts requested'),
|
||||
]:
|
||||
print params, text
|
||||
self.clear()
|
||||
output = Popen([PYTHON, compiler, path_from_root('tests', 'hello_world_loop.cpp'), '-o', 'a.out.js'] + params, stdout=PIPE, stderr=PIPE).communicate()
|
||||
assert len(output[0]) == 0, output[0]
|
||||
|
|
Загрузка…
Ссылка в новой задаче