Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Contains test runners for launching tests on simulators and devices.""" | 6 """Contains test runners for launching tests on simulators and devices.""" |
| 7 | 7 |
| 8 # pylint: disable=relative-import | 8 # pylint: disable=relative-import |
| 9 import environment_setup | 9 import environment_setup |
| 10 | 10 |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 480 '-c', 'Print:CFBundleIdentifier', | 480 '-c', 'Print:CFBundleIdentifier', |
| 481 os.path.join(self.app_path, 'Info.plist'), | 481 os.path.join(self.app_path, 'Info.plist'), |
| 482 ).stdout[0] | 482 ).stdout[0] |
| 483 | 483 |
| 484 self.iossim_path = iossim_path | 484 self.iossim_path = iossim_path |
| 485 self.platform = platform | 485 self.platform = platform |
| 486 self.version = version | 486 self.version = version |
| 487 self.timeout = '120' | 487 self.timeout = '120' |
| 488 self.homedir = '' | 488 self.homedir = '' |
| 489 self.start_time = None | 489 self.start_time = None |
| 490 self.xcode_version = xcode_version | |
|
smut
2016/07/12 23:58:59
Can probably set this in the base class.
justincohen
2016/07/14 19:59:50
Done.
| |
| 490 | 491 |
| 491 def SetStartTime(self): | 492 def SetStartTime(self): |
| 492 """Sets the start time, for finding crash reports during this run.""" | 493 """Sets the start time, for finding crash reports during this run.""" |
| 493 # Crash reports have a timestamp in their filename, formatted as | 494 # Crash reports have a timestamp in their filename, formatted as |
| 494 # YYYY-MM-DD-HHMMSS. | 495 # YYYY-MM-DD-HHMMSS. |
| 495 self.start_time = time.strftime('%Y-%m-%d-%H%M%S', time.localtime()) | 496 self.start_time = time.strftime('%Y-%m-%d-%H%M%S', time.localtime()) |
| 496 | 497 |
| 497 def CreateNewHomeDirectory(self): | 498 def CreateNewHomeDirectory(self): |
| 498 """Creates a new home directory for the simulator.""" | 499 """Creates a new home directory for the simulator.""" |
| 499 self.homedir = tempfile.mkdtemp() | 500 if self.xcode_version == '8.0': |
| 501 cmd = [ | |
| 502 self.iossim_path, | |
| 503 '-d', self.platform, | |
| 504 '-s', self.version, | |
| 505 '-p' | |
| 506 ] | |
|
smut
2016/07/12 23:58:59
Can we use -w to wipe the simulator here, so that
justincohen
2016/07/14 19:59:50
See below.
smut
2016/07/14 21:25:54
I think it should wipe here as well. This call tha
justincohen
2016/07/14 22:24:32
Wipe is very fast, this SGTM, done.
| |
| 507 self.homedir = subprocess.check_output(cmd) | |
| 508 else: | |
| 509 self.homedir = tempfile.mkdtemp() | |
| 510 | |
| 500 | 511 |
| 501 def RemoveHomeDirectory(self): | 512 def RemoveHomeDirectory(self): |
| 502 """Recursively removes the home directory being used by the simulator.""" | 513 """Recursively removes the home directory being used by the simulator.""" |
| 503 if os.path.exists(self.homedir): | 514 if self.xcode_version == '8.0': |
| 504 shutil.rmtree(self.homedir, ignore_errors=True) | |
| 505 self.homedir = '' | 515 self.homedir = '' |
|
smut
2016/07/12 23:58:59
I think it should shutil.rmtree even on Xcode 8 so
justincohen
2016/07/14 19:59:50
Xcode seems to freak out. How about we just call
smut
2016/07/14 21:25:54
Ok seems fine. -w should wipe the installed app an
justincohen
2016/07/14 22:24:32
yes/
| |
| 516 else: | |
| 517 if os.path.exists(self.homedir): | |
| 518 shutil.rmtree(self.homedir, ignore_errors=True) | |
| 519 self.homedir = '' | |
| 506 | 520 |
| 507 def KillSimulators(self): | 521 def KillSimulators(self): |
| 508 """Forcibly kills any running iOS simulator instances.""" | 522 """Forcibly kills any running iOS simulator instances.""" |
| 509 kill_cmd = [ | 523 kill_cmd = [ |
| 510 'pkill', | 524 'pkill', |
| 511 '-9', | 525 '-9', |
| 512 '-x', | 526 '-x', |
| 513 # The iOS simulator has a different name depending on the Xcode version. | 527 # The iOS simulator has a different name depending on the Xcode version. |
| 514 'iPhone Simulator', # Xcode 5 | 528 'iPhone Simulator', # Xcode 5 |
| 515 'iOS Simulator', # Xcode 6 | 529 'iOS Simulator', # Xcode 6 |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 675 blacklist: Whether to blacklist the elements of test_filter or not. Only | 689 blacklist: Whether to blacklist the elements of test_filter or not. Only |
| 676 works when test_filter is not None. | 690 works when test_filter is not None. |
| 677 | 691 |
| 678 Returns: | 692 Returns: |
| 679 A list whose elements are the args representing the command. | 693 A list whose elements are the args representing the command. |
| 680 """ | 694 """ |
| 681 cmd = [ | 695 cmd = [ |
| 682 self.iossim_path, | 696 self.iossim_path, |
| 683 '-d', self.platform, | 697 '-d', self.platform, |
| 684 '-s', self.version, | 698 '-s', self.version, |
| 685 '-t', self.timeout, | |
| 686 '-u', self.homedir, | |
| 687 ] | 699 ] |
| 700 | |
| 688 args = [] | 701 args = [] |
| 689 | 702 |
| 703 if self.xcode_version == '8.0': | |
| 704 cmd.extend(['-w']) | |
|
smut
2016/07/12 23:58:59
I don't think it should include -w here. GetLaunch
justincohen
2016/07/14 19:59:50
Removed.
| |
| 705 else: | |
| 706 cmd.extend([ | |
| 707 '-t', self.timeout, | |
| 708 '-u', self.homedir | |
| 709 ]) | |
| 710 | |
| 690 if test_filter is not None: | 711 if test_filter is not None: |
| 691 kif_filter = self.GetKIFTestFilter(test_filter, blacklist) | 712 kif_filter = self.GetKIFTestFilter(test_filter, blacklist) |
| 692 gtest_filter = self.GetGTestFilter(test_filter, blacklist) | 713 gtest_filter = self.GetGTestFilter(test_filter, blacklist) |
| 693 | 714 |
| 694 cmd.extend([ | 715 cmd.extend([ |
| 695 '-e', 'GKIF_SCENARIO_FILTER=%s' % kif_filter, | 716 '-e', 'GKIF_SCENARIO_FILTER=%s' % kif_filter, |
| 696 ]) | 717 ]) |
| 697 args.append('--gtest_filter=%s' % gtest_filter) | 718 |
| 719 if self.xcode_version == '8.0': | |
| 720 cmd.extend([ | |
| 721 '-c', '--gtest_filter=%s' % gtest_filter, | |
| 722 ]) | |
| 723 else: | |
| 724 args.append('--gtest_filter=%s' % gtest_filter) | |
| 698 | 725 |
| 699 cmd.append(self.app_path) | 726 cmd.append(self.app_path) |
| 700 cmd.extend(self.test_args) | 727 cmd.extend(self.test_args) |
| 701 cmd.extend(args) | 728 cmd.extend(args) |
| 702 return cmd | 729 return cmd |
| 703 | 730 |
| 704 @TestRunner.RequireTearDown | 731 @TestRunner.RequireTearDown |
| 705 def Launch(self, *args, **kwargs): | 732 def Launch(self, *args, **kwargs): |
| 706 """Launches the test.""" | 733 """Launches the test.""" |
| 707 self.SetUp() | 734 self.SetUp() |
| (...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1389 ) | 1416 ) |
| 1390 | 1417 |
| 1391 # Uninstall and re-install the app. | 1418 # Uninstall and re-install the app. |
| 1392 self.UninstallApp() | 1419 self.UninstallApp() |
| 1393 self.InstallApp() | 1420 self.InstallApp() |
| 1394 | 1421 |
| 1395 result = self._Run( | 1422 result = self._Run( |
| 1396 self.GetLaunchCommand(), self.GetLaunchEnvironment(), *args, **kwargs) | 1423 self.GetLaunchCommand(), self.GetLaunchEnvironment(), *args, **kwargs) |
| 1397 | 1424 |
| 1398 return self.RunAllTests(result, *args, **kwargs) | 1425 return self.RunAllTests(result, *args, **kwargs) |
| OLD | NEW |