Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/management/openmbean/EqualsTest.java
38838 views
/*1* Copyright (c) 2005, 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 507217426* @summary Test CompositeDataSupport.equals with ArrayType27* @author Shanliang JIANG28* @run clean EqualsTest29* @run build EqualsTest30* @run main EqualsTest31*/3233import javax.management.ObjectName;34import javax.management.openmbean.*;3536public class EqualsTest {3738/*39* Print message40*/41private static void echo(String message) {42System.out.println(message);43}4445/**46* Main47*/48public static void main(String[] args) throws Exception {49echo("=-=-= Test CompositeDataSupport.equals() with ArrayType =-=-=");5051echo(">>> Two SimpleTypes with different descriptions");52CompositeType ct1 = new CompositeType(53"MyType",54"for test",55new String[] {"a", "b"},56new String[] {"a_desc", "b_desc"},57new OpenType[] {SimpleType.BOOLEAN,SimpleType.STRING});5859CompositeType ct2 = new CompositeType(60"MyType",61"for test",62new String[] {"a", "b"},63new String[] {"aa_desc", "bb_desc"},64new OpenType[] {SimpleType.BOOLEAN, SimpleType.STRING});6566if (!ct1.equals(ct2)) {67throw new RuntimeException("CompositeType.equals fails!");68}69if (ct1.hashCode() != ct2.hashCode()) {70throw new RuntimeException("CompositeType.hashCode fails!");71}7273echo(">>> Two SimpleTypes with equal values");74CompositeData compositeData0 = new CompositeDataSupport(75ct1,76new String[] {"a", "b"},77new Object[] {new Boolean(true), ""});7879CompositeData compositeData1 = new CompositeDataSupport(80ct2,81new String[] {"a", "b"},82new Object[] {new Boolean(true), ""});8384if (!compositeData0.equals(compositeData1)) {85throw new RuntimeException("CompositeDataSupport.equals fails!");86}87if (compositeData0.hashCode() != compositeData1.hashCode()) {88throw new RuntimeException("CompositeDataSupport.hashCode fails!");89}9091echo(">>> Two ArrayTypes with different references");92CompositeType ct3 = new CompositeType(93"MyType",94"for test",95new String[] {"a"},96new String[] {"a_desc"},97new OpenType[] {new ArrayType(1, SimpleType.STRING)});9899CompositeData compositeData2 = new CompositeDataSupport(100ct3,101new String[] {"a"},102new Object[] {new String[] {"x", "y"}});103104CompositeData compositeData3 = new CompositeDataSupport(105ct3,106new String[] {"a"},107new Object[] {new String[] {"x", "y"}});108109if (!compositeData2.equals(compositeData3)) {110throw new RuntimeException("CompositeDataSupport.equals fails!");111}112if (compositeData2.hashCode() != compositeData3.hashCode()) {113throw new RuntimeException("CompositeDataSupport.hashCode fails!");114}115116echo(">>> Two ArrayTypes with different values");117CompositeData compositeData4 = new CompositeDataSupport(118ct3,119new String[] {"a"},120new Object[] {new String[] {"x", "y", "x"}});121122if (compositeData2.equals(compositeData4)) {123throw new RuntimeException("CompositeDataSupport.equals fails!");124}125126echo(">>> Two 2-dimension ArrayTypes with equal values");127CompositeType ct4 = new CompositeType(128"MyType",129"for test",130new String[] {"a"},131new String[] {"a_desc"},132new OpenType[] {new ArrayType(2, SimpleType.OBJECTNAME)});133134final String s = "t:t=t";135CompositeData compositeData5 = new CompositeDataSupport(136ct4,137new String[] {"a"},138new Object[] {139new ObjectName[][] {140new ObjectName[] {141new ObjectName(s), new ObjectName(s)142},143new ObjectName[] {144new ObjectName(s), new ObjectName(s)145}146}147});148149CompositeData compositeData6 = new CompositeDataSupport(150ct4,151new String[] {"a"},152new Object[] {153new ObjectName[][] {154new ObjectName[] {155new ObjectName(s), new ObjectName(s)156},157new ObjectName[] {158new ObjectName(s), new ObjectName(s)159}160}161});162163if (!compositeData5.equals(compositeData6)) {164throw new RuntimeException("CompositeDataSupport.equals fails!");165}166if (compositeData5.hashCode() != compositeData6.hashCode()) {167throw new RuntimeException("CompositeDataSupport.hashCode fails!");168}169170echo(">>> Two primitive ArrayTypes with different descriptions");171CompositeType ct5 = new CompositeType(172"MyType",173"for test",174new String[] {"a", "b"},175new String[] {"a_desc", "b_desc"},176new OpenType[] {177SimpleType.BOOLEAN,178ArrayType.getPrimitiveArrayType(short[].class)179});180181CompositeType ct6 = new CompositeType(182"MyType",183"for test",184new String[] {"a", "b"},185new String[] {"aa_desc", "bb_desc"},186new OpenType[] {187SimpleType.BOOLEAN,188ArrayType.getPrimitiveArrayType(short[].class)189});190191if (!ct5.equals(ct6)) {192throw new RuntimeException("CompositeType.equals fails!");193}194if (ct5.hashCode() != ct6.hashCode()) {195throw new RuntimeException("CompositeType.hashCode fails!");196}197198echo(">>> Two primitive ArrayTypes with different references");199CompositeType ct7 = new CompositeType(200"MyType",201"for test",202new String[] {"a"},203new String[] {"a_desc"},204new OpenType[] {205ArrayType.getPrimitiveArrayType(int[].class)206});207208CompositeData compositeData7 = new CompositeDataSupport(209ct7,210new String[] {"a"},211new Object[] {new int[] {1, 2}});212213CompositeData compositeData8 = new CompositeDataSupport(214ct7,215new String[] {"a"},216new Object[] {new int[] {1, 2}});217218if (!compositeData7.equals(compositeData8)) {219throw new RuntimeException("CompositeDataSupport.equals fails!");220}221if (compositeData7.hashCode() != compositeData8.hashCode()) {222throw new RuntimeException("CompositeDataSupport.hashCode fails!");223}224225echo(">>> Two primitive ArrayTypes with different values");226CompositeData compositeData9 = new CompositeDataSupport(227ct7,228new String[] {"a"},229new Object[] {new int[] {1, 2, 3}});230231if (compositeData7.equals(compositeData9)) {232throw new RuntimeException("CompositeDataSupport.equals fails!");233}234235echo(">>> Two 2-dimension primitive ArrayTypes with equal values");236CompositeType ct8 = new CompositeType(237"MyType",238"for test",239new String[] {"a"},240new String[] {"a_desc"},241new OpenType[] {242ArrayType.getPrimitiveArrayType(boolean[][].class)243});244245CompositeData compositeData10 = new CompositeDataSupport(246ct8,247new String[] {"a"},248new Object[] {new boolean[][]249{new boolean[] {true, true},250new boolean[] {true, true}}});251252CompositeData compositeData11 = new CompositeDataSupport(253ct8,254new String[] {"a"},255new Object[] {new boolean[][]256{new boolean[] {true, true},257new boolean[] {true, true}}});258259if (!compositeData10.equals(compositeData11)) {260throw new RuntimeException("CompositeDataSupport.equals fails!");261}262if (compositeData10.hashCode() != compositeData11.hashCode()) {263throw new RuntimeException("CompositeDataSupport.hashCode fails!");264}265}266}267268269