OLD | NEW |
1 # -*- python -*- | 1 # -*- python -*- |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 os | 6 import os |
7 | 7 |
8 Import('env') | 8 Import('env') |
9 | 9 |
10 if env.Bit('host_windows') or env.Bit('host_mac'): | 10 if env.Bit('host_windows') or env.Bit('host_mac'): |
11 expected_crash_dumps = 1 | 11 expected_crash_dumps = 1 |
12 else: | 12 else: |
13 # We are also checking that crash dumping does not work | 13 # We are also checking that crash dumping does not work |
14 # unexpectedly, since that might indicate that Breakpad was enabled | 14 # unexpectedly, since that might indicate that Breakpad was enabled |
15 # without checking that it works securely. | 15 # without checking that it works securely. |
16 expected_crash_dumps = 0 | 16 expected_crash_dumps = 0 |
17 | 17 |
18 platform_args = [] | 18 platform_args = [] |
19 if env.Bit('host_windows') and env.Bit('build_x86_64'): | 19 if env.Bit('host_windows') and env.Bit('build_x86_64'): |
20 platform_args.append('--win64') | 20 platform_args.append('--win64') |
21 | 21 |
22 def GetNexeByName(name): | 22 def GetNexeByName(name): |
23 return env.File('${STAGING_DIR}/%s${PROGSUFFIX}' % | 23 return env.File('${STAGING_DIR}/%s${PROGSUFFIX}' % |
24 env.ProgramNameForNmf(name)) | 24 env.ProgramNameForNmf(name)) |
25 | 25 |
26 | 26 |
27 # This tests that crashes in Chromium's browser process successfully | 27 # This tests that crashes in Chromium's browser process successfully |
28 # produce crash dumps via Breakpad. | 28 # produce crash dumps via Breakpad. |
29 # TODO(mseaborn): Enable this for Linux, too, when Breakpad is | 29 node = env.PPAPIBrowserTester( |
30 # compiled into Chromium by default. | 30 'breakpad_browser_process_crash_test.out', |
31 # See http://code.google.com/p/chromium/issues/detail?id=105778 | 31 python_tester_script=env.File('crash_dump_tester.py'), |
32 if env.Bit('host_windows') or env.Bit('host_mac'): | 32 browser_flags=['--crash-test'], # Tell the browser process to crash. |
33 node = env.PPAPIBrowserTester( | 33 url='browser_process_crash.html', |
34 'breakpad_browser_process_crash_test.out', | 34 nmf_names=[], |
35 python_tester_script=env.File('crash_dump_tester.py'), | 35 files=[env.File('browser_process_crash.html')], |
36 browser_flags=['--crash-test'], # Tell the browser process to crash. | 36 args=platform_args + ['--expect_browser_process_crash', |
37 url='browser_process_crash.html', | 37 '--expected_crash_dumps=1', |
38 nmf_names=[], | 38 '--expected_process_type=browser']) |
39 files=[env.File('browser_process_crash.html')], | 39 env.AddNodeToTestSuite( |
40 args=platform_args + ['--expect_browser_process_crash', | 40 node, ['chrome_browser_tests'], 'run_breakpad_browser_process_crash_test', |
41 '--expected_crash_dumps=1', | 41 is_broken=(env.PPAPIBrowserTesterIsBroken() or |
42 '--expected_process_type=browser']) | 42 env.Bit('running_on_valgrind'))) |
43 env.AddNodeToTestSuite( | |
44 node, ['chrome_browser_tests'], 'run_breakpad_browser_process_crash_test', | |
45 is_broken=(env.PPAPIBrowserTesterIsBroken() or | |
46 env.Bit('running_on_valgrind'))) | |
47 | 43 |
48 # This crash in trusted code should produce a crash dump. | 44 # This crash in trusted code should produce a crash dump. |
49 crash_test_url = 'trusted_crash_in_startup.html' | 45 crash_test_url = 'trusted_crash_in_startup.html' |
50 if env.Bit('pnacl_generate_pexe'): | 46 if env.Bit('pnacl_generate_pexe'): |
51 crash_test_url += '?is_pnacl=true' | 47 crash_test_url += '?is_pnacl=true' |
52 node = env.PPAPIBrowserTester( | 48 node = env.PPAPIBrowserTester( |
53 'breakpad_trusted_crash_in_startup_test.out', | 49 'breakpad_trusted_crash_in_startup_test.out', |
54 python_tester_script=env.File('crash_dump_tester.py'), | 50 python_tester_script=env.File('crash_dump_tester.py'), |
55 url=crash_test_url, | 51 url=crash_test_url, |
56 nmf_names=['crash_test'], | 52 nmf_names=['crash_test'], |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 python_tester_script=env.File('crash_dump_tester.py'), | 84 python_tester_script=env.File('crash_dump_tester.py'), |
89 url='untrusted_crash.html', | 85 url='untrusted_crash.html', |
90 nmf_names=['crash_test'], | 86 nmf_names=['crash_test'], |
91 files=[GetNexeByName('crash_test'), | 87 files=[GetNexeByName('crash_test'), |
92 env.File('untrusted_crash.html')], | 88 env.File('untrusted_crash.html')], |
93 args=platform_args + ['--expected_crash_dumps=0']) | 89 args=platform_args + ['--expected_crash_dumps=0']) |
94 env.AddNodeToTestSuite( | 90 env.AddNodeToTestSuite( |
95 node, ['chrome_browser_tests'], 'run_breakpad_untrusted_crash_test', | 91 node, ['chrome_browser_tests'], 'run_breakpad_untrusted_crash_test', |
96 is_broken=env.PPAPIBrowserTesterIsBroken() or | 92 is_broken=env.PPAPIBrowserTesterIsBroken() or |
97 env.Bit('running_on_valgrind')) | 93 env.Bit('running_on_valgrind')) |
OLD | NEW |