mirror of
https://github.com/flutter/flutter
synced 2024-10-13 19:52:53 +00:00
Revert "Add ipv6 and observatory port support to the attach command." (#25288)
* Revert "e5195ee47 Remove unnecessary includes of Ganesh headers (flutter/engine#7189) (#25282)" This reverts commitf198d66332
. * Revert "Validate style in TextField (#24587)" This reverts commit9a8e2f0c4b
. * Revert "Allow snippets tool to be run from arbitrary CWDs (#25243)" This reverts commit4a110b6227
. * Revert "Make doctor output consistent between VS Code/IntelliJ/Android Studio when plugins are missing (#25269)" This reverts commite29b023a6b
. * Revert "Add ipv6 and observatory port support to the attach command. (#24537)" This reverts commit9150b3f031
.
This commit is contained in:
parent
f30029bae1
commit
e6292c8da1
|
@ -53,9 +53,6 @@ class AttachCommand extends FlutterCommand {
|
|||
argParser
|
||||
..addOption(
|
||||
'debug-port',
|
||||
help: 'Device port where the observatory is listening.',
|
||||
)..addOption(
|
||||
'observatory-port',
|
||||
help: 'Local port where the observatory is listening.',
|
||||
)..addOption('pid-file',
|
||||
help: 'Specify a file to write the process id to. '
|
||||
|
@ -70,12 +67,6 @@ class AttachCommand extends FlutterCommand {
|
|||
negatable: false,
|
||||
help: 'Handle machine structured JSON command input and provide output '
|
||||
'and progress in machine friendly format.',
|
||||
)..addFlag('ipv6',
|
||||
hide: true,
|
||||
negatable: false,
|
||||
help: 'Binds to IPv6 localhost instead of IPv4 when the flutter tool '
|
||||
'forwards the host port to a device port. Not used when the '
|
||||
'--debug-port flag is not set.',
|
||||
);
|
||||
hotRunnerFactory ??= HotRunnerFactory();
|
||||
}
|
||||
|
@ -88,14 +79,6 @@ class AttachCommand extends FlutterCommand {
|
|||
@override
|
||||
final String description = 'Attach to a running application.';
|
||||
|
||||
// TODO(djshuckerow): this is now a confusing name. An explanation:
|
||||
// The --observatory-port flag passed to `flutter run` is used to
|
||||
// set up the port on the development macine that the Dart observatory
|
||||
// listens to. This flag serves the same purpose in this command.
|
||||
//
|
||||
// The --debug-port flag passed only to `flutter attach` is used to
|
||||
// set up the port on the device running a Flutter app to connect back
|
||||
// to the host development machine.
|
||||
int get observatoryPort {
|
||||
if (argResults['debug-port'] == null)
|
||||
return null;
|
||||
|
@ -113,12 +96,6 @@ class AttachCommand extends FlutterCommand {
|
|||
if (await findTargetDevice() == null)
|
||||
throwToolExit(null);
|
||||
observatoryPort;
|
||||
if (observatoryPort == null && argResults.wasParsed('ipv6')) {
|
||||
throwToolExit(
|
||||
'When the --debug-port is unknown, this command determines '
|
||||
'the value of --ipv6 on its own.',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -186,24 +163,14 @@ class AttachCommand extends FlutterCommand {
|
|||
);
|
||||
printStatus('Waiting for a connection from Flutter on ${device.name}...');
|
||||
observatoryUri = await observatoryDiscovery.uri;
|
||||
// Determine ipv6 status from the scanned logs.
|
||||
ipv6 = observatoryDiscovery.ipv6;
|
||||
printStatus('Done.');
|
||||
} finally {
|
||||
await observatoryDiscovery?.cancel();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ipv6 = argResults['ipv6'];
|
||||
// int.tryParse will throw if it is passed null, so we need to do this.
|
||||
final int argObservatoryPort = argResults['observatory-port'] == null
|
||||
? null
|
||||
: int.tryParse(argResults['observatory-port']);
|
||||
final int localPort = argObservatoryPort
|
||||
?? await device.portForwarder.forward(devicePort);
|
||||
observatoryUri = ipv6
|
||||
? Uri.parse('http://[$ipv6Loopback]:$localPort/')
|
||||
: Uri.parse('http://$ipv4Loopback:$localPort/');
|
||||
final int localPort = await device.portForwarder.forward(devicePort);
|
||||
observatoryUri = Uri.parse('http://$ipv4Loopback:$localPort/');
|
||||
}
|
||||
try {
|
||||
final FlutterDevice flutterDevice = FlutterDevice(
|
||||
|
|
|
@ -104,7 +104,6 @@ void main() {
|
|||
debuggingOptions: anyNamed('debuggingOptions'),
|
||||
packagesFilePath: anyNamed('packagesFilePath'),
|
||||
usesTerminalUI: anyNamed('usesTerminalUI'),
|
||||
ipv6: false,
|
||||
),
|
||||
)..thenReturn(MockHotRunner());
|
||||
|
||||
|
@ -135,7 +134,6 @@ void main() {
|
|||
debuggingOptions: anyNamed('debuggingOptions'),
|
||||
packagesFilePath: anyNamed('packagesFilePath'),
|
||||
usesTerminalUI: anyNamed('usesTerminalUI'),
|
||||
ipv6: false,
|
||||
),
|
||||
)..called(1);
|
||||
|
||||
|
@ -152,21 +150,6 @@ void main() {
|
|||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
});
|
||||
|
||||
testUsingContext('exits when ipv6 is specified and debug-port is not', () async {
|
||||
testDeviceManager.addDevice(device);
|
||||
|
||||
final AttachCommand command = AttachCommand();
|
||||
await expectLater(
|
||||
createTestCommandRunner(command).run(<String>['attach', '--ipv6']),
|
||||
throwsToolExit(
|
||||
message: 'When the --debug-port is unknown, this command determines '
|
||||
'the value of --ipv6 on its own.',
|
||||
),
|
||||
);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
},);
|
||||
});
|
||||
|
||||
|
||||
|
@ -187,8 +170,7 @@ void main() {
|
|||
target: anyNamed('target'),
|
||||
debuggingOptions: anyNamed('debuggingOptions'),
|
||||
packagesFilePath: anyNamed('packagesFilePath'),
|
||||
usesTerminalUI: anyNamed('usesTerminalUI'),
|
||||
ipv6: false)).thenReturn(
|
||||
usesTerminalUI: anyNamed('usesTerminalUI'))).thenReturn(
|
||||
MockHotRunner());
|
||||
|
||||
testDeviceManager.addDevice(device);
|
||||
|
@ -217,92 +199,33 @@ void main() {
|
|||
target: foo.path,
|
||||
debuggingOptions: anyNamed('debuggingOptions'),
|
||||
packagesFilePath: anyNamed('packagesFilePath'),
|
||||
usesTerminalUI: anyNamed('usesTerminalUI'),
|
||||
ipv6: false)).called(1);
|
||||
usesTerminalUI: anyNamed('usesTerminalUI'))).called(1);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
},);
|
||||
|
||||
group('forwarding to given port', () {
|
||||
testUsingContext('forwards to given port', () async {
|
||||
const int devicePort = 499;
|
||||
const int hostPort = 42;
|
||||
MockPortForwarder portForwarder;
|
||||
MockAndroidDevice device;
|
||||
final MockPortForwarder portForwarder = MockPortForwarder();
|
||||
final MockAndroidDevice device = MockAndroidDevice();
|
||||
|
||||
setUp(() {
|
||||
portForwarder = MockPortForwarder();
|
||||
device = MockAndroidDevice();
|
||||
when(device.portForwarder).thenReturn(portForwarder);
|
||||
when(portForwarder.forward(devicePort)).thenAnswer((_) async => hostPort);
|
||||
when(portForwarder.forwardedPorts).thenReturn(
|
||||
<ForwardedPort>[ForwardedPort(hostPort, devicePort)]);
|
||||
when(portForwarder.unforward(any)).thenAnswer((_) async => null);
|
||||
testDeviceManager.addDevice(device);
|
||||
|
||||
when(device.portForwarder).thenReturn(portForwarder);
|
||||
when(portForwarder.forward(devicePort)).thenAnswer((_) async => hostPort);
|
||||
when(portForwarder.forwardedPorts).thenReturn(
|
||||
<ForwardedPort>[ForwardedPort(hostPort, devicePort)]);
|
||||
when(portForwarder.unforward(any)).thenAnswer((_) async => null);
|
||||
});
|
||||
final AttachCommand command = AttachCommand();
|
||||
|
||||
testUsingContext('succeeds in ipv4 mode', () async {
|
||||
testDeviceManager.addDevice(device);
|
||||
final AttachCommand command = AttachCommand();
|
||||
await createTestCommandRunner(command).run(
|
||||
<String>['attach', '--debug-port', '$devicePort']);
|
||||
|
||||
await createTestCommandRunner(command).run(
|
||||
<String>['attach', '--debug-port', '$devicePort']);
|
||||
|
||||
verify(portForwarder.forward(devicePort)).called(1);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
});
|
||||
|
||||
testUsingContext('succeeds in ipv6 mode', () async {
|
||||
testDeviceManager.addDevice(device);
|
||||
final AttachCommand command = AttachCommand();
|
||||
|
||||
await createTestCommandRunner(command).run(
|
||||
<String>['attach', '--debug-port', '$devicePort', '--ipv6']);
|
||||
|
||||
verify(portForwarder.forward(devicePort)).called(1);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
});
|
||||
|
||||
testUsingContext('skips in ipv4 mode with a provided observatory port', () async {
|
||||
testDeviceManager.addDevice(device);
|
||||
final AttachCommand command = AttachCommand();
|
||||
|
||||
await createTestCommandRunner(command).run(
|
||||
<String>[
|
||||
'attach',
|
||||
'--debug-port',
|
||||
'$devicePort',
|
||||
'--observatory-port',
|
||||
'$hostPort',
|
||||
],
|
||||
);
|
||||
|
||||
verifyNever(portForwarder.forward(devicePort));
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
});
|
||||
|
||||
testUsingContext('skips in ipv6 mode with a provided observatory port', () async {
|
||||
testDeviceManager.addDevice(device);
|
||||
final AttachCommand command = AttachCommand();
|
||||
|
||||
await createTestCommandRunner(command).run(
|
||||
<String>[
|
||||
'attach',
|
||||
'--debug-port',
|
||||
'$devicePort',
|
||||
'--observatory-port',
|
||||
'$hostPort',
|
||||
'--ipv6',
|
||||
],
|
||||
);
|
||||
|
||||
verifyNever(portForwarder.forward(devicePort));
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
});
|
||||
});
|
||||
verify(portForwarder.forward(devicePort)).called(1);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => testFileSystem,
|
||||
},);
|
||||
|
||||
testUsingContext('exits when no device connected', () async {
|
||||
final AttachCommand command = AttachCommand();
|
||||
|
|
Loading…
Reference in a new issue