jdk/test/sun/management/StackTraceElementCompositeData/CompatibilityTest.java
author iignatyev
Wed, 15 Mar 2017 22:48:59 -0700
changeset 44423 306c020eb154
parent 36511 9d0388c6b336
permissions -rw-r--r--
8176176: fix @modules in jdk_svc tests Reviewed-by: shurailine, sspitsyn
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
36511
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     1
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     2
import java.util.HashMap;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     3
import java.util.Map;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     4
import javax.management.openmbean.CompositeData;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     5
import javax.management.openmbean.CompositeDataSupport;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     6
import javax.management.openmbean.CompositeType;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     7
import javax.management.openmbean.OpenType;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     8
import javax.management.openmbean.SimpleType;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
     9
import sun.management.StackTraceElementCompositeData;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    10
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    11
import org.testng.annotations.*;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    12
import static org.testng.Assert.*;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    13
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    14
/*
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    15
 * @test
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    16
 * @bug     8139587
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    17
 * @summary Check backward compatibility of StackTraceElementCompositeData
44423
306c020eb154 8176176: fix @modules in jdk_svc tests
iignatyev
parents: 36511
diff changeset
    18
 * @author  Jaroslav Bachorik
306c020eb154 8176176: fix @modules in jdk_svc tests
iignatyev
parents: 36511
diff changeset
    19
 *
36511
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    20
 * @run testng CompatibilityTest
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    21
 */
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    22
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    23
public class CompatibilityTest {
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    24
    private static CompositeType compositeTypeV6;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    25
    private static Map<String, Object> itemsV6;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    26
    private static CompositeData compositeDataV6;
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    27
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    28
    @BeforeClass
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    29
    public static void setup() throws Exception {
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    30
        compositeTypeV6 = new CompositeType(
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    31
            StackTraceElement.class.getName(),
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    32
            "StackTraceElement",
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    33
            new String[]{
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    34
                "className", "methodName", "fileName", "nativeMethod", "lineNumber"
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    35
            },
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    36
            new String[]{
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    37
                "className", "methodName", "fileName", "nativeMethod", "lineNumber"
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    38
            },
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    39
            new OpenType[]{
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    40
                SimpleType.STRING,
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    41
                SimpleType.STRING,
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    42
                SimpleType.STRING,
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    43
                SimpleType.BOOLEAN,
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    44
                SimpleType.INTEGER
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    45
            }
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    46
        );
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    47
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    48
        itemsV6 = new HashMap<>();
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    49
        itemsV6.put("className", "MyClass");
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    50
        itemsV6.put("methodName", "myMethod");
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    51
        itemsV6.put("fileName", "MyClass.java");
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    52
        itemsV6.put("nativeMethod", false);
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    53
        itemsV6.put("lineNumber", 123);
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    54
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    55
        compositeDataV6 = new CompositeDataSupport(compositeTypeV6, itemsV6);
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    56
    }
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    57
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    58
    @Test
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    59
    public void testV6Compatibility() throws Exception {
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    60
        StackTraceElement ste = StackTraceElementCompositeData.from(compositeDataV6);
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    61
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    62
        assertNotNull(ste);
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    63
        assertEquals(ste.getClassName(), "MyClass");
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    64
        assertEquals(ste.getMethodName(), "myMethod");
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    65
        assertEquals(ste.getFileName(), "MyClass.java");
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    66
        assertEquals(ste.isNativeMethod(), false);
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    67
        assertEquals(ste.getLineNumber(), 123);
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    68
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    69
        assertNull(ste.getModuleName());
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    70
        assertNull(ste.getModuleVersion());
9d0388c6b336 8142968: Module System implementation
alanb
parents:
diff changeset
    71
    }
44423
306c020eb154 8176176: fix @modules in jdk_svc tests
iignatyev
parents: 36511
diff changeset
    72
}
306c020eb154 8176176: fix @modules in jdk_svc tests
iignatyev
parents: 36511
diff changeset
    73