| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 from infra.libs.infra_types import freeze | 5 from infra.libs.infra_types import freeze |
| 6 from slave import recipe_api | 6 from slave import recipe_api |
| 7 | 7 |
| 8 import common | 8 import common |
| 9 | 9 |
| 10 SIMPLE_TESTS_TO_RUN = freeze([ | 10 SIMPLE_TESTS_TO_RUN = freeze([ |
| (...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 enable_swarming, swarming_dimensions)) | 435 enable_swarming, swarming_dimensions)) |
| 436 tests.append(self._create_gtest( | 436 tests.append(self._create_gtest( |
| 437 'media_unittests', chrome_revision, webkit_revision, enable_swarming, | 437 'media_unittests', chrome_revision, webkit_revision, enable_swarming, |
| 438 swarming_dimensions)) | 438 swarming_dimensions)) |
| 439 | 439 |
| 440 # Remove empty entries as some tests may be skipped. | 440 # Remove empty entries as some tests may be skipped. |
| 441 tests = [test for test in tests if test] | 441 tests = [test for test in tests if test] |
| 442 | 442 |
| 443 return tests | 443 return tests |
| 444 | 444 |
| 445 def _should_run_test(self, isolate_name): | |
| 446 # Check to see if analyze.py excluded this isolate from the | |
| 447 # compile targets. If so, skip running it. (It isn't possible to | |
| 448 # run analyze.py on the testers because they don't check out the | |
| 449 # Chromium workspace.) We prefer to not run this logic on the main | |
| 450 # waterfall bots so that forgetting an isolate's hash there will | |
| 451 # cause a hard failure. | |
| 452 if self.m.properties['mastername'] == 'tryserver.chromium.gpu': | |
| 453 return isolate_name in self.m.isolate.isolated_tests | |
| 454 else: | |
| 455 return True | |
| 456 | |
| 457 def _get_gpu_suffix(self, dimensions): | 445 def _get_gpu_suffix(self, dimensions): |
| 458 if dimensions is None: | 446 if dimensions is None: |
| 459 return None | 447 return None |
| 460 | 448 |
| 461 gpu_vendor_id = dimensions.get('gpu', '').split(':')[0].lower() | 449 gpu_vendor_id = dimensions.get('gpu', '').split(':')[0].lower() |
| 462 if gpu_vendor_id == '8086': | 450 if gpu_vendor_id == '8086': |
| 463 gpu_vendor = 'Intel' | 451 gpu_vendor = 'Intel' |
| 464 # TODO(sergiyb): Mocking various vendors IDs is currently difficult as they | 452 # TODO(sergiyb): Mocking various vendors IDs is currently difficult as they |
| 465 # are hard coded in the recipe. When we'll move the configs to an external | 453 # are hard coded in the recipe. When we'll move the configs to an external |
| 466 # json file read in a dedicated step whose data can be overriden, we should | 454 # json file read in a dedicated step whose data can be overriden, we should |
| (...skipping 22 matching lines...) Expand all Loading... |
| 489 enable_swarming, swarming_dimensions, | 477 enable_swarming, swarming_dimensions, |
| 490 args=[], target_name=None): | 478 args=[], target_name=None): |
| 491 # The step test must end in 'test' or 'tests' in order for the results to | 479 # The step test must end in 'test' or 'tests' in order for the results to |
| 492 # automatically show up on the flakiness dashboard. | 480 # automatically show up on the flakiness dashboard. |
| 493 # | 481 # |
| 494 # Currently all tests on the GPU bots follow this rule, so we can't add | 482 # Currently all tests on the GPU bots follow this rule, so we can't add |
| 495 # code like in chromium/api.py, run_telemetry_test. | 483 # code like in chromium/api.py, run_telemetry_test. |
| 496 | 484 |
| 497 target_name = target_name or name | 485 target_name = target_name or name |
| 498 assert target_name.endswith('test') or target_name.endswith('tests') | 486 assert target_name.endswith('test') or target_name.endswith('tests') |
| 499 if not self._should_run_test(name): | |
| 500 return | |
| 501 | 487 |
| 502 results_directory = self.m.path['slave_build'].join('gtest-results', name) | 488 results_directory = self.m.path['slave_build'].join('gtest-results', name) |
| 503 return self.m.chromium.steps.GPUGTestTest( | 489 return self.m.chromium.steps.GPUGTestTest( |
| 504 name, | 490 name, |
| 505 xvfb=False, | 491 xvfb=False, |
| 506 args=args, | 492 args=args, |
| 507 target_name=target_name, | 493 target_name=target_name, |
| 508 use_isolate=True, | 494 use_isolate=True, |
| 509 generate_json_file=True, | 495 generate_json_file=True, |
| 510 results_directory=results_directory, | 496 results_directory=results_directory, |
| 511 revision=chrome_revision, | 497 revision=chrome_revision, |
| 512 webkit_revision=webkit_revision, | 498 webkit_revision=webkit_revision, |
| 513 master_class_name=self._master_class_name_for_testing, | 499 master_class_name=self._master_class_name_for_testing, |
| 514 enable_swarming=enable_swarming, | 500 enable_swarming=enable_swarming, |
| 515 swarming_dimensions=swarming_dimensions, | 501 swarming_dimensions=swarming_dimensions, |
| 516 swarming_extra_suffix=self._get_gpu_suffix(swarming_dimensions)) | 502 swarming_extra_suffix=self._get_gpu_suffix(swarming_dimensions)) |
| 517 | 503 |
| 518 def _create_telemetry_test(self, name, chrome_revision, webkit_revision, | 504 def _create_telemetry_test(self, name, chrome_revision, webkit_revision, |
| 519 enable_swarming, swarming_dimensions, | 505 enable_swarming, swarming_dimensions, |
| 520 args=None, target_name=None, | 506 args=None, target_name=None, |
| 521 extra_browser_args=None): | 507 extra_browser_args=None): |
| 522 if not self._should_run_test('telemetry_gpu_test'): | |
| 523 return | |
| 524 | |
| 525 test_args = ['-v', '--use-devtools-active-port'] | 508 test_args = ['-v', '--use-devtools-active-port'] |
| 526 if args: | 509 if args: |
| 527 test_args.extend(args) | 510 test_args.extend(args) |
| 528 # --expose-gc allows the WebGL conformance tests to more reliably | 511 # --expose-gc allows the WebGL conformance tests to more reliably |
| 529 # reproduce GC-related bugs in the V8 bindings. | 512 # reproduce GC-related bugs in the V8 bindings. |
| 530 extra_browser_args_string = ( | 513 extra_browser_args_string = ( |
| 531 '--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc') | 514 '--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc') |
| 532 if self.m.platform.is_mac and not self.m.tryserver.is_tryserver: | 515 if self.m.platform.is_mac and not self.m.tryserver.is_tryserver: |
| 533 #TODO(zmo): remove the vmodule flag after crbug.com/424024 is fixed. | 516 #TODO(zmo): remove the vmodule flag after crbug.com/424024 is fixed. |
| 534 vmodules = [ | 517 vmodules = [ |
| 535 'startup_browser_creator=2' | 518 'startup_browser_creator=2' |
| 536 ] | 519 ] |
| 537 extra_browser_args_string += ' --vmodule=' + ','.join(vmodules) | 520 extra_browser_args_string += ' --vmodule=' + ','.join(vmodules) |
| 538 if extra_browser_args: | 521 if extra_browser_args: |
| 539 extra_browser_args_string += ' ' + ' '.join(extra_browser_args) | 522 extra_browser_args_string += ' ' + ' '.join(extra_browser_args) |
| 540 test_args.append(extra_browser_args_string) | 523 test_args.append(extra_browser_args_string) |
| 541 | 524 |
| 542 return self.m.chromium.steps.TelemetryGPUTest( | 525 return self.m.chromium.steps.TelemetryGPUTest( |
| 543 name, chrome_revision, webkit_revision, args=test_args, | 526 name, chrome_revision, webkit_revision, args=test_args, |
| 544 target_name=target_name, enable_swarming=enable_swarming, | 527 target_name=target_name, enable_swarming=enable_swarming, |
| 545 swarming_dimensions=swarming_dimensions, | 528 swarming_dimensions=swarming_dimensions, |
| 546 master_class_name=self._master_class_name_for_testing, | 529 master_class_name=self._master_class_name_for_testing, |
| 547 swarming_extra_suffix=self._get_gpu_suffix(swarming_dimensions)) | 530 swarming_extra_suffix=self._get_gpu_suffix(swarming_dimensions)) |
| OLD | NEW |