Home | History | Annotate | Download | only in nacl_test_injection
      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 
      6 import os
      7 import subprocess
      8 import sys
      9 
     10 
     11 def 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 
     76 if __name__ == '__main__':
     77   sys.exit(Main(sys.argv[1:]))
     78