2 # Copyright 2012 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
8 # step_test_guest.nexe fails to link when Valgrind is enabled because
9 # of a problem with the TLS ".tbss" section.
10 if env.IsRunningUnderValgrind():
13 if 'TRUSTED_ENV' not in env:
15 trusted_env = env['TRUSTED_ENV']
17 if not env.AllowInlineAssembly():
20 if not (env.Bit('build_x86') or env.Bit('build_arm')):
22 # This test uses POSIX signal handling so does not build on Windows.
23 if env.Bit('host_windows'):
25 # This test expects that a signal handler will be able to return to
26 # untrusted code, and so it does not work on Mac OS X which does not
27 # restore %cs to its saved value on return from a signal handler.
28 if env.Bit('host_mac'):
31 if env.Bit('build_x86'):
32 step_test_guest = env.ComponentProgram(
33 'step_test_guest', ['step_test_guest.c'],
34 EXTRA_LIBS=['${NONIRT_LIBS}'],
35 EXTRA_LINKFLAGS=['-nostdlib'])
37 step_test_host = trusted_env.ComponentProgram(
38 'step_test_host', ['step_test_host.c'], EXTRA_LIBS=['sel'])
40 # We don't use AddBootstrap() to run this with nacl_bootstrap because:
41 # * there is no need in the current x86 sandboxes;
42 # * avoiding nacl_bootstrap means that we are testing that the
43 # software-under-test works with a non-zero sandbox base.
44 node = env.CommandTest('signal_handler_single_step.out',
45 [step_test_host, step_test_guest],
46 # Don't hide output: This test reports a
47 # "RESULTS" line for Buildbot to record.
49 env.AddNodeToTestSuite(node, ['small_tests'],
50 'run_signal_handler_single_step_test',
51 is_broken=not env.Bit('nacl_static_link'))
54 regs_step_test_guest = env.ComponentProgram(
55 'regs_step_test_guest', ['regs_step_test_guest.c'],
56 EXTRA_LIBS=['${NONIRT_LIBS}', 'test_common'])
58 regs_step_test_host = trusted_env.ComponentProgram(
59 'regs_step_test_host', ['regs_step_test_host.c'],
60 EXTRA_LIBS=['sel', 'test_common'])
62 node = env.CommandTest(
63 'signal_handler_regs_single_step.out',
64 env.AddBootstrap(regs_step_test_host, [regs_step_test_guest]))
65 env.AddNodeToTestSuite(node, ['small_tests', 'nonpexe_tests'],
66 'run_signal_handler_regs_single_step_test',
67 is_broken=not env.Bit('nacl_static_link'))