| Index: ppapi/native_client/tests/ppapi_browser/bad/nacl.scons
|
| ===================================================================
|
| --- ppapi/native_client/tests/ppapi_browser/bad/nacl.scons (revision 0)
|
| +++ ppapi/native_client/tests/ppapi_browser/bad/nacl.scons (revision 0)
|
| @@ -0,0 +1,98 @@
|
| +# -*- python -*-
|
| +# Copyright (c) 2011 The Native Client Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +#
|
| +# Tests fatal errors that occur during loading.
|
| +# (See ppapi_browser/crash for fatal errors that occur after loading).
|
| +# TODO(polina): rename the directory and browser test to bad_load
|
| +#
|
| +# Manual testing with localhost:5103/scons-out/.../staging/ppapi_bad.html:
|
| +# scons --mode=nacl ppapi_bad
|
| +# Automatic testing:
|
| +# scons run_ppapi_bad_browser_test
|
| +#
|
| +
|
| +Import('env')
|
| +
|
| +# TODO(robertm): those should not be necessary once we go -std=c99
|
| +env.FilterOut(CFLAGS=['-pedantic'])
|
| +env.FilterOut(CCFLAGS=['-pedantic'])
|
| +
|
| +ppapi_bad_files = [
|
| + 'ppapi_bad.html',
|
| + 'ppapi_bad.js',
|
| + 'ppapi_bad_crossorigin.nmf',
|
| + 'ppapi_bad_doesnotexist.nmf',
|
| + 'ppapi_bad_doesnotexist_nexe_only.nmf',
|
| + 'ppapi_bad_magic.nmf',
|
| + 'ppapi_bad_manifest_uses_nexes.nmf',
|
| + 'ppapi_bad_manifest_bad_files.nmf',
|
| + env.File('${SCONSTRUCT_DIR}/tools/browser_tester/browserdata/nacltest.js')
|
| + ]
|
| +ppapi_bad = env.Replicate('${STAGING_DIR}', ppapi_bad_files)
|
| +
|
| +
|
| +# Compile all nexes embedded into the above html
|
| +for kind in [ 'ppp_initialize', 'ppp_initialize_crash',
|
| + 'no_ppp_instance', 'get_ppp_instance_crash',
|
| + 'get_ppp_messaging_crash', 'get_ppp_printing_crash',
|
| + 'ppp_instance_didcreate', 'ppp_instance_didcreate_crash',
|
| + 'event_replay_crash'
|
| + ]:
|
| + bad_nmf = 'ppapi_bad_%s.nmf' % kind
|
| + bad_nexe = ('ppapi_bad_%s_%s' % (kind, env.get('TARGET_FULLARCH')))
|
| + env.ComponentProgram(bad_nexe,
|
| + ['ppapi_bad_%s.cc' % kind],
|
| + EXTRA_LIBS=['${PPAPI_LIBS}',
|
| + 'platform',
|
| + 'pthread',
|
| + 'gio'])
|
| +
|
| + env.Publish(bad_nexe, 'run', [bad_nmf])
|
| + ppapi_bad_files.extend(env.ExtractPublishedFiles(bad_nexe))
|
| + env.Depends(ppapi_bad, env.Alias(bad_nexe))
|
| +
|
| +# "scons --mode=nacl ppapi_bad" will publish the html and all of its
|
| +# dependencies to scons-out.
|
| +env.Alias('ppapi_bad', ppapi_bad)
|
| +
|
| +node = env.PPAPIBrowserTester(
|
| + 'ppapi_bad_browser_test.out',
|
| + url='ppapi_bad.html',
|
| + files=[env.File(f) for f in ppapi_bad_files],
|
| + args=['--allow_404'])
|
| +
|
| +env.AddNodeToTestSuite(node,
|
| + ['chrome_browser_tests'],
|
| + 'run_ppapi_bad_browser_test',
|
| + is_broken=env.PPAPIBrowserTesterIsBroken())
|
| +
|
| +
|
| +# Bad nexe tests that won't work in PNaCl (native)
|
| +# For example, partly_invalid.nexe has inline assembly in its source files.
|
| +
|
| +ppapi_bad_native_files = [
|
| + env.File('ppapi_bad_native.html'),
|
| + env.File('partly_invalid.nmf'),
|
| + env.File('${SCONSTRUCT_DIR}/tests/ppapi_browser/progress_events/' +
|
| + 'ppapi_progress_events.js'),
|
| + env.File('${SCONSTRUCT_DIR}/tools/browser_tester/browserdata/nacltest.js')
|
| + ]
|
| +replicated_files = env.Replicate('${STAGING_DIR}', ppapi_bad_native_files)
|
| +env.Alias('all_programs', replicated_files)
|
| +
|
| +partly_invalid = env.File('${STAGING_DIR}/partly_invalid${PROGSUFFIX}')
|
| +ppapi_bad_native_files.append(partly_invalid)
|
| +
|
| +node = env.PPAPIBrowserTester(
|
| + 'ppapi_bad_native_test.out',
|
| + url='ppapi_bad_native.html',
|
| + files=ppapi_bad_native_files,
|
| + )
|
| +
|
| +env.AddNodeToTestSuite(node,
|
| + ['chrome_browser_tests'],
|
| + 'run_ppapi_bad_native_test',
|
| + is_broken=env.PPAPIBrowserTesterIsBroken() or
|
| + env.Bit('bitcode'))
|
|
|