test fixes, and fail on trying to use q1 with libcxx

This commit is contained in:
Alon Zakai 2012-01-21 14:01:42 -08:00
Родитель ab3fa5aedb
Коммит 3f87ba46fc
2 изменённых файлов: 9 добавлений и 1 удалений

2
emcc
Просмотреть файл

@ -86,6 +86,7 @@ LEAVE_INPUTS_RAW = os.environ.get('EMCC_LEAVE_INPUTS_RAW') # Do not compile .ll
# added in. Also, LLVM optimizations will not be done, nor dead code elimination
if DEBUG: print >> sys.stderr, 'emcc: ', ' '.join(sys.argv)
if DEBUG and LEAVE_INPUTS_RAW: print >> sys.stderr, 'emcc: leaving inputs raw'
shared.check_sanity()
@ -477,6 +478,7 @@ try:
shared.Building.build_library('libcxx', shared.EMSCRIPTEN_TEMP_DIR, shared.EMSCRIPTEN_TEMP_DIR, ['libcxx.bc'], configure=None, copy_project=True, source_dir=shared.path_from_root('system', 'lib', 'libcxx'))
return os.path.join(shared.EMSCRIPTEN_TEMP_DIR, 'libcxx', 'libcxx.bc')
def fix_libcxx():
assert shared.Settings.QUANTUM_SIZE == 4, 'We do not support libc++ with QUANTUM_SIZE == 1'
# libcxx might need corrections, so turn them all on. TODO: check which are actually needed
shared.Settings.CORRECT_SIGNS = shared.Settings.CORRECT_OVERFLOWS = shared.Settings.CORRECT_ROUNDINGS = 1
print >> sys.stderr, 'emcc: warning: using libcxx turns on CORRECT_* options'

Просмотреть файл

@ -1167,6 +1167,8 @@ if 'benchmark' not in str(sys.argv) and 'sanity' not in str(sys.argv):
self.do_run(src, 'Assertion failed: 1 == false')
def test_exceptions(self):
if Settings.QUANTUM_SIZE == 1: return self.skip("we don't support libcxx in q1")
self.banned_js_engines = [NODE_JS] # node issue 1669, exception causes stdout not to be flushed
Settings.DISABLE_EXCEPTION_CATCHING = 0
if self.emcc_args is None: self.emcc_args = [] # libc++ auto-inclusion is only done if we use emcc
@ -3868,7 +3870,11 @@ def process(filename):
# libc++ tests
def test_iostream(self):
if self.emcc_args is None: self.emcc_args = [] # libc++ auto-inclusion is only done if we use emcc
if Settings.QUANTUM_SIZE == 1: return self.skip("we don't support libcxx in q1")
if self.emcc_args is None:
self.emcc_args = [] # libc++ auto-inclusion is only done if we use emcc
Settings.SAFE_HEAP = 0 # Some spurious warnings from libc++ internals
src = '''
#include <iostream>