ba550f1c43
Previously, Socket::ListInterfaces failed to set the os_error out parameter causing a crash in the caller. This change sets an error here. I've also added NetworkInterface.listSupported, which returns false on Android, and true everywhere else. ifaddrs.h continues not to exist in the NDK, so in order to support NetworkInterface.list, we'd have to reimplement it, or find a suitable reimplementation somewhere. related #26329 R=johnmccutchan@google.com Review URL: https://codereview.chromium.org/1916223003 .
57 lines
1.2 KiB
Dart
57 lines
1.2 KiB
Dart
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. 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:io';
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
|
|
void testListLoopback() {
|
|
NetworkInterface.list(includeLoopback: false).then((list) {
|
|
for (var i in list) {
|
|
for (var a in i.addresses) {
|
|
Expect.isFalse(a.isLoopback);
|
|
}
|
|
}
|
|
});
|
|
|
|
NetworkInterface.list(includeLoopback: true).then((list) {
|
|
Expect.isTrue(list.any((i) => i.addresses.any((a) => a.isLoopback)));
|
|
});
|
|
}
|
|
|
|
|
|
void testListLinkLocal() {
|
|
NetworkInterface.list(includeLinkLocal: false).then((list) {
|
|
for (var i in list) {
|
|
for (var a in i.addresses) {
|
|
Expect.isFalse(a.isLinkLocal);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
void testListIndex() {
|
|
var set = new Set();
|
|
NetworkInterface.list(includeLoopback: true).then((list) {
|
|
for (var i in list) {
|
|
Expect.isNotNull(i.index);
|
|
Expect.isFalse(set.contains(i.index));
|
|
set.add(i.index);
|
|
Expect.isTrue(set.contains(i.index));
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
void main() {
|
|
if (!NetworkInterface.listSupported) {
|
|
return;
|
|
}
|
|
testListLoopback();
|
|
testListLinkLocal();
|
|
testListIndex();
|
|
}
|