1 /*
2  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 /*
27  * @test
28  * @bug 8175325
29  * @summary test NetworkInterface getInterfaceAddresses method on the NetworkInterface returned
30  * from the getNetworkInterface invocation on a MulticastSocket bound to a wildcard address.
31  *
32  */
33 
34 import java.net.MulticastSocket;
35 import java.net.NetworkInterface;
36 import java.net.SocketException;
37 
38 public class NetworkInterfaceEmptyGetInetAddressesTest {
39 
40     static int exceptionCount = 0;
41 
testMethods(NetworkInterface netIf)42     public static void testMethods(NetworkInterface netIf) throws Exception {
43         testNetworkInterface_getInterfaceAddresses(netIf);
44 
45         if (exceptionCount > 0) {
46             throw new RuntimeException("Unexpected Exceptions in test");
47         }
48     }
49 
testNetworkInterface_getInterfaceAddresses( NetworkInterface netIf)50     private static void testNetworkInterface_getInterfaceAddresses(
51             NetworkInterface netIf) {
52         try {
53             netIf.getInterfaceAddresses();
54         } catch (Exception ex) {
55             ex.printStackTrace();
56             incrementExceptionCount();
57         }
58     }
59 
incrementExceptionCount()60     private static void incrementExceptionCount() {
61         exceptionCount++;
62     }
63 
main(String[] args)64     public static void main(String[] args) throws Exception {
65         MulticastSocket mcastSock = null;
66         try {
67             mcastSock = new MulticastSocket();
68             System.out.println("macst socket address == "
69                     + mcastSock.getLocalAddress());
70             NetworkInterface netIf = mcastSock.getNetworkInterface();
71             testMethods(netIf);
72         } finally {
73             if (mcastSock != null) {
74                 mcastSock.close();
75             }
76         }
77     }
78 }
79