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

Unified Diff: SConstruct

Issue 9696046: Add test running support for tests generated as pexes. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | site_scons/site_tools/naclsdk.py » ('j') | site_scons/site_tools/naclsdk.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: SConstruct
diff --git a/SConstruct b/SConstruct
index 919b1c771fe3d87a0b5f3d01dab074fbfc9d47fb..79414466359e51e3248fbc5e34c9e4941ead560f 100755
--- a/SConstruct
+++ b/SConstruct
@@ -1192,8 +1192,15 @@ def CommandValidatorTestNacl(env, name, image,
if validator_flags is None:
validator_flags = []
+ if (env.Bit('pnacl_stop_with_pexe') and env['NACL_BUILD_FAMILY'] != 'TRUSTED'):
robertm 2012/03/13 20:57:51 I think it would be ok to simple skip the validato
jvoung - send to chromium... 2012/03/13 20:58:31 80 col (barely)
(google.com) Derek Schuff 2012/03/13 21:23:03 hm. since the only place this is used is the whole
+ # image is a pexe rather than a nexe
+ image, dep = GetTranslatedNexe(env, image)
+ extra_deps = [dep]
+ else:
+ extra_deps = []
+
command = [validator] + validator_flags + [image]
- return CommandTest(env, name, command, size, **extra)
+ return CommandTest(env, name, command, size, extra_deps=extra_deps, **extra)
pre_base_env.AddMethod(CommandValidatorTestNacl)
@@ -1950,6 +1957,21 @@ def ShouldUseVerboseOptions(extra):
# ----------------------------------------------------------
DeclareBit('tests_use_irt', 'Non-browser tests also load the IRT image', False)
+# Translate the given pexe. Return the name of the translated nexe and
+def GetTranslatedNexe(env, pexe):
+ pexe_name = pexe.abspath
+ nexe_name = pexe_name[:pexe_name.index('.pexe')] + '.nexe'
+ trans_flags = []
+ if 'TRANSLATEFLAGS' in env:
+ trans_flags = env['TRANSLATEFLAGS']
+ translate_command = ' '.join([env['TRANSLATE']] + trans_flags + [pexe_name,
jvoung - send to chromium... 2012/03/13 20:58:31 Would it work if you let scons do the env interpol
(google.com) Derek Schuff 2012/03/13 21:23:03 yeah, that works. On 2012/03/13 20:58:31, jvoung w
+ '-o', nexe_name, '-Wl,-L' + '${LIB_DIR}'])
+
+ pexe_node = env.Command(nexe_name, pexe_name, translate_command)
+ return nexe_name, pexe_node
+
+pre_base_env.AddMethod(GetTranslatedNexe)
+
def CommandSelLdrTestNacl(env, name, nexe,
args = None,
log_verbosity=2,
@@ -1971,7 +1993,15 @@ def CommandSelLdrTestNacl(env, name, nexe,
env['TRUSTED_ENV'].Bit('windows')):
return []
- command = [nexe]
+ if (env.Bit('pnacl_stop_with_pexe') and env['NACL_BUILD_FAMILY'] != 'TRUSTED'):
jvoung - send to chromium... 2012/03/13 20:58:31 80 col (barely)
(google.com) Derek Schuff 2012/03/13 21:23:03 punting this because the name change fixes it :P O
jvoung - send to chromium... 2012/03/13 21:41:23 =) sounds good.
+ # The nexe is actually a pexe. translate it before we run it
+ nexe_name, pexe_node = GetTranslatedNexe(env, nexe)
+ command = [nexe_name]
+ extra_deps = [pexe_node]
+ else:
+ command = [nexe]
+ extra_deps = []
+
if args is not None:
command += args
@@ -2025,7 +2055,8 @@ def CommandSelLdrTestNacl(env, name, nexe,
env.MakeVerboseExtraOptions(name, log_verbosity, extra)
node = CommandTest(env, name, command, size, posix_path=True,
- wrapper_program_prefix=wrapper_program_prefix, **extra)
+ wrapper_program_prefix=wrapper_program_prefix,
+ extra_deps=extra_deps, **extra)
if env.Bit('tests_use_irt'):
env.Alias('irt_tests', node)
return node
« no previous file with comments | « no previous file | site_scons/site_tools/naclsdk.py » ('j') | site_scons/site_tools/naclsdk.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698