Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: scripts/slave/recipe_modules/gpu/api.py

Issue 1527123002: Support swarming dimensions in src-side JSON buildbot files. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Addressed review feedback from maruel. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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'])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698