jdk/test/com/sun/jmx/snmp/TimeTicksWrapping.java
changeset 27220 315d620f5726
parent 27219 c4918033790e
parent 27214 d9f500808d8a
child 27222 422e90d83a4e
--- a/jdk/test/com/sun/jmx/snmp/TimeTicksWrapping.java	Thu Oct 23 13:45:30 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,241 +0,0 @@
-/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @summary Test that SnmpTimeTicks wraps around when it is passed a long
- *          value
- * @bug     4955105
- * @build   TimeTicksWrapping
- * @run     main TimeTicksWrapping
- */
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-public class TimeTicksWrapping {
-    // We use an SnmpTimeticksBuilder in order to adapt this test case to a
-    // configuration where the SNMP packages are not present in rt.jar.
-    //
-    public static final class SnmpTimeticksBuilder {
-        public static final long   MAX_VALUE = 0x0ffffffffL;
-        public static final String SNMP_TIME_TICKS_CLASS_NAME =
-            "com.sun.jmx.snmp.SnmpTimeticks";
-        private static final Class<?> SNMP_TIME_TICKS_CLASS;
-        private static final Constructor<?> SNMP_long_CTOR;
-        private static final Constructor<?> SNMP_LONG_CTOR;
-        private static final Method SNMP_LONG_VALUE;
-        static {
-            Class<?> snmpTimeTicksClass;
-            try {
-                snmpTimeTicksClass =
-                    Class.forName(SNMP_TIME_TICKS_CLASS_NAME, true, null);
-            } catch (ClassNotFoundException x) {
-                snmpTimeTicksClass = null;
-                System.err.println("WARNING: can't load "+
-                        SNMP_TIME_TICKS_CLASS_NAME);
-            } catch (NoClassDefFoundError x) {
-                snmpTimeTicksClass = null;
-                System.err.println("WARNING: can't load "+
-                        SNMP_TIME_TICKS_CLASS_NAME);
-            }
-            SNMP_TIME_TICKS_CLASS = snmpTimeTicksClass;
-            if (SNMP_TIME_TICKS_CLASS != null) {
-                try {
-                  SNMP_long_CTOR =
-                          SNMP_TIME_TICKS_CLASS.getConstructor(long.class);
-                } catch (Exception x) {
-                    throw new ExceptionInInitializerError(x);
-                }
-            } else {
-                SNMP_long_CTOR = null;
-            }
-            if (SNMP_TIME_TICKS_CLASS != null) {
-                try {
-                  SNMP_LONG_CTOR =
-                          SNMP_TIME_TICKS_CLASS.getConstructor(Long.class);
-                } catch (Exception x) {
-                    throw new ExceptionInInitializerError(x);
-                }
-            } else {
-                SNMP_LONG_CTOR = null;
-            }
-            if (SNMP_TIME_TICKS_CLASS != null) {
-                try {
-                  SNMP_LONG_VALUE =
-                          SNMP_TIME_TICKS_CLASS.getMethod("longValue");
-                } catch (Exception x) {
-                    throw new ExceptionInInitializerError(x);
-                }
-            } else {
-                SNMP_LONG_VALUE = null;
-            }
-
-        }
-
-        private final Object timeticks;
-
-        public SnmpTimeticksBuilder(long ticks) throws Exception {
-            timeticks = newSnmpTimeticks(ticks);
-        }
-        public SnmpTimeticksBuilder(Long ticks) throws Exception {
-            timeticks = newSnmpTimeticks(ticks);
-        }
-        public long longValue() throws Exception {
-            return longValue(timeticks);
-        }
-
-        public static boolean isSnmpPresent() {
-            System.out.println(TimeTicksWrapping.class.getName()+
-                    ": Testing for SNMP Packages...");
-            return SNMP_TIME_TICKS_CLASS != null;
-        }
-
-        private static Object newSnmpTimeticks(long time)
-                throws Exception {
-            try {
-                return SNMP_long_CTOR.newInstance(time);
-            } catch (InvocationTargetException x) {
-                final Throwable cause = x.getCause();
-                if (cause instanceof Exception) throw (Exception) cause;
-                if (cause instanceof Error) throw (Error) cause;
-                throw x;
-            }
-        }
-
-        private static Object newSnmpTimeticks(Long time)
-            throws Exception {
-            try {
-                return SNMP_LONG_CTOR.newInstance(time);
-            } catch (InvocationTargetException x) {
-                final Throwable cause = x.getCause();
-                if (cause instanceof Exception) throw (Exception) cause;
-                if (cause instanceof Error) throw (Error) cause;
-                throw x;
-            }
-        }
-
-        private static long longValue(Object o)
-                throws Exception {
-            try {
-                return ((Long)SNMP_LONG_VALUE.invoke(o)).longValue();
-            } catch (InvocationTargetException x) {
-                final Throwable cause = x.getCause();
-                if (cause instanceof Exception) throw (Exception) cause;
-                if (cause instanceof Error) throw (Error) cause;
-                throw x;
-            }
-        }
-
-    }
-
-    public static final long[] oks = {
-        0L, 1L, (long)Integer.MAX_VALUE, (long)Integer.MAX_VALUE*2,
-        (long)Integer.MAX_VALUE*2+1L, (long)Integer.MAX_VALUE*2+2L,
-        (long)Integer.MAX_VALUE*3,
-        SnmpTimeticksBuilder.MAX_VALUE, SnmpTimeticksBuilder.MAX_VALUE+1L,
-        SnmpTimeticksBuilder.MAX_VALUE*3-1L, Long.MAX_VALUE
-    };
-
-    public static final long[] kos = {
-        -1L, (long)Integer.MIN_VALUE, (long)Integer.MIN_VALUE*2,
-        (long)Integer.MIN_VALUE*2-1L, (long)Integer.MIN_VALUE*3,
-        -SnmpTimeticksBuilder.MAX_VALUE, -(SnmpTimeticksBuilder.MAX_VALUE+1L),
-        -(SnmpTimeticksBuilder.MAX_VALUE*3-1L), Long.MIN_VALUE
-    };
-
-
-    public static void main(String args[]) {
-        if (!SnmpTimeticksBuilder.isSnmpPresent()) {
-            System.err.println("WARNING: "+
-                    SnmpTimeticksBuilder.SNMP_TIME_TICKS_CLASS_NAME+
-                    " not present.");
-            System.err.println(TimeTicksWrapping.class.getName()+
-                    ": test skipped.");
-            return;
-        }
-        try {
-            SnmpTimeticksBuilder t = null;
-
-            for (int i=0;i<oks.length;i++) {
-                final long t1,t2,t3;
-                t1 = (new SnmpTimeticksBuilder(oks[i])).longValue();
-                t2 = (new SnmpTimeticksBuilder(new Long(oks[i]))).longValue();
-                t3 = oks[i]%0x0100000000L;
-                if (t1 != t3)
-                    throw new Exception("Value should have wrapped: " +
-                                        oks[i] + " expected: " + t3);
-                if (t2 != t3)
-                    throw new Exception("Value should have wrapped: " +
-                                        "Long("+oks[i]+") expected: " + t3);
-
-                if (t1 > SnmpTimeticksBuilder.MAX_VALUE)
-                    throw new Exception("Value should have wrapped " +
-                                        "for " + oks[i] + ": " +
-                                        t1 + " exceeds max: " +
-                                        SnmpTimeticksBuilder.MAX_VALUE);
-                if (t2 > SnmpTimeticksBuilder.MAX_VALUE)
-                    throw new Exception("Value should have wrapped " +
-                                        "for " + oks[i] + ": " +
-                                        t2 + " exceeds max: " +
-                                        SnmpTimeticksBuilder.MAX_VALUE);
-
-                if (t1 < 0)
-                    throw new Exception("Value should have wrapped: " +
-                                        "for " + oks[i] + ": " +
-                                        t1 + " is negative");
-                if (t2 < 0)
-                    throw new Exception("Value should have wrapped: " +
-                                        "for " + oks[i] + ": " +
-                                        t2 + " is negative");
-
-                System.out.println("TimeTicks[" + oks[i] +
-                                   "] rightfully accepted: " + t3);
-            }
-
-            for (int i=0;i<kos.length;i++) {
-                try {
-                    t = new SnmpTimeticksBuilder(kos[i]);
-                    throw new Exception("Value should have been rejected: " +
-                                        kos[i]);
-                } catch (IllegalArgumentException x) {
-                    // OK!
-                }
-                try {
-                    t = new SnmpTimeticksBuilder(new Long(kos[i]));
-                    throw new Exception("Value should have been rejected: " +
-                                        "Long("+kos[i]+")");
-                } catch (IllegalArgumentException x) {
-                    // OK!
-                }
-
-                System.out.println("TimeTicks[" + kos[i] +
-                                   "] rightfully rejected.");
-            }
-
-        } catch(Exception x) {
-            x.printStackTrace();
-            System.exit(1);
-        }
-    }
-}