806bcacc9b58c5828324d16f55241e861d3b9d7d
[platform/framework/web/crosswalk.git] / src / native_client / tests / signal_handler_single_step / nacl.scons
1 # -*- python -*-
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.
5
6 Import('env')
7
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():
11   Return()
12
13 if 'TRUSTED_ENV' not in env:
14   Return()
15 trusted_env = env['TRUSTED_ENV']
16
17 if not env.AllowInlineAssembly():
18   Return()
19
20 if not (env.Bit('build_x86') or env.Bit('build_arm')):
21   Return()
22 # This test uses POSIX signal handling so does not build on Windows.
23 if env.Bit('host_windows'):
24   Return()
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'):
29   Return()
30
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'])
36
37   step_test_host = trusted_env.ComponentProgram(
38       'step_test_host', ['step_test_host.c'], EXTRA_LIBS=['sel'])
39
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.
48                          capture_output=False)
49   env.AddNodeToTestSuite(node, ['small_tests'],
50                          'run_signal_handler_single_step_test',
51                          is_broken=not env.Bit('nacl_static_link'))
52
53
54 regs_step_test_guest = env.ComponentProgram(
55     'regs_step_test_guest', ['regs_step_test_guest.c'],
56     EXTRA_LIBS=['${NONIRT_LIBS}', 'test_common'])
57
58 regs_step_test_host = trusted_env.ComponentProgram(
59     'regs_step_test_host', ['regs_step_test_host.c'],
60     EXTRA_LIBS=['sel', 'test_common'])
61
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'))