1#!/usr/bin/env 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.
5
6import os
7import subprocess
8import sys
9
10
11def Main(args):
12  pwd = os.environ.get('PWD', '')
13  is_integration_bot = 'nacl-chrome' in pwd
14
15  # This environment variable check mimics what
16  # buildbot_chrome_nacl_stage.py does.
17  is_win64 = (sys.platform in ('win32', 'cygwin') and
18              ('64' in os.environ.get('PROCESSOR_ARCHITECTURE', '') or
19               '64' in os.environ.get('PROCESSOR_ARCHITEW6432', '')))
20
21  # On the main Chrome waterfall, we may need to control where the tests are
22  # run.
23  # If there is serious skew in the PPAPI interface that causes all of
24  # the NaCl integration tests to fail, you can uncomment the
25  # following block.  (Make sure you comment it out when the issues
26  # are resolved.)  *However*, it is much preferred to add tests to
27  # the 'tests_to_disable' list below.
28  #if not is_integration_bot:
29  #  return
30
31  tests_to_disable = []
32
33  # In general, you should disable tests inside this conditional.  This turns
34  # them off on the main Chrome waterfall, but not on NaCl's integration bots.
35  # This makes it easier to see when things have been fixed NaCl side.
36  if not is_integration_bot:
37    # http://code.google.com/p/nativeclient/issues/detail?id=2511
38    tests_to_disable.append('run_ppapi_ppb_image_data_browser_test')
39
40    if sys.platform == 'darwin':
41      # TODO(mseaborn) fix
42      # http://code.google.com/p/nativeclient/issues/detail?id=1835
43      tests_to_disable.append('run_ppapi_crash_browser_test')
44
45    if sys.platform in ('win32', 'cygwin'):
46      # This one is only failing for nacl_glibc on x64 Windows but it is not
47      # clear how to disable only that limited case.
48      # See http://crbug.com/132395
49      tests_to_disable.append('run_inbrowser_test_runner')
50      # run_breakpad_browser_process_crash_test is flaky.
51      # See http://crbug.com/317890
52      tests_to_disable.append('run_breakpad_browser_process_crash_test')
53      # See http://crbug.com/332301
54      tests_to_disable.append('run_breakpad_crash_in_syscall_test')
55
56      # It appears that crash_service.exe is not being reliably built by
57      # default in the CQ.  See: http://crbug.com/380880
58      tests_to_disable.append('run_breakpad_untrusted_crash_test')
59      tests_to_disable.append('run_breakpad_trusted_crash_in_startup_test')
60
61  script_dir = os.path.dirname(os.path.abspath(__file__))
62  nacl_integration_script = os.path.join(script_dir,
63                                         'buildbot_chrome_nacl_stage.py')
64  cmd = [sys.executable,
65         nacl_integration_script,
66         # TODO(ncbray) re-enable.
67         # https://code.google.com/p/chromium/issues/detail?id=133568
68         '--disable_glibc',
69         '--disable_tests=%s' % ','.join(tests_to_disable)]
70  cmd += args
71  sys.stdout.write('Running %s\n' % ' '.join(cmd))
72  sys.stdout.flush()
73  return subprocess.call(cmd)
74
75
76if __name__ == '__main__':
77  sys.exit(Main(sys.argv[1:]))
78