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

Unified Diff: tests/callingconv/nacl.scons

Issue 8366024: Add pnacl-gcc generated code back into the callingconv test mix (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 9 years, 2 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 | « tests/callingconv/generate.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/callingconv/nacl.scons
===================================================================
--- tests/callingconv/nacl.scons (revision 6994)
+++ tests/callingconv/nacl.scons (working copy)
@@ -26,13 +26,11 @@
base_env = env.Clone()
callingconv_h = base_env.File('callingconv.h').srcnode()
extra_cflags = [ '-Wno-long-long', '-I' + callingconv_h.dir.abspath ]
-base_env.Append(CFLAGS = extra_cflags)
settings = {
'num_functions' : 200,
'calls_per_func' : 4,
'max_args_per_func': 16,
- 'num_modules' : 4,
}
# va_arg of struct types is broken in PNaCl
@@ -51,18 +49,22 @@
envlist = []
if env.Bit('bitcode'):
- # For PNaCl, do a mixed test:
- # Compile two modules with PNaCl (straight to native code)
- # and the other modules with the native toolchain.
+ # For PNaCl, we do a mixed test.
+ # Create environments for pnacl-clang, pnacl-gcc, and nacl-gcc.
+ # For each environment, we compile a test module straight to native code.
pnacl_env = base_env.Clone()
pnacl_env.PNaClForceNative()
envlist.append(pnacl_env)
+ if env['PNACL_FRONTEND'] == 'clang':
+ alt_env = base_env.PNaClChangeFrontend('llvmgcc')
+ alt_env.PNaClForceNative()
+ envlist.append(alt_env)
+
# On X86-32 and X86-64, test against nacl-gcc also.
# For ARM, we can only test PNaCl's self-consistency.
if not base_env.Bit('target_arm'):
- native_env = base_env.PNaClGetNNaClEnv() # Clears CFLAGS
- native_env.Append(CFLAGS = extra_cflags)
+ native_env = base_env.PNaClGetNNaClEnv()
envlist.append(native_env)
link_env = pnacl_env
@@ -71,7 +73,18 @@
link_env = base_env
envlist.append(base_env)
-num_modules = settings['num_modules']
+# Add custom CFLAGS
+# This must be done here, since PNaClGetNNaClEnv and
+# PNaclChangeFrontend wipe CFLAGS.
+for e in envlist:
+ e.Append(CFLAGS = extra_cflags)
+
+# Create two modules for each environment,
+# so that we test toolchain self-interaction.
+envlist = envlist + envlist
+
+num_modules = len(envlist)
+settings['num_modules'] = num_modules
module_filenames = [ 'module%d.c' % i for i in xrange(num_modules) ]
# Generate the module source files (module0.c, module1.c, ...)
@@ -83,24 +96,18 @@
base_env.File('generate.py'),
Action('${PYTHON} ${SOURCE} ${GENERATOR_SETTINGS} -- ${TARGETS}'))
-# All the modules and callingconv.c depend on the header file
-base_env.Depends(nodes, callingconv_h)
-
-# Assign each module a build environment
-module_env = []
-j = 0
-for i in xrange(num_modules):
- module_env.append(envlist[j])
- j = (j+1) % len(envlist)
-
-# Create the module component objects
+# Create the module objects
modules = []
for i in xrange(num_modules):
- modules.append(module_env[i].ComponentObject(nodes[i+1]))
+ obj = envlist[i].ComponentObject(nodes[i+1])
+ envlist[i].Depends(obj, callingconv_h)
+ modules.append(obj)
# Compile callingconv.c
callingconv = link_env.ComponentObject('callingconv.c')
+link_env.Depends(callingconv, callingconv_h)
+
prog = link_env.ComponentProgram('callingconv',
[callingconv] + modules,
EXTRA_LIBS=['${NONIRT_LIBS}'])
« no previous file with comments | « tests/callingconv/generate.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698