summaryrefslogtreecommitdiffstats
path: root/luni
diff options
context:
space:
mode:
authorTochau Hoang <tochau.hoang@panasonic.aero>2015-06-23 13:32:40 -0700
committerTochau Hoang <tochaupac@gmail.com>2015-07-08 17:44:14 +0000
commit3601fe27f70b9be8a8d32051dd2b5759234e8b75 (patch)
tree3ef1ff62a90c367631d5f1d3e8c35af9fbdf16bc /luni
parent6da6b0e4a410cb3bbbbcf56cba742ba881ca1b47 (diff)
downloadlibcore-3601fe27f70b9be8a8d32051dd2b5759234e8b75.zip
libcore-3601fe27f70b9be8a8d32051dd2b5759234e8b75.tar.gz
libcore-3601fe27f70b9be8a8d32051dd2b5759234e8b75.tar.bz2
Add testInterfaceProperties() . Move Ethernet verification out of testLoopback().
Add testInterfaceProperties(): verify if each interface can be retrieved using getByName(). Use type properties of these interfaces to determine if they are Ethernet. Perform address tests on all active Ethernet interfaces. Move Ethernet verification out of testLoopback into testInterfaceProperties. Change-Id: I1641f2995f4ceb858eda38d1ba6137382b2c7ba3 Signed-off-by: Tochau Hoang <tochau.hoang@panasonic.aero>
Diffstat (limited to 'luni')
-rw-r--r--luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java45
1 files changed, 33 insertions, 12 deletions
diff --git a/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java b/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java
index b7c4bc6..116eb3f 100644
--- a/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java
+++ b/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java
@@ -22,14 +22,18 @@ import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import libcore.io.IoUtils;
public class NetworkInterfaceTest extends TestCase {
// http://code.google.com/p/android/issues/detail?id=13784
+ private final static int ARPHRD_ETHER = 1; // from if_arp.h
public void testIPv6() throws Exception {
NetworkInterface lo = NetworkInterface.getByName("lo");
Set<InetAddress> actual = new HashSet<InetAddress>(Collections.list(lo.getInetAddresses()));
@@ -70,24 +74,31 @@ public class NetworkInterfaceTest extends TestCase {
assertEquals(1, ifAddresses.size());
}
+ public void testInterfaceProperties() throws Exception {
+ for (NetworkInterface nif : Collections.list(NetworkInterface.getNetworkInterfaces())) {
+ assertEquals(nif, NetworkInterface.getByName(nif.getName()));
+ // Skip interfaces that are inactive
+ if (nif.isUp() == false) {
+ continue;
+ }
+ // Ethernet
+ if (isEthernet(nif.getName())) {
+ assertEquals(6, nif.getHardwareAddress().length);
+ for (InterfaceAddress ia : nif.getInterfaceAddresses()) {
+ if (ia.getAddress() instanceof Inet4Address) {
+ assertNotNull(ia.getBroadcast());
+ }
+ }
+ }
+ }
+ }
+
public void testLoopback() throws Exception {
- // We know lo shouldn't have a hardware address or an IPv4 broadcast address.
NetworkInterface lo = NetworkInterface.getByName("lo");
assertNull(lo.getHardwareAddress());
for (InterfaceAddress ia : lo.getInterfaceAddresses()) {
assertNull(ia.getBroadcast());
}
-
- // But eth0, if it exists, should...
- NetworkInterface eth0 = NetworkInterface.getByName("eth0");
- if (eth0 != null) {
- assertEquals(6, eth0.getHardwareAddress().length);
- for (InterfaceAddress ia : eth0.getInterfaceAddresses()) {
- if (ia.getAddress() instanceof Inet4Address) {
- assertNotNull(ia.getBroadcast());
- }
- }
- }
}
public void testDumpAll() throws Exception {
@@ -130,4 +141,14 @@ public class NetworkInterfaceTest extends TestCase {
allIndexes.add(nif.getIndex());
}
}
+
+ // Returns true if interface by name ifName is Ethernet
+ private boolean isEthernet(String ifName) throws Exception {
+ String s = IoUtils.readFileAsString("/sys/class/net/" + ifName + "/type").trim();
+ if (s.startsWith("0x")) {
+ return (Integer.parseInt(s.substring(2), 16) == ARPHRD_ETHER);
+ } else {
+ return (Integer.parseInt(s) == ARPHRD_ETHER);
+ }
+ }
}