Path: blob/master/test/jdk/java/net/InetAddress/GetLoopbackAddress.java
41149 views
/*1* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/**24* @test25* @bug 6376404 820154526* @summary InetAddress needs a getLoopbackAddress27*/28import java.net.*;2930public class GetLoopbackAddress31{32static InetAddress IPv4Loopback;33static InetAddress IPv6Loopback;3435static {36try {37IPv4Loopback = InetAddress.getByAddress(38new byte[] {0x7F,0x00,0x00,0x01});3940IPv6Loopback = InetAddress.getByAddress(41new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,420x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01});43} catch (UnknownHostException e) {44}45}4647public static void main(String[] args) throws Exception {48InetAddress addr = InetAddress.getLoopbackAddress();4950if (!(addr.equals(IPv4Loopback) || addr.equals(IPv6Loopback))) {51throw new RuntimeException("Failed: getLoopbackAddress" +52" not returning a valid loopback address");53}5455InetAddress addr2 = InetAddress.getLoopbackAddress();5657if (addr != addr2) {58throw new RuntimeException("Failed: getLoopbackAddress" +59" should return a reference to the same InetAddress loopback instance.");60}6162InetAddress addrFromNullHost = InetAddress.getByName(null);63if (!addrFromNullHost.isLoopbackAddress()) {64throw new RuntimeException("getByName(null) did not return a" +65" loopback address, but " + addrFromNullHost);66}67InetAddress addrFromEmptyHost = InetAddress.getByName("");68if (!addrFromEmptyHost.isLoopbackAddress()) {69throw new RuntimeException("getByName with a host of length == 0," +70" did not return a loopback address, but " + addrFromEmptyHost);71}7273InetAddress[] addrsByNull = InetAddress.getAllByName(null);74if (!addrsByNull[0].isLoopbackAddress()) {75throw new RuntimeException("getAllByName(null) did not return" +76" a loopback address, but " + addrsByNull[0]);77}78InetAddress[] addrsByEmpty = InetAddress.getAllByName("");79if (!addrsByEmpty[0].isLoopbackAddress()) {80throw new RuntimeException("getAllByName with a host of length" +81" == 0, did not return a loopback address, but " + addrsByEmpty[0]);82}83}84}858687