blob: 48ebf61fc254114962d38160cd5aa685a74bc04b [file] [log] [blame]
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Stores Error classes to be accessed in multiple files within package."""
class Error(Exception):
"""Base class for errors."""
pass
class IOSRuntimeHandlingError(Error):
"""Base class for iOS runtime package related errors."""
pass
class XcodeEnumerateTestsError(Error):
"""Xcodebuild failed to enumerate test methods present in the EG test app"""
def __init__(self, error=''):
super(
XcodeEnumerateTestsError,
self).__init__(f'Xcodebuild failed to enumerate test methods.\n{error}')
class XcodeInstallError(Error):
"""Base class for xcode install related errors."""
pass
class XcodeInstallFailedError(Error):
"""The requested version of Xcode was not successfully installed."""
def __init__(self, xcode_version):
super(XcodeInstallFailedError, self).__init__(
'Xcode version %s failed to install. File a ticket to go/ios-ops-ticket'
% xcode_version)
class XcodeUnsupportedFeatureError(Error):
"""Base class for unsupported features related with Xcode."""
pass
class MacToolchainNotFoundError(XcodeInstallError):
"""The mac_toolchain is not specified."""
def __init__(self, mac_toolchain):
super(MacToolchainNotFoundError, self).__init__(
'mac_toolchain is not specified or not found: "%s"' % mac_toolchain)
class XcodePathNotFoundError(XcodeInstallError):
"""The path to Xcode.app is not specified."""
def __init__(self, xcode_path):
super(XcodePathNotFoundError, self).__init__(
'xcode_path is not specified or does not exist: "%s"' % xcode_path)
class LocalRunXcodeError(XcodeInstallError):
"""The local environment did not match the test runner arguments for the
Xcode version"""
def __init__(self, xcode_build_version, local_version):
error_message = (
f'Requested xcode build version: {xcode_build_version} does not match '
f'the locally installed version: {local_version}. Either download '
f'{xcode_build_version} from go/xcode and run sudo xcode-select -s '
f'path/to/xcode or change the value of the --xcode-build-version '
f'argument passed to the test runner to: {local_version}')
super(LocalRunXcodeError, self).__init__(error_message)
class LocalRunRuntimeError(XcodeInstallError):
"""The local environment did not match the test runner arguments for the
iOS version"""
def __init__(self, ios_version, runtime_build):
error_message = (
f'Requested ios version: {ios_version} ({runtime_build}) any locally '
f'available runtime versions. To view installed runtime versions run:\n'
f'xcrun simctl runtime list')
super(LocalRunRuntimeError, self).__init__(error_message)
class RuntimeBuildNotFoundError(Error):
"""The desired runtime build is not found on cipd."""
def __init__(self, ios_version):
super(RuntimeBuildNotFoundError, self).__init__(
'the desired runtime build for iOS %s is not found on cipd' %
ios_version)
class SimRuntimeDeleteTimeoutError(Error):
"""When deleting a simulator runtime exceeds timeout."""
def __init__(self, runtime_id):
super(SimRuntimeDeleteTimeoutError, self).__init__(
'Unable to delete runtime %s after timeout' % runtime_id)