Unverified Commit e6292c8d authored by David Shuckerow's avatar David Shuckerow Committed by GitHub

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 commit f198d663.

* Revert "Validate style in TextField (#24587)"

This reverts commit 9a8e2f0c.

* Revert "Allow snippets tool to be run from arbitrary CWDs (#25243)"

This reverts commit 4a110b62.

* Revert "Make doctor output consistent between VS Code/IntelliJ/Android Studio when plugins are missing (#25269)"

This reverts commit e29b023a.

* Revert "Add ipv6 and observatory port support to the attach command. (#24537)"

This reverts commit 9150b3f0.
parent f30029ba
......@@ -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;
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);
});
testUsingContext('succeeds in ipv4 mode', () async {
testDeviceManager.addDevice(device);
final AttachCommand command = AttachCommand();
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',
],
);
final MockPortForwarder portForwarder = MockPortForwarder();
final MockAndroidDevice device = MockAndroidDevice();
verifyNever(portForwarder.forward(devicePort));
}, overrides: <Type, Generator>{
FileSystem: () => testFileSystem,
});
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);
testUsingContext('skips in ipv6 mode with a provided observatory port', () async {
testDeviceManager.addDevice(device);
final AttachCommand command = AttachCommand();
final AttachCommand command = AttachCommand();
await createTestCommandRunner(command).run(
<String>[
'attach',
'--debug-port',
'$devicePort',
'--observatory-port',
'$hostPort',
'--ipv6',
],
);
await createTestCommandRunner(command).run(
<String>['attach', '--debug-port', '$devicePort']);
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();
......
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