| 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 recipe_engine.types import freeze | 5 from recipe_engine.types import freeze |
| 6 from recipe_engine import recipe_api | 6 from recipe_engine 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 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 if self.is_fyi_waterfall: | 512 if self.is_fyi_waterfall: |
| 513 tests.append(self._create_gtest( | 513 tests.append(self._create_gtest( |
| 514 'gpu_unittests', chrome_revision, webkit_revision, enable_swarming, | 514 'gpu_unittests', chrome_revision, webkit_revision, enable_swarming, |
| 515 swarming_dimensions)) | 515 swarming_dimensions)) |
| 516 | 516 |
| 517 # Remove empty entries as some tests may be skipped. | 517 # Remove empty entries as some tests may be skipped. |
| 518 tests = [test for test in tests if test] | 518 tests = [test for test in tests if test] |
| 519 | 519 |
| 520 return tests | 520 return tests |
| 521 | 521 |
| 522 def _get_gpu_suffix(self, dimensions): | |
| 523 if dimensions is None: | |
| 524 return None | |
| 525 | |
| 526 gpu_vendor_id = dimensions.get('gpu', '').split(':')[0].lower() | |
| 527 if gpu_vendor_id == '8086': | |
| 528 gpu_vendor = 'Intel' | |
| 529 # TODO(sergiyb): Mocking various vendors IDs is currently difficult as they | |
| 530 # are hard coded in the recipe. When we'll move the configs to an external | |
| 531 # json file read in a dedicated step whose data can be overriden, we should | |
| 532 # create tests for all GPUs and remove no-cover pragmas below. | |
| 533 elif gpu_vendor_id == '10de': # pragma: no cover | |
| 534 gpu_vendor = 'NVIDIA' | |
| 535 elif gpu_vendor_id == '1002': # pragma: no cover | |
| 536 gpu_vendor = 'ATI' | |
| 537 else: | |
| 538 gpu_vendor = '(%s)' % gpu_vendor_id # pragma: no cover | |
| 539 | |
| 540 os = dimensions.get('os', '') | |
| 541 if os.startswith('Mac'): | |
| 542 if dimensions.get('hidpi', '') == '1': | |
| 543 os_name = 'Mac Retina' | |
| 544 else: | |
| 545 os_name = 'Mac' | |
| 546 elif os.startswith('Windows'): # pragma: no cover | |
| 547 os_name = 'Windows' | |
| 548 else: # pragma: no cover | |
| 549 os_name = 'Linux' | |
| 550 | |
| 551 return 'on %s GPU on %s' % (gpu_vendor, os_name) | |
| 552 | |
| 553 def _create_gtest(self, name, chrome_revision, webkit_revision, | 522 def _create_gtest(self, name, chrome_revision, webkit_revision, |
| 554 enable_swarming, swarming_dimensions, | 523 enable_swarming, swarming_dimensions, |
| 555 args=[], target_name=None): | 524 args=[], target_name=None): |
| 556 # The step test must end in 'test' or 'tests' in order for the results to | 525 # The step test must end in 'test' or 'tests' in order for the results to |
| 557 # automatically show up on the flakiness dashboard. | 526 # automatically show up on the flakiness dashboard. |
| 558 # | 527 # |
| 559 # Currently all tests on the GPU bots follow this rule, so we can't add | 528 # Currently all tests on the GPU bots follow this rule, so we can't add |
| 560 # code like in chromium/api.py, run_telemetry_test. | 529 # code like in chromium/api.py, run_telemetry_test. |
| 561 | 530 |
| 562 target_name = target_name or name | 531 target_name = target_name or name |
| 563 assert target_name.endswith('test') or target_name.endswith('tests') | 532 assert target_name.endswith('test') or target_name.endswith('tests') |
| 564 | 533 |
| 565 results_directory = self.m.path['slave_build'].join('gtest-results', name) | 534 results_directory = self.m.path['slave_build'].join('gtest-results', name) |
| 566 return self.m.chromium_tests.steps.GPUGTestTest( | 535 return self.m.chromium_tests.steps.GPUGTestTest( |
| 567 name, | 536 name, |
| 568 xvfb=False, | 537 xvfb=False, |
| 569 args=args, | 538 args=args, |
| 570 target_name=target_name, | 539 target_name=target_name, |
| 571 use_isolate=True, | 540 use_isolate=True, |
| 572 generate_json_file=True, | 541 generate_json_file=True, |
| 573 results_directory=results_directory, | 542 results_directory=results_directory, |
| 574 revision=chrome_revision, | 543 revision=chrome_revision, |
| 575 webkit_revision=webkit_revision, | 544 webkit_revision=webkit_revision, |
| 576 master_class_name=self._master_class_name_for_testing, | 545 master_class_name=self._master_class_name_for_testing, |
| 577 enable_swarming=enable_swarming, | 546 enable_swarming=enable_swarming, |
| 578 swarming_dimensions=swarming_dimensions, | 547 swarming_dimensions=swarming_dimensions) |
| 579 swarming_extra_suffix=self._get_gpu_suffix(swarming_dimensions)) | |
| 580 | 548 |
| 581 def _create_telemetry_test(self, name, chrome_revision, webkit_revision, | 549 def _create_telemetry_test(self, name, chrome_revision, webkit_revision, |
| 582 enable_swarming, swarming_dimensions, | 550 enable_swarming, swarming_dimensions, |
| 583 args=None, target_name=None, | 551 args=None, target_name=None, |
| 584 extra_browser_args=None): | 552 extra_browser_args=None): |
| 585 test_args = ['-v'] | 553 test_args = ['-v'] |
| 586 if args: | 554 if args: |
| 587 test_args.extend(args) | 555 test_args.extend(args) |
| 588 # --expose-gc allows the WebGL conformance tests to more reliably | 556 # --expose-gc allows the WebGL conformance tests to more reliably |
| 589 # reproduce GC-related bugs in the V8 bindings. | 557 # reproduce GC-related bugs in the V8 bindings. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 610 benchmark_name = target_name or name | 578 benchmark_name = target_name or name |
| 611 prefix_args = [ | 579 prefix_args = [ |
| 612 benchmark_name, '--show-stdout', | 580 benchmark_name, '--show-stdout', |
| 613 '--browser=%s' % self.m.chromium.c.build_config_fs.lower() ] | 581 '--browser=%s' % self.m.chromium.c.build_config_fs.lower() ] |
| 614 if enable_swarming: | 582 if enable_swarming: |
| 615 return self.m.chromium_tests.steps.SwarmingIsolatedScriptTest( | 583 return self.m.chromium_tests.steps.SwarmingIsolatedScriptTest( |
| 616 name, args=prefix_args + test_args, | 584 name, args=prefix_args + test_args, |
| 617 target_name='telemetry_gpu_test', | 585 target_name='telemetry_gpu_test', |
| 618 dimensions=swarming_dimensions, | 586 dimensions=swarming_dimensions, |
| 619 tags={'gpu_test:1'}, | 587 tags={'gpu_test:1'}, |
| 620 extra_suffix=self._get_gpu_suffix(swarming_dimensions), | |
| 621 override_compile_targets=['telemetry_gpu_test_run']) | 588 override_compile_targets=['telemetry_gpu_test_run']) |
| 622 else: | 589 else: |
| 623 return self.m.chromium_tests.steps.LocalIsolatedScriptTest( | 590 return self.m.chromium_tests.steps.LocalIsolatedScriptTest( |
| 624 step_name, args=prefix_args + test_args, | 591 step_name, args=prefix_args + test_args, |
| 625 target_name='telemetry_gpu_test', | 592 target_name='telemetry_gpu_test', |
| 626 override_compile_targets=['telemetry_gpu_test_run']) | 593 override_compile_targets=['telemetry_gpu_test_run']) |
| OLD | NEW |