Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ppapi / native_client / tests / breakpad_crash_test / nacl.scons
bloba6bfd1c59bbf41eb0ceacc670ff5604d8e770a74
1 # -*- python -*-
2 # Copyright (c) 2012 The Chromium 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.
6 import os
8 Import('env')
10 if env.Bit('host_windows') or env.Bit('host_mac'):
11   expected_crash_dumps = 1
12 else:
13   # We are also checking that crash dumping does not work
14   # unexpectedly, since that might indicate that Breakpad was enabled
15   # without checking that it works securely.
16   expected_crash_dumps = 0
18 platform_args = []
19 if env.Bit('host_windows') and env.Bit('build_x86_64'):
20   platform_args.append('--win64')
22 def GetNexeByName(name):
23   return env.File('${STAGING_DIR}/%s${PROGSUFFIX}' %
24                   env.ProgramNameForNmf(name))
27 # This tests that crashes in Chromium's browser process successfully
28 # produce crash dumps via Breakpad.
29 node = env.PPAPIBrowserTester(
30     'breakpad_browser_process_crash_test.out',
31     python_tester_script=env.File('crash_dump_tester.py'),
32     browser_flags=['--crash-test'], # Tell the browser process to crash.
33     url='browser_process_crash.html',
34     nmf_names=[],
35     files=[env.File('browser_process_crash.html')],
36     args=platform_args + ['--expect_browser_process_crash',
37                           '--expected_crash_dumps=1',
38                           '--expected_process_type=browser'])
40 # The test is disabled because it is flaky on Linux and Mac.
41 # See: https://code.google.com/p/chromium/issues/detail?id=175023
42 # Additionally, the test affects crash stats on Mac because it uploads
43 # crash dumps on the bots for the Chrome official build.
44 # See: https://code.google.com/p/chromium/issues/detail?id=129402
45 env.AddNodeToTestSuite(
46     node, ['chrome_browser_tests'], 'run_breakpad_browser_process_crash_test',
47     is_broken=(env.PPAPIBrowserTesterIsBroken() or
48                env.Bit('host_linux') or env.Bit('host_mac') or
49                env.Bit('running_on_valgrind')))
51 # This crash in trusted code should produce a crash dump.
52 # DISABLED due to flakiness (http://crbug.com/247114).
53 # crash_test_url = 'trusted_crash_in_startup.html'
54 # node = env.PPAPIBrowserTester(
55 #     'breakpad_trusted_crash_in_startup_test.out',
56 #     python_tester_script=env.File('crash_dump_tester.py'),
57 #     url=crash_test_url,
58 #     nmf_names=['crash_test'],
59 #     files=[GetNexeByName('crash_test'),
60 #            env.File('trusted_crash_in_startup.html')],
61 #     osenv='NACL_CRASH_TEST=1',
62 #     args=platform_args + ['--expected_crash_dumps=%i' % expected_crash_dumps])
63
64 # env.AddNodeToTestSuite(
65 #     node,
66 #     ['chrome_browser_tests'],
67 #     'run_breakpad_trusted_crash_in_startup_test',
68 #     is_broken=env.PPAPIBrowserTesterIsBroken() or
69 #                env.Bit('running_on_valgrind'))
71 # This tests a crash that occurs inside a syscall handler.
72 # Ultimately this should be recognised as a crash caused by untrusted code.
73 # See http://code.google.com/p/nativeclient/issues/detail?id=579
74 # DISABLED due to flakiness (http://crbug.com/332331)
75 # node = env.PPAPIBrowserTester(
76 #     'breakpad_crash_in_syscall_test.out',
77 #     python_tester_script=env.File('crash_dump_tester.py'),
78 #     url='crash_in_syscall.html',
79 #     nmf_names=['crash_in_syscall'],
80 #     files=[GetNexeByName('crash_in_syscall'),
81 #            env.File('crash_in_syscall.html')],
82 #     args=platform_args + ['--expected_crash_dumps=%i' % expected_crash_dumps])
83 # env.AddNodeToTestSuite(
84 #     node, ['chrome_browser_tests'], 'run_breakpad_crash_in_syscall_test',
85 #     # This test is currently flaky on Win 32 bit on x86, disabling there.
86 #     # See bug: https://code.google.com/p/chromium/issues/detail?id=254583
87 #     is_broken=env.PPAPIBrowserTesterIsBroken() or
88 #                env.Bit('running_on_valgrind') or
89 #                (env.Bit('host_windows') and env.Bit('build_x86_32')))
91 # Crashes in untrusted code should not produce crash dumps.
92 node = env.PPAPIBrowserTester(
93     'breakpad_untrusted_crash_test.out',
94     python_tester_script=env.File('crash_dump_tester.py'),
95     url='untrusted_crash.html',
96     nmf_names=['crash_test'],
97     files=[GetNexeByName('crash_test'),
98            env.File('untrusted_crash.html')],
99     args=platform_args + ['--expected_crash_dumps=0'])
100 env.AddNodeToTestSuite(
101     node, ['chrome_browser_tests'], 'run_breakpad_untrusted_crash_test',
102     # This currently reliably fails in linux_aura configurations, probably for
103     # the same reasons that the previous test fails.
104     #
105     # See bug: https://code.google.com/p/chromium/issues/detail?id=303342
106     is_broken=env.PPAPIBrowserTesterIsBroken() or
107                env.Bit('running_on_valgrind') or
108                env.Bit('host_linux'))