Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: tests/toolchain/nacl.scons

Issue 14619022: Skip ABI verification for tests of __builtin_{frame,return}_address. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: fix comment Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/toolchain_tester/known_failures_pnacl.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # -*- python -*- 1 # -*- python -*-
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 Import('env') 6 Import('env')
7 7
8 # force inclusion of entire library, so that we can validate it 8 # force inclusion of entire library, so that we can validate it
9 # NOTE: This approach does not work for -lc because of tons of 9 # NOTE: This approach does not work for -lc because of tons of
10 # undefined symbols which would have to be stubbed out 10 # undefined symbols which would have to be stubbed out
(...skipping 23 matching lines...) Expand all
34 EXTRA_LINKFLAGS=DEP_LINKFLAGS, 34 EXTRA_LINKFLAGS=DEP_LINKFLAGS,
35 LIBS=DEP_LIBS, 35 LIBS=DEP_LIBS,
36 _LIBFLAGS='') 36 _LIBFLAGS='')
37 node = env.CommandValidatorTestNacl('whole_archive_test.out', 37 node = env.CommandValidatorTestNacl('whole_archive_test.out',
38 image=nexe) 38 image=nexe)
39 env.AddNodeToTestSuite(node, 39 env.AddNodeToTestSuite(node,
40 ['toolchain_tests', 'small_tests'], 40 ['toolchain_tests', 'small_tests'],
41 'run_whole_archive_test') 41 'run_whole_archive_test')
42 42
43 43
44 TESTS_TO_RUN = [ 44 # Test various intrinsics.
45 # (src, exit_status, golden_file, cond), 45 # Some of the intrinsic tests cover intrinsics that we do not want to
46 # The valus None for golden_file means no golden file, c.f. 46 # support. For example, llvm.frameaddress. If that is the case, we will
47 # SConstruct::CommandTest() 47 # use the nonstable_env as our test_env in AddIntrinsicTest.
48 ('setlongjmp.c', '55', None, True), 48 if env.Bit('bitcode'):
49 ('intrinsics.cc', '55', None, True), 49 nonstable_env = env.Clone()
50 ('float2.c', '0', True, True), 50 nonstable_env.Append(LINKFLAGS=['--pnacl-disable-abi-check'])
51 ('frame_addresses.c', '0', None, True), 51 else:
52 # NOTE: this test uses bitcode asm's 52 nonstable_env = env
53 ('llvm_math_intrinsics.c', '0', True, env.Bit('bitcode')),
54 # NOTE: this test uses bitcode asm's
55 ('llvm_bitmanip_intrinsics.c', '0', True, env.Bit('bitcode')),
56 ('llvm_atomic_intrinsics.c', '55', None, True),
57 ]
58 53
59 for src, exit_status, golden_file, cond in TESTS_TO_RUN: 54
60 if not cond: continue 55 def AddIntrinsicTest(test_env, src, exit_status, has_golden_file=False):
61 name = src.split('.')[0] 56 name = src.split('.')[0]
62 if golden_file == True: 57 if has_golden_file:
63 golden_file = env.File(name + '.stdout') 58 golden_file = test_env.File(name + '.stdout')
59 else:
60 golden_file = None
64 61
65 nexe = env.ComponentProgram(name, src, EXTRA_LIBS=['${NONIRT_LIBS}']) 62 nexe = test_env.ComponentProgram(name, src, EXTRA_LIBS=['${NONIRT_LIBS}'])
66 node = env.CommandSelLdrTestNacl(name + '.out', 63 node = test_env.CommandSelLdrTestNacl(name + '.out',
67 nexe, 64 nexe,
68 exit_status=exit_status, 65 exit_status=exit_status,
69 stdout_golden=golden_file) 66 stdout_golden=golden_file)
70 env.AddNodeToTestSuite(node, 67 test_env.AddNodeToTestSuite(node,
71 ['toolchain_tests','small_tests'], 68 ['toolchain_tests','small_tests'],
72 'run_' + name + '_test') 69 'run_' + name + '_test')
70
71
72 AddIntrinsicTest(env, 'setlongjmp.c', '55')
73 AddIntrinsicTest(env, 'intrinsics.cc', '55'),
74 AddIntrinsicTest(env, 'float2.c', '0', has_golden_file=True)
75 # Consider llvm.frameaddress and llvm.returnaddress non-stable,
76 # since we may want to hide return and stack addresses in the future.
77 AddIntrinsicTest(nonstable_env, 'frame_addresses.c', '0'),
78 AddIntrinsicTest(nonstable_env, 'return_address.c', '55')
79 # TODO(jvoung): Revisit stability of llvm math, bitmanip, and atomic intrinsics.
80 if env.Bit('bitcode'):
81 # These two tests redirect C function calls to llvm instrinsic functions,
82 # so they only work w/ PNaCl.
83 AddIntrinsicTest(nonstable_env, 'llvm_math_intrinsics.c', '0',
84 has_golden_file=True)
85 AddIntrinsicTest(nonstable_env, 'llvm_bitmanip_intrinsics.c', '0',
86 has_golden_file=True)
87 AddIntrinsicTest(nonstable_env, 'llvm_atomic_intrinsics.c', '55')
73 88
74 89
75 # initfini test 90 # initfini test
76 initfini_obj = env.ComponentObject('initfini.c') 91 initfini_obj = env.ComponentObject('initfini.c')
77 92
78 def AddInitFiniTest(env, name, extra_libs): 93 def AddInitFiniTest(env, name, extra_libs):
79 nexe = env.ComponentProgram(name, 94 nexe = env.ComponentProgram(name,
80 [initfini_obj], 95 [initfini_obj],
81 EXTRA_LIBS=extra_libs + ['${NONIRT_LIBS}']) 96 EXTRA_LIBS=extra_libs + ['${NONIRT_LIBS}'])
82 golden_file = env.File(name + '.stdout') 97 golden_file = env.File(name + '.stdout')
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 bias_env.AddNodeToTestSuite(node, ['toolchain_tests', 'small_tests'], 148 bias_env.AddNodeToTestSuite(node, ['toolchain_tests', 'small_tests'],
134 'run_pthread_cleanup_test') 149 'run_pthread_cleanup_test')
135 150
136 151
137 # NOTE: the tests below break easily under valgrid and since 152 # NOTE: the tests below break easily under valgrid and since
138 # they do not exercise malloc/free we exclude 153 # they do not exercise malloc/free we exclude
139 if env.IsRunningUnderValgrind(): 154 if env.IsRunningUnderValgrind():
140 Return() 155 Return()
141 156
142 157
143 nexe = env.ComponentProgram('return_address', 'return_address.c',
144 EXTRA_LIBS=['${NONIRT_LIBS}'])
145 node = env.CommandSelLdrTestNacl('return_address.out',
146 nexe,
147 exit_status='55')
148 env.AddNodeToTestSuite(node,
149 ['toolchain_tests', 'small_tests'],
150 'run_return_address_test')
151
152 # NOTE: we assume that the incoming env contains '-O2', '-fomit-frame-pointer' 158 # NOTE: we assume that the incoming env contains '-O2', '-fomit-frame-pointer'
153 def MakeEnv(use_opts, use_frames): 159 def MakeEnv(use_opts, use_frames):
154 new_env = env.Clone() 160 new_env = env.Clone()
155 # AddBiasForPNaCl() is only needed for stack_frame.cc and eh_return.c. 161 # AddBiasForPNaCl() is only needed for stack_frame.cc and eh_return.c.
156 if new_env.Bit('bitcode'): 162 if new_env.Bit('bitcode'):
157 new_env.AddBiasForPNaCl() 163 new_env.AddBiasForPNaCl()
158 new_env.FilterOut(CFLAGS=['-pedantic']) 164 new_env.FilterOut(CFLAGS=['-pedantic'])
159 new_env.FilterOut(CCFLAGS=['-pedantic']) 165 new_env.FilterOut(CCFLAGS=['-pedantic'])
160 if use_frames: 166 if use_frames:
161 new_env.FilterOut(CFLAGS=['-fomit-frame-pointer']) 167 new_env.FilterOut(CFLAGS=['-fomit-frame-pointer'])
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 env.AddNodeToTestSuite(node, 361 env.AddNodeToTestSuite(node,
356 ['toolchain_tests', 'small_tests'], 362 ['toolchain_tests', 'small_tests'],
357 'run_' + name + '_test') 363 'run_' + name + '_test')
358 AddAlignedCodeTest('aligned_code', 364 AddAlignedCodeTest('aligned_code',
359 env.ComponentProgram('aligned_code', ['aligned_code.c'], 365 env.ComponentProgram('aligned_code', ['aligned_code.c'],
360 EXTRA_LIBS=['${NONIRT_LIBS}'])) 366 EXTRA_LIBS=['${NONIRT_LIBS}']))
361 if not env.Bit('nacl_disable_shared'): 367 if not env.Bit('nacl_disable_shared'):
362 AddAlignedCodeTest('aligned_code_lib', 368 AddAlignedCodeTest('aligned_code_lib',
363 env.NaClSharedLibrary('aligned_code_lib', 369 env.NaClSharedLibrary('aligned_code_lib',
364 ['aligned_code_lib.c'])) 370 ['aligned_code_lib.c']))
OLDNEW
« no previous file with comments | « no previous file | tools/toolchain_tester/known_failures_pnacl.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698