Unverified Commit c4bfa4c7 authored by Jenn Magder's avatar Jenn Magder Committed by GitHub

Inject iproxy into context (#61762)

parent 78a97544
...@@ -19,6 +19,7 @@ import 'base/os.dart'; ...@@ -19,6 +19,7 @@ import 'base/os.dart';
import 'base/process.dart'; import 'base/process.dart';
import 'base/time.dart'; import 'base/time.dart';
import 'base/user_messages.dart'; import 'base/user_messages.dart';
import 'build_info.dart';
import 'build_system/build_system.dart'; import 'build_system/build_system.dart';
import 'cache.dart'; import 'cache.dart';
import 'compile.dart'; import 'compile.dart';
...@@ -33,6 +34,7 @@ import 'fuchsia/fuchsia_sdk.dart' show FuchsiaSdk, FuchsiaArtifacts; ...@@ -33,6 +34,7 @@ import 'fuchsia/fuchsia_sdk.dart' show FuchsiaSdk, FuchsiaArtifacts;
import 'fuchsia/fuchsia_workflow.dart' show FuchsiaWorkflow, fuchsiaWorkflow; import 'fuchsia/fuchsia_workflow.dart' show FuchsiaWorkflow, fuchsiaWorkflow;
import 'globals.dart' as globals; import 'globals.dart' as globals;
import 'ios/ios_workflow.dart'; import 'ios/ios_workflow.dart';
import 'ios/iproxy.dart';
import 'ios/simulators.dart'; import 'ios/simulators.dart';
import 'ios/xcodeproj.dart'; import 'ios/xcodeproj.dart';
import 'macos/cocoapods.dart'; import 'macos/cocoapods.dart';
...@@ -254,6 +256,15 @@ Future<T> runInContext<T>( ...@@ -254,6 +256,15 @@ Future<T> runInContext<T>(
cache: globals.cache, cache: globals.cache,
platform: globals.platform, platform: globals.platform,
xcode: globals.xcode, xcode: globals.xcode,
iproxy: IProxy(
iproxyPath: globals.artifacts.getArtifactPath(
Artifact.iproxy,
platform: TargetPlatform.ios,
),
logger: globals.logger,
processManager: globals.processManager,
dyLdLibEntry: globals.cache.dyLdLibEntry,
),
), ),
XcodeProjectInterpreter: () => XcodeProjectInterpreter( XcodeProjectInterpreter: () => XcodeProjectInterpreter(
logger: globals.logger, logger: globals.logger,
......
...@@ -10,13 +10,11 @@ import 'package:process/process.dart'; ...@@ -10,13 +10,11 @@ import 'package:process/process.dart';
import 'package:vm_service/vm_service.dart' as vm_service; import 'package:vm_service/vm_service.dart' as vm_service;
import '../application_package.dart'; import '../application_package.dart';
import '../artifacts.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/io.dart'; import '../base/io.dart';
import '../base/logger.dart'; import '../base/logger.dart';
import '../base/os.dart'; import '../base/os.dart';
import '../base/platform.dart'; import '../base/platform.dart';
import '../base/process.dart';
import '../base/utils.dart'; import '../base/utils.dart';
import '../build_info.dart'; import '../build_info.dart';
import '../convert.dart'; import '../convert.dart';
...@@ -29,6 +27,7 @@ import '../protocol_discovery.dart'; ...@@ -29,6 +27,7 @@ import '../protocol_discovery.dart';
import 'fallback_discovery.dart'; import 'fallback_discovery.dart';
import 'ios_deploy.dart'; import 'ios_deploy.dart';
import 'ios_workflow.dart'; import 'ios_workflow.dart';
import 'iproxy.dart';
import 'mac.dart'; import 'mac.dart';
class IOSDevices extends PollingDeviceDiscovery { class IOSDevices extends PollingDeviceDiscovery {
...@@ -149,15 +148,16 @@ class IOSDevice extends Device { ...@@ -149,15 +148,16 @@ class IOSDevice extends Device {
@required this.interfaceType, @required this.interfaceType,
@required String sdkVersion, @required String sdkVersion,
@required Platform platform, @required Platform platform,
@required Artifacts artifacts,
@required IOSDeploy iosDeploy, @required IOSDeploy iosDeploy,
@required IMobileDevice iMobileDevice, @required IMobileDevice iMobileDevice,
@required IProxy iProxy,
@required Logger logger, @required Logger logger,
@required VmServiceConnector vmServiceConnectUri, @required VmServiceConnector vmServiceConnectUri,
}) })
: _sdkVersion = sdkVersion, : _sdkVersion = sdkVersion,
_iosDeploy = iosDeploy, _iosDeploy = iosDeploy,
_iMobileDevice = iMobileDevice, _iMobileDevice = iMobileDevice,
_iproxy = iProxy,
_fileSystem = fileSystem, _fileSystem = fileSystem,
_logger = logger, _logger = logger,
_platform = platform, _platform = platform,
...@@ -172,20 +172,15 @@ class IOSDevice extends Device { ...@@ -172,20 +172,15 @@ class IOSDevice extends Device {
assert(false, 'Control of iOS devices or simulators only supported on Mac OS.'); assert(false, 'Control of iOS devices or simulators only supported on Mac OS.');
return; return;
} }
_iproxyPath = artifacts.getArtifactPath(
Artifact.iproxy,
platform: TargetPlatform.ios,
);
} }
String _iproxyPath;
final String _sdkVersion; final String _sdkVersion;
final IOSDeploy _iosDeploy; final IOSDeploy _iosDeploy;
final FileSystem _fileSystem; final FileSystem _fileSystem;
final Logger _logger; final Logger _logger;
final Platform _platform; final Platform _platform;
final IMobileDevice _iMobileDevice; final IMobileDevice _iMobileDevice;
final IProxy _iproxy;
final VmServiceConnector _vmServiceConnectUri; final VmServiceConnector _vmServiceConnectUri;
/// May be 0 if version cannot be parsed. /// May be 0 if version cannot be parsed.
...@@ -492,11 +487,9 @@ class IOSDevice extends Device { ...@@ -492,11 +487,9 @@ class IOSDevice extends Device {
@override @override
DevicePortForwarder get portForwarder => _portForwarder ??= IOSDevicePortForwarder( DevicePortForwarder get portForwarder => _portForwarder ??= IOSDevicePortForwarder(
processManager: globals.processManager,
logger: _logger, logger: _logger,
dyLdLibEntry: globals.cache.dyLdLibEntry, iproxy: _iproxy,
id: id, id: id,
iproxyPath: _iproxyPath,
operatingSystemUtils: globals.os, operatingSystemUtils: globals.os,
); );
...@@ -763,17 +756,13 @@ class IOSDevicePortForwarder extends DevicePortForwarder { ...@@ -763,17 +756,13 @@ class IOSDevicePortForwarder extends DevicePortForwarder {
/// Create a new [IOSDevicePortForwarder]. /// Create a new [IOSDevicePortForwarder].
IOSDevicePortForwarder({ IOSDevicePortForwarder({
@required ProcessManager processManager,
@required Logger logger, @required Logger logger,
@required MapEntry<String, String> dyLdLibEntry,
@required String id, @required String id,
@required String iproxyPath, @required IProxy iproxy,
@required OperatingSystemUtils operatingSystemUtils, @required OperatingSystemUtils operatingSystemUtils,
}) : _logger = logger, }) : _logger = logger,
_dyLdLibEntry = dyLdLibEntry,
_id = id, _id = id,
_iproxyPath = iproxyPath, _iproxy = iproxy,
_processUtils = ProcessUtils(processManager: processManager, logger: logger),
_operatingSystemUtils = operatingSystemUtils; _operatingSystemUtils = operatingSystemUtils;
/// Create a [IOSDevicePortForwarder] for testing. /// Create a [IOSDevicePortForwarder] for testing.
...@@ -781,7 +770,7 @@ class IOSDevicePortForwarder extends DevicePortForwarder { ...@@ -781,7 +770,7 @@ class IOSDevicePortForwarder extends DevicePortForwarder {
/// This specifies the path to iproxy as 'iproxy` and the dyLdLibEntry as /// This specifies the path to iproxy as 'iproxy` and the dyLdLibEntry as
/// 'DYLD_LIBRARY_PATH: /path/to/libs'. /// 'DYLD_LIBRARY_PATH: /path/to/libs'.
/// ///
/// The device id may be provided, but otherwise defaultts to '1234'. /// The device id may be provided, but otherwise defaults to '1234'.
factory IOSDevicePortForwarder.test({ factory IOSDevicePortForwarder.test({
@required ProcessManager processManager, @required ProcessManager processManager,
@required Logger logger, @required Logger logger,
...@@ -789,22 +778,19 @@ class IOSDevicePortForwarder extends DevicePortForwarder { ...@@ -789,22 +778,19 @@ class IOSDevicePortForwarder extends DevicePortForwarder {
OperatingSystemUtils operatingSystemUtils, OperatingSystemUtils operatingSystemUtils,
}) { }) {
return IOSDevicePortForwarder( return IOSDevicePortForwarder(
processManager: processManager,
logger: logger, logger: logger,
iproxyPath: 'iproxy', iproxy: IProxy.test(
id: id ?? '1234', logger: logger,
dyLdLibEntry: const MapEntry<String, String>( processManager: processManager,
'DYLD_LIBRARY_PATH', '/path/to/libs',
), ),
id: id ?? '1234',
operatingSystemUtils: operatingSystemUtils, operatingSystemUtils: operatingSystemUtils,
); );
} }
final ProcessUtils _processUtils;
final Logger _logger; final Logger _logger;
final MapEntry<String, String> _dyLdLibEntry;
final String _id; final String _id;
final String _iproxyPath; final IProxy _iproxy;
final OperatingSystemUtils _operatingSystemUtils; final OperatingSystemUtils _operatingSystemUtils;
@override @override
...@@ -831,18 +817,7 @@ class IOSDevicePortForwarder extends DevicePortForwarder { ...@@ -831,18 +817,7 @@ class IOSDevicePortForwarder extends DevicePortForwarder {
bool connected = false; bool connected = false;
while (!connected) { while (!connected) {
_logger.printTrace('Attempting to forward device port $devicePort to host port $hostPort'); _logger.printTrace('Attempting to forward device port $devicePort to host port $hostPort');
// Usage: iproxy LOCAL_TCP_PORT DEVICE_TCP_PORT UDID process = await _iproxy.forward(devicePort, hostPort, _id);
process = await _processUtils.start(
<String>[
_iproxyPath,
'$hostPort:$devicePort',
'--udid',
_id,
],
environment: Map<String, String>.fromEntries(
<MapEntry<String, String>>[_dyLdLibEntry],
),
);
// TODO(ianh): This is a flakey race condition, https://github.com/libimobiledevice/libimobiledevice/issues/674 // TODO(ianh): This is a flakey race condition, https://github.com/libimobiledevice/libimobiledevice/issues/674
connected = !await process.stdout.isEmpty.timeout(_kiProxyPortForwardTimeout, onTimeout: () => false); connected = !await process.stdout.isEmpty.timeout(_kiProxyPortForwardTimeout, onTimeout: () => false);
if (!connected) { if (!connected) {
......
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:async';
import 'package:meta/meta.dart';
import 'package:process/process.dart';
import '../base/io.dart';
import '../base/logger.dart';
import '../base/process.dart';
/// Wraps iproxy command line tool port forwarding.
///
/// See https://github.com/libimobiledevice/libusbmuxd.
class IProxy {
IProxy({
@required String iproxyPath,
@required Logger logger,
@required ProcessManager processManager,
@required MapEntry<String, String> dyLdLibEntry,
}) : _dyLdLibEntry = dyLdLibEntry,
_processUtils = ProcessUtils(processManager: processManager, logger: logger),
_iproxyPath = iproxyPath;
/// Create a [IProxy] for testing.
///
/// This specifies the path to iproxy as 'iproxy` and the dyLdLibEntry as
/// 'DYLD_LIBRARY_PATH: /path/to/libs'.
factory IProxy.test({
@required Logger logger,
@required ProcessManager processManager,
}) {
return IProxy(
iproxyPath: 'iproxy',
logger: logger,
processManager: processManager,
dyLdLibEntry: const MapEntry<String, String>(
'DYLD_LIBRARY_PATH', '/path/to/libs',
),
);
}
final String _iproxyPath;
final ProcessUtils _processUtils;
final MapEntry<String, String> _dyLdLibEntry;
Future<Process> forward(int devicePort, int hostPort, String deviceId) {
// Usage: iproxy LOCAL_PORT:DEVICE_PORT --udid UDID
return _processUtils.start(
<String>[
_iproxyPath,
'$hostPort:$devicePort',
'--udid',
deviceId,
],
environment: Map<String, String>.fromEntries(
<MapEntry<String, String>>[_dyLdLibEntry],
),
);
}
}
...@@ -21,6 +21,7 @@ import '../convert.dart'; ...@@ -21,6 +21,7 @@ import '../convert.dart';
import '../globals.dart' as globals; import '../globals.dart' as globals;
import '../ios/devices.dart'; import '../ios/devices.dart';
import '../ios/ios_deploy.dart'; import '../ios/ios_deploy.dart';
import '../ios/iproxy.dart';
import '../ios/mac.dart'; import '../ios/mac.dart';
import '../ios/xcodeproj.dart'; import '../ios/xcodeproj.dart';
import '../reporting/reporting.dart'; import '../reporting/reporting.dart';
...@@ -213,6 +214,7 @@ class XCDevice { ...@@ -213,6 +214,7 @@ class XCDevice {
@required Logger logger, @required Logger logger,
@required Xcode xcode, @required Xcode xcode,
@required Platform platform, @required Platform platform,
@required IProxy iproxy,
}) : _processUtils = ProcessUtils(logger: logger, processManager: processManager), }) : _processUtils = ProcessUtils(logger: logger, processManager: processManager),
_logger = logger, _logger = logger,
_iMobileDevice = IMobileDevice( _iMobileDevice = IMobileDevice(
...@@ -228,6 +230,7 @@ class XCDevice { ...@@ -228,6 +230,7 @@ class XCDevice {
platform: platform, platform: platform,
processManager: processManager, processManager: processManager,
), ),
_iProxy = iproxy,
_xcode = xcode { _xcode = xcode {
_setupDeviceIdentifierByEventStream(); _setupDeviceIdentifierByEventStream();
...@@ -242,6 +245,7 @@ class XCDevice { ...@@ -242,6 +245,7 @@ class XCDevice {
final IMobileDevice _iMobileDevice; final IMobileDevice _iMobileDevice;
final IOSDeploy _iosDeploy; final IOSDeploy _iosDeploy;
final Xcode _xcode; final Xcode _xcode;
final IProxy _iProxy;
List<dynamic> _cachedListResults; List<dynamic> _cachedListResults;
Process _deviceObservationProcess; Process _deviceObservationProcess;
...@@ -500,9 +504,9 @@ class XCDevice { ...@@ -500,9 +504,9 @@ class XCDevice {
cpuArchitecture: _cpuArchitecture(deviceProperties), cpuArchitecture: _cpuArchitecture(deviceProperties),
interfaceType: interface, interfaceType: interface,
sdkVersion: _sdkVersion(deviceProperties), sdkVersion: _sdkVersion(deviceProperties),
artifacts: globals.artifacts, iProxy: _iProxy,
fileSystem: globals.fs, fileSystem: globals.fs,
logger: globals.logger, logger: _logger,
iosDeploy: _iosDeploy, iosDeploy: _iosDeploy,
iMobileDevice: _iMobileDevice, iMobileDevice: _iMobileDevice,
platform: globals.platform, platform: globals.platform,
......
...@@ -19,6 +19,7 @@ import 'package:flutter_tools/src/device.dart'; ...@@ -19,6 +19,7 @@ import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/ios_deploy.dart'; import 'package:flutter_tools/src/ios/ios_deploy.dart';
import 'package:flutter_tools/src/ios/ios_workflow.dart'; import 'package:flutter_tools/src/ios/ios_workflow.dart';
import 'package:flutter_tools/src/ios/iproxy.dart';
import 'package:flutter_tools/src/ios/mac.dart'; import 'package:flutter_tools/src/ios/mac.dart';
import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/macos/xcode.dart';
import 'package:mockito/mockito.dart'; import 'package:mockito/mockito.dart';
...@@ -68,7 +69,7 @@ void main() { ...@@ -68,7 +69,7 @@ void main() {
testWithoutContext('successfully instantiates on Mac OS', () { testWithoutContext('successfully instantiates on Mac OS', () {
IOSDevice( IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -85,7 +86,7 @@ void main() { ...@@ -85,7 +86,7 @@ void main() {
testWithoutContext('parses major version', () { testWithoutContext('parses major version', () {
expect(IOSDevice( expect(IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -99,7 +100,7 @@ void main() { ...@@ -99,7 +100,7 @@ void main() {
).majorSdkVersion, 1); ).majorSdkVersion, 1);
expect(IOSDevice( expect(IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -113,7 +114,7 @@ void main() { ...@@ -113,7 +114,7 @@ void main() {
).majorSdkVersion, 13); ).majorSdkVersion, 13);
expect(IOSDevice( expect(IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -127,7 +128,7 @@ void main() { ...@@ -127,7 +128,7 @@ void main() {
).majorSdkVersion, 10); ).majorSdkVersion, 10);
expect(IOSDevice( expect(IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -141,7 +142,7 @@ void main() { ...@@ -141,7 +142,7 @@ void main() {
).majorSdkVersion, 0); ).majorSdkVersion, 0);
expect(IOSDevice( expect(IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -158,7 +159,7 @@ void main() { ...@@ -158,7 +159,7 @@ void main() {
testWithoutContext('Supports debug, profile, and release modes', () { testWithoutContext('Supports debug, profile, and release modes', () {
final IOSDevice device = IOSDevice( final IOSDevice device = IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -183,7 +184,7 @@ void main() { ...@@ -183,7 +184,7 @@ void main() {
() { () {
IOSDevice( IOSDevice(
'device-123', 'device-123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: platform, platform: platform,
...@@ -217,22 +218,22 @@ void main() { ...@@ -217,22 +218,22 @@ void main() {
Logger logger; Logger logger;
IOSDeploy iosDeploy; IOSDeploy iosDeploy;
FileSystem mockFileSystem; FileSystem mockFileSystem;
IProxy iproxy;
IOSDevicePortForwarder createPortForwarder( IOSDevicePortForwarder createPortForwarder(
ForwardedPort forwardedPort, ForwardedPort forwardedPort,
IOSDevice device) { IOSDevice device) {
iproxy = IProxy.test(logger: logger, processManager: FakeProcessManager.any());
final IOSDevicePortForwarder portForwarder = IOSDevicePortForwarder( final IOSDevicePortForwarder portForwarder = IOSDevicePortForwarder(
dyLdLibEntry: mockCache.dyLdLibEntry,
id: device.id, id: device.id,
iproxyPath: mockArtifacts.getArtifactPath(Artifact.iproxy, platform: TargetPlatform.ios),
logger: logger, logger: logger,
processManager: FakeProcessManager.any(),
operatingSystemUtils: OperatingSystemUtils( operatingSystemUtils: OperatingSystemUtils(
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: FakePlatform(operatingSystem: 'macos'), platform: FakePlatform(operatingSystem: 'macos'),
processManager: FakeProcessManager.any(), processManager: FakeProcessManager.any(),
), ),
iproxy: iproxy,
); );
portForwarder.addForwardedPorts(<ForwardedPort>[forwardedPort]); portForwarder.addForwardedPorts(<ForwardedPort>[forwardedPort]);
return portForwarder; return portForwarder;
...@@ -274,7 +275,7 @@ void main() { ...@@ -274,7 +275,7 @@ void main() {
testWithoutContext('kills all log readers & port forwarders', () async { testWithoutContext('kills all log readers & port forwarders', () async {
device = IOSDevice( device = IOSDevice(
'123', '123',
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
fileSystem: mockFileSystem, fileSystem: mockFileSystem,
logger: logger, logger: logger,
platform: macPlatform, platform: macPlatform,
...@@ -344,7 +345,7 @@ void main() { ...@@ -344,7 +345,7 @@ void main() {
name: 'Paired iPhone', name: 'Paired iPhone',
sdkVersion: '13.3', sdkVersion: '13.3',
cpuArchitecture: DarwinArch.arm64, cpuArchitecture: DarwinArch.arm64,
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
iosDeploy: iosDeploy, iosDeploy: iosDeploy,
iMobileDevice: iMobileDevice, iMobileDevice: iMobileDevice,
logger: logger, logger: logger,
...@@ -359,7 +360,7 @@ void main() { ...@@ -359,7 +360,7 @@ void main() {
name: 'iPhone 6s', name: 'iPhone 6s',
sdkVersion: '13.3', sdkVersion: '13.3',
cpuArchitecture: DarwinArch.arm64, cpuArchitecture: DarwinArch.arm64,
artifacts: mockArtifacts, iProxy: IProxy.test(logger: logger, processManager: FakeProcessManager.any()),
iosDeploy: iosDeploy, iosDeploy: iosDeploy,
iMobileDevice: iMobileDevice, iMobileDevice: iMobileDevice,
logger: logger, logger: logger,
......
...@@ -13,6 +13,7 @@ import 'package:flutter_tools/src/build_info.dart'; ...@@ -13,6 +13,7 @@ import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/ios_deploy.dart'; import 'package:flutter_tools/src/ios/ios_deploy.dart';
import 'package:flutter_tools/src/ios/iproxy.dart';
import 'package:flutter_tools/src/ios/mac.dart'; import 'package:flutter_tools/src/ios/mac.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:mockito/mockito.dart'; import 'package:mockito/mockito.dart';
...@@ -301,7 +302,7 @@ IOSDevice setUpIOSDevice({ ...@@ -301,7 +302,7 @@ IOSDevice setUpIOSDevice({
artifacts: artifacts, artifacts: artifacts,
cache: cache, cache: cache,
), ),
artifacts: artifacts, iProxy: IProxy.test(logger: logger, processManager: processManager),
interfaceType: interfaceType, interfaceType: interfaceType,
vmServiceConnectUri: (String string, {Log log}) async => MockVmService(), vmServiceConnectUri: (String string, {Log log}) async => MockVmService(),
); );
......
...@@ -9,6 +9,7 @@ import 'package:flutter_tools/src/base/logger.dart'; ...@@ -9,6 +9,7 @@ import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/iproxy.dart';
import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/project.dart';
import 'package:mockito/mockito.dart'; import 'package:mockito/mockito.dart';
import 'package:vm_service/vm_service.dart'; import 'package:vm_service/vm_service.dart';
...@@ -89,7 +90,7 @@ IOSDevice setUpIOSDevice(FileSystem fileSystem) { ...@@ -89,7 +90,7 @@ IOSDevice setUpIOSDevice(FileSystem fileSystem) {
name: 'iPhone 1', name: 'iPhone 1',
sdkVersion: '13.3', sdkVersion: '13.3',
cpuArchitecture: DarwinArch.arm64, cpuArchitecture: DarwinArch.arm64,
artifacts: artifacts, iProxy: IProxy.test(logger: BufferLogger.test(), processManager: FakeProcessManager.any()),
interfaceType: IOSDeviceInterface.usb, interfaceType: IOSDeviceInterface.usb,
vmServiceConnectUri: (String string, {Log log}) async => MockVmService(), vmServiceConnectUri: (String string, {Log log}) async => MockVmService(),
); );
......
...@@ -13,6 +13,7 @@ import 'package:flutter_tools/src/cache.dart'; ...@@ -13,6 +13,7 @@ import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/ios_deploy.dart'; import 'package:flutter_tools/src/ios/ios_deploy.dart';
import 'package:flutter_tools/src/ios/iproxy.dart';
import 'package:flutter_tools/src/ios/mac.dart'; import 'package:flutter_tools/src/ios/mac.dart';
import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/ios/xcodeproj.dart';
import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/macos/xcode.dart';
...@@ -321,7 +322,7 @@ IOSDevice setUpIOSDevice({ ...@@ -321,7 +322,7 @@ IOSDevice setUpIOSDevice({
sdkVersion: sdkVersion, sdkVersion: sdkVersion,
fileSystem: fileSystem ?? MemoryFileSystem.test(), fileSystem: fileSystem ?? MemoryFileSystem.test(),
platform: macPlatform, platform: macPlatform,
artifacts: artifacts, iProxy: IProxy.test(logger: logger, processManager: processManager ?? FakeProcessManager.any()),
logger: logger, logger: logger,
iosDeploy: IOSDeploy( iosDeploy: IOSDeploy(
logger: logger, logger: logger,
......
...@@ -18,6 +18,7 @@ import 'package:flutter_tools/src/globals.dart' as globals; ...@@ -18,6 +18,7 @@ import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/fallback_discovery.dart'; import 'package:flutter_tools/src/ios/fallback_discovery.dart';
import 'package:flutter_tools/src/ios/ios_deploy.dart'; import 'package:flutter_tools/src/ios/ios_deploy.dart';
import 'package:flutter_tools/src/ios/iproxy.dart';
import 'package:flutter_tools/src/ios/mac.dart'; import 'package:flutter_tools/src/ios/mac.dart';
import 'package:flutter_tools/src/mdns_discovery.dart'; import 'package:flutter_tools/src/mdns_discovery.dart';
import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/reporting/reporting.dart';
...@@ -422,7 +423,7 @@ IOSDevice setUpIOSDevice({ ...@@ -422,7 +423,7 @@ IOSDevice setUpIOSDevice({
sdkVersion: sdkVersion, sdkVersion: sdkVersion,
fileSystem: fileSystem ?? MemoryFileSystem.test(), fileSystem: fileSystem ?? MemoryFileSystem.test(),
platform: macPlatform, platform: macPlatform,
artifacts: artifacts, iProxy: IProxy.test(logger: logger, processManager: processManager ?? FakeProcessManager.any()),
logger: BufferLogger.test(), logger: BufferLogger.test(),
iosDeploy: IOSDeploy( iosDeploy: IOSDeploy(
logger: logger ?? BufferLogger.test(), logger: logger ?? BufferLogger.test(),
......
...@@ -12,6 +12,7 @@ import 'package:flutter_tools/src/base/platform.dart'; ...@@ -12,6 +12,7 @@ import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/iproxy.dart';
import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/ios/xcodeproj.dart';
import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/macos/xcode.dart';
import 'package:mockito/mockito.dart'; import 'package:mockito/mockito.dart';
...@@ -80,6 +81,7 @@ void main() { ...@@ -80,6 +81,7 @@ void main() {
platform: null, platform: null,
artifacts: MockArtifacts(), artifacts: MockArtifacts(),
cache: MockCache(), cache: MockCache(),
iproxy: IProxy.test(logger: logger, processManager: processManager),
); );
}); });
...@@ -350,6 +352,7 @@ void main() { ...@@ -350,6 +352,7 @@ void main() {
platform: null, platform: null,
artifacts: mockArtifacts, artifacts: mockArtifacts,
cache: mockCache, cache: mockCache,
iproxy: IProxy.test(logger: logger, processManager: fakeProcessManager),
); );
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment