jdk/test/sun/management/jdp/JdpTestCase.java
author dsamersoff
Wed, 23 Mar 2016 21:40:20 +0300
changeset 37324 78e60b834fa4
parent 21646 38f9ba0664de
permissions -rw-r--r--
8151444: JDP not working Summary: Don't set IP_MULTICAST_IF explicitly Reviewed-by: sla, ysuenaga
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21646
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     1
/*
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     2
 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     4
 *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     7
 * published by the Free Software Foundation.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     8
 *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    13
 * accompanied this code).
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    14
 *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    18
 *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    21
 * questions.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    22
 */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    23
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    24
/**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    25
 * A JVM with JDP on should send multicast JDP packets regularly.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    26
 * Look at JdpOnTestCase.java and JdpOffTestCase.java
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    27
 */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    28
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    29
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    30
import sun.management.jdp.JdpJmxPacket;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    31
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    32
import java.io.IOException;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    33
import java.io.UnsupportedEncodingException;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    34
import java.net.DatagramPacket;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    35
import java.net.MulticastSocket;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    36
import java.net.SocketTimeoutException;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    37
import java.util.Arrays;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    38
import java.util.Map;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    39
import java.util.logging.Level;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    40
import java.util.logging.Logger;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    41
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    42
public abstract class JdpTestCase {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    43
    final Logger log = Logger.getLogger("sun.management.jdp");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    44
    final int MAGIC = 0xC0FFEE42;                       // Jdp magic number.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    45
    private static final int BUFFER_LENGTH = 64 * 1024;   // max UDP size, except for IPv6 jumbograms.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    46
    private final int TIME_OUT_FACTOR = 10;             // Socket times out after 10 times the jdp pause.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    47
    protected int timeOut;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    48
    private long startTime;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    49
    protected ClientConnection connection;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    50
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    51
    public JdpTestCase(ClientConnection connection) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    52
        this.connection = connection;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    53
        JdpTestUtil.enableConsoleLogging(log, Level.ALL);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    54
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    55
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    56
    public void run() throws Exception {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    57
        log.fine("Test started.");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    58
        log.fine("Listening for multicast packets at " + connection.address.getHostAddress()
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    59
                + ":" + String.valueOf(connection.port));
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    60
        log.fine(initialLogMessage());
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    61
        log.fine("Pause in between packets is: " + connection.pauseInSeconds + " seconds.");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    62
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    63
        startTime = System.currentTimeMillis();
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    64
        timeOut = connection.pauseInSeconds * TIME_OUT_FACTOR;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    65
        log.fine("Timeout set to " + String.valueOf(timeOut) + " seconds.");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    66
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    67
        MulticastSocket socket = connection.connectWithTimeout(timeOut * 1000);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    68
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    69
        byte[] buffer = new byte[BUFFER_LENGTH];
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    70
        DatagramPacket datagram = new DatagramPacket(buffer, buffer.length);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    71
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    72
        do {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    73
            try {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    74
                socket.receive(datagram);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    75
                onReceived(extractUDPpayload(datagram));
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    76
            } catch (SocketTimeoutException e) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    77
                onSocketTimeOut(e);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    78
            }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    79
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    80
            if (hasTestLivedLongEnough()) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    81
                shutdown();
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    82
            }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    83
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    84
        } while (shouldContinue());
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    85
        log.fine("Test ended successfully.");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    86
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    87
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    88
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    89
     * Subclasses: JdpOnTestCase and JdpOffTestCase have different messages.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    90
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    91
    protected abstract String initialLogMessage();
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    92
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    93
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    94
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    95
     * Executed when the socket receives a UDP packet.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    96
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    97
    private void onReceived(byte[] packet) throws Exception {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    98
        if (isJDP(packet)) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
    99
            Map<String, String> payload = checkStructure(packet);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   100
            jdpPacketReceived(payload);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   101
        } else {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   102
            log.fine("Non JDP packet received, ignoring it.");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   103
        }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   104
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   105
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   106
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   107
     * Determine whether the test should end.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   108
     *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   109
     * @return
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   110
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   111
    abstract protected boolean shouldContinue();
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   112
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   113
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   114
     * This method is executed when the socket has not received any packet for timeOut seconds.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   115
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   116
    abstract protected void onSocketTimeOut(SocketTimeoutException e) throws Exception;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   117
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   118
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   119
     * This method is executed after a correct Jdp packet has been received.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   120
     *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   121
     * @param payload A dictionary containing the data if the received Jdp packet.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   122
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   123
    private void jdpPacketReceived(Map<String, String> payload) throws Exception {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   124
        final String instanceName = payload.get("INSTANCE_NAME");
37324
78e60b834fa4 8151444: JDP not working
dsamersoff
parents: 21646
diff changeset
   125
        if (instanceName != null && instanceName.equals(connection.instanceName)) {
21646
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   126
            packetFromThisVMReceived(payload);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   127
        } else {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   128
            packetFromOtherVMReceived(payload);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   129
        }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   130
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   131
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   132
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   133
     * This method is executed after a correct Jdp packet, coming from this VM has been received.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   134
     *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   135
     * @param payload A dictionary containing the data if the received Jdp packet.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   136
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   137
    protected abstract void packetFromThisVMReceived(Map<String, String> payload) throws Exception;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   138
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   139
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   140
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   141
     * This method is executed after a correct Jdp packet, coming from another VM has been received.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   142
     *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   143
     * @param payload A dictionary containing the data if the received Jdp packet.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   144
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   145
    protected void packetFromOtherVMReceived(Map<String, String> payload) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   146
        final String jdpName = payload.get("INSTANCE_NAME");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   147
        log.fine("Ignoring JDP packet sent by other VM, jdp.name=" + jdpName);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   148
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   149
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   150
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   151
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   152
     * The test should stop if it has been 12 times the jdp.pause.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   153
     * jdp.pause is how many seconds in between packets.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   154
     * <p/>
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   155
     * This timeout (12 times)is slightly longer than the socket timeout (10 times) on purpose.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   156
     * In the off test case, the socket should time out first.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   157
     *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   158
     * @return
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   159
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   160
    protected boolean hasTestLivedLongEnough() {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   161
        long now = System.currentTimeMillis();
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   162
        boolean haslivedLongEnough = (now - startTime) > (timeOut * 1.2 * 1000);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   163
        return haslivedLongEnough;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   164
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   165
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   166
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   167
     * This exit condition arises when we receive UDP packets but they are not valid Jdp.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   168
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   169
    protected void shutdown() throws Exception {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   170
        log.severe("Shutting down the test.");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   171
        throw new Exception("Not enough JDP packets received before timeout!");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   172
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   173
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   174
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   175
     * Assert that this Jdp packet contains the required two keys.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   176
     * <p/>
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   177
     * We expect zero packet corruption and thus fail on the first corrupted packet.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   178
     * This might need revision.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   179
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   180
    protected Map<String, String> checkStructure(byte[] packet) throws UnsupportedEncodingException {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   181
        Map<String, String> payload = JdpTestUtil.readPayload(packet);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   182
        assertTrue(payload.size() >= 2, "JDP should have minimun 2 entries.");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   183
        assertTrue(payload.get(JdpJmxPacket.UUID_KEY).length() > 0);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   184
        assertTrue(payload.get(JdpJmxPacket.JMX_SERVICE_URL_KEY).length() > 0);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   185
        return payload;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   186
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   187
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   188
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   189
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   190
     * Check if packet has correct JDP magic number.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   191
     *
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   192
     * @param packet
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   193
     * @return
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   194
     * @throws IOException
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   195
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   196
    private boolean isJDP(byte[] packet) throws IOException {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   197
        int magic = JdpTestUtil.decode4ByteInt(packet, 0);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   198
        return (magic == MAGIC);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   199
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   200
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   201
    private byte[] extractUDPpayload(DatagramPacket datagram) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   202
        byte[] data = Arrays.copyOf(datagram.getData(), datagram.getLength());
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   203
        return data;
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   204
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   205
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   206
    /**
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   207
     * Hack until I find a way to use TestNG's assertions.
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   208
     */
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   209
    private void assertTrue(boolean assertion, String message) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   210
        if (assertion == false) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   211
            log.severe(message);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   212
            assert (false);
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   213
        }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   214
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   215
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   216
    private void assertTrue(boolean assertion) {
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   217
        assertTrue(assertion, "");
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   218
    }
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   219
38f9ba0664de 8014506: Test of Jdp feature
sla
parents:
diff changeset
   220
}