15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import subprocess 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import sys 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def Main(args): 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pwd = os.environ.get('PWD', '') 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) is_integration_bot = 'nacl-chrome' in pwd 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This environment variable check mimics what 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # buildbot_chrome_nacl_stage.py does. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) is_win64 = (sys.platform in ('win32', 'cygwin') and 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ('64' in os.environ.get('PROCESSOR_ARCHITECTURE', '') or 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '64' in os.environ.get('PROCESSOR_ARCHITEW6432', ''))) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # On the main Chrome waterfall, we may need to control where the tests are 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # run. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # If there is serious skew in the PPAPI interface that causes all of 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the NaCl integration tests to fail, you can uncomment the 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # following block. (Make sure you comment it out when the issues 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # are resolved.) *However*, it is much preferred to add tests to 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # the 'tests_to_disable' list below. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #if not is_integration_bot: 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # return 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tests_to_disable = [] 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # In general, you should disable tests inside this conditional. This turns 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # them off on the main Chrome waterfall, but not on NaCl's integration bots. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # This makes it easier to see when things have been fixed NaCl side. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if not is_integration_bot: 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # http://code.google.com/p/nativeclient/issues/detail?id=2511 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tests_to_disable.append('run_ppapi_ppb_image_data_browser_test') 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if sys.platform == 'darwin': 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # TODO(mseaborn) fix 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # http://code.google.com/p/nativeclient/issues/detail?id=1835 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tests_to_disable.append('run_ppapi_crash_browser_test') 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if sys.platform in ('win32', 'cygwin'): 465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # This one is only failing for nacl_glibc on x64 Windows but it is not 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # clear how to disable only that limited case. 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # See http://crbug.com/132395 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tests_to_disable.append('run_inbrowser_test_runner') 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # run_breakpad_browser_process_crash_test is flaky. 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # See http://crbug.com/317890 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) tests_to_disable.append('run_breakpad_browser_process_crash_test') 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) # See http://crbug.com/332301 545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) tests_to_disable.append('run_breakpad_crash_in_syscall_test') 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) # It appears that crash_service.exe is not being reliably built by 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) # default in the CQ. See: http://crbug.com/380880 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tests_to_disable.append('run_breakpad_untrusted_crash_test') 5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tests_to_disable.append('run_breakpad_trusted_crash_in_startup_test') 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) script_dir = os.path.dirname(os.path.abspath(__file__)) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) nacl_integration_script = os.path.join(script_dir, 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 'buildbot_chrome_nacl_stage.py') 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmd = [sys.executable, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) nacl_integration_script, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # TODO(ncbray) re-enable. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # https://code.google.com/p/chromium/issues/detail?id=133568 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '--disable_glibc', 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) '--disable_tests=%s' % ','.join(tests_to_disable)] 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmd += args 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sys.stdout.write('Running %s\n' % ' '.join(cmd)) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sys.stdout.flush() 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return subprocess.call(cmd) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if __name__ == '__main__': 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sys.exit(Main(sys.argv[1:])) 78