blob: 4179d5945dec18a25ac958ee0f2464d251599c7a [file] [log] [blame]
# -*- python -*-
# Copyright (c) 2012 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
Import('env')
if not env.AllowInlineAssembly():
Return()
test_args = {'sel_ldr_flags': ['-e', '-E', 'OUTSIDE_BROWSER=1'],
'declares_exit_status': True}
if env.Bit('build_arm') and env.UsingEmulator():
test_args['sel_ldr_flags'].extend(['-E', 'UNDER_QEMU_ARM=1'])
helper_files = []
if env.Bit('build_x86'):
helper_files.append('direction_flag_x86.S')
exception_test = env.ComponentProgram(
env.ProgramNameForNmf('exception_test'),
['exception_test.c'] + helper_files,
EXTRA_LIBS=['${NONIRT_LIBS}', '${PTHREAD_LIBS}', '${TESTRUNNER_LIBS}',
'${EXCEPTION_LIBS}', 'test_common'])
node = env.CommandSelLdrTestNacl(
'exception_test.out', exception_test, **test_args)
env.AddNodeToTestSuite(
node, ['small_tests', 'exception_tests'], 'run_exception_test',
# TODO(mcgrathr): Broken under nacl-clang on Win32 only;
# see https://code.google.com/p/nativeclient/issues/detail?id=4255
is_broken=(env.Bit('nacl_clang') and
env.Bit('host_windows') and env.Bit('build_x86_32')))
exception_crash_test = env.ComponentProgram(
'exception_crash_test', ['exception_crash_test.c'],
EXTRA_LIBS=['${NONIRT_LIBS}', '${EXCEPTION_LIBS}'])
for subtest in ('test_bad_handler',
'test_stack_outside_sandbox',
'test_stack_in_rwdata',
'test_stack_in_rodata',
'test_stack_in_code',
'test_crash_in_syscall'):
node = env.CommandSelLdrTestNacl(
'exception_%s.out' % subtest,
exception_crash_test, [subtest], **test_args)
env.AddNodeToTestSuite(
node, ['small_tests', 'exception_tests'],
'run_exception_%s' % subtest)
exceptions_disabled_test = env.ComponentProgram(
'exceptions_disabled_test',
['exceptions_disabled_test.c'],
EXTRA_LIBS=['${NONIRT_LIBS}', '${EXCEPTION_LIBS}'])
node = env.CommandSelLdrTestNacl(
'exceptions_disabled_test.out',
exceptions_disabled_test, [],
declares_exit_status=True)
env.AddNodeToTestSuite(
node, ['small_tests', 'exception_tests'],
'run_exceptions_disabled_test')