jdk/test/java/net/InetAddress/IsReachableViaLoopbackTest.java
author jjg
Wed, 04 Jan 2017 18:33:20 -0800
changeset 43029 1cd1c816581e
parent 38471 7baac1d79ed1
permissions -rw-r--r--
8172260: remove tests from ProblemList Reviewed-by: rfield
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32845
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     1
import java.io.*;
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     2
import java.net.*;
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     3
import java.util.*;
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     4
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     5
/**
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     6
 * @test
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     7
 * @bug 8135305
38471
7baac1d79ed1 8157499: Mark several tests from jdk_net as intermittently failing
amlu
parents: 32845
diff changeset
     8
 * @key intermittent
32845
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
     9
 * @summary ensure we can't ping external hosts via loopback if
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    10
 */
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    11
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    12
public class IsReachableViaLoopbackTest {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    13
    public static void main(String[] args) {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    14
        try {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    15
            InetAddress addr = InetAddress.getByName("localhost");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    16
            InetAddress remoteAddr = InetAddress.getByName("bugs.openjdk.java.net");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    17
            if (!addr.isReachable(10000))
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    18
                throw new RuntimeException("Localhost should always be reachable");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    19
            NetworkInterface inf = NetworkInterface.getByInetAddress(addr);
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    20
            if (inf != null) {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    21
                if (!addr.isReachable(inf, 20, 10000)) {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    22
                    throw new RuntimeException("Localhost should always be reachable");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    23
                } else {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    24
                    System.out.println(addr + "  is reachable");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    25
                }
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    26
                if (remoteAddr.isReachable(inf, 20, 10000)) {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    27
                    throw new RuntimeException(remoteAddr + " is reachable");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    28
                } else {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    29
                    System.out.println(remoteAddr + "  is NOT reachable");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    30
                }
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    31
            } else {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    32
                System.out.println("inf == null");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    33
            }
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    34
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    35
        } catch (IOException e) {
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    36
            throw new RuntimeException("Unexpected exception:" + e);
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    37
        }
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    38
        System.out.println("IsReachableViaLoopbackTest EXIT");
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    39
    }
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    40
}
e630c3008f2c 8135305: InetAddress.isReachable reports true when loopback interface is specified
robm
parents:
diff changeset
    41