Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/management/ObjectName/ApplyWildcardTest.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 471680726* @summary Test the ObjectName.apply(ObjectName) method27* with wildcards in the key properties value part.28* @author Luis-Miguel Alventosa29* @run clean ApplyWildcardTest30* @run build ApplyWildcardTest31* @run main ApplyWildcardTest32*/3334import javax.management.ObjectName;3536public class ApplyWildcardTest {3738private static final String positiveTests[][] = {39{ "d:k=*", "d:k=\"\"" },4041{ "d:k=*", "d:k=" },42{ "d:k=*", "d:k=v" },43{ "d:k=a*b", "d:k=axyzb" },44{ "d:k=a*b,*", "d:k=axyzb,k2=v2" },45{ "d:*,k=a*b", "d:k=axyzb,k2=v2" },46{ "d:k=?", "d:k=v" },47{ "d:k=a?b", "d:k=axb" },48{ "d:k=a?b,*", "d:k=axb,k2=v2" },49{ "d:*,k=a?b", "d:k=axb,k2=v2" },50{ "d:k=?*", "d:k=axyzb" },51{ "d:k=a?bc*d", "d:k=axbcyzd" },52{ "d:k=a?bc*d,*", "d:k=axbcyzd,k2=v2" },53{ "d:*,k=a?bc*d", "d:k=axbcyzd,k2=v2" },54{ "d:k1=?,k2=*", "d:k1=a,k2=ab" },55{ "d:k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd" },56{ "d:k1=a?b,k2=c*d,*", "d:k1=axb,k2=cyzd,k3=v3" },57{ "d:*,k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd,k3=v3" },5859{ "d:k=\"*\"", "d:k=\"\"" },60{ "d:k=\"*\"", "d:k=\"v\"" },61{ "d:k=\"a*b\"", "d:k=\"axyzb\"" },62{ "d:k=\"a*b\",*", "d:k=\"axyzb\",k2=\"v2\"" },63{ "d:*,k=\"a*b\"", "d:k=\"axyzb\",k2=\"v2\"" },64{ "d:k=\"?\"", "d:k=\"v\"" },65{ "d:k=\"a?b\"", "d:k=\"axb\"" },66{ "d:k=\"a?b\",*", "d:k=\"axb\",k2=\"v2\"" },67{ "d:*,k=\"a?b\"", "d:k=\"axb\",k2=\"v2\"" },68{ "d:k=\"?*\"", "d:k=\"axyzb\"" },69{ "d:k=\"a?bc*d\"", "d:k=\"axbcyzd\"" },70{ "d:k=\"a?bc*d\",*", "d:k=\"axbcyzd\",k2=\"v2\"" },71{ "d:*,k=\"a?bc*d\"", "d:k=\"axbcyzd\",k2=\"v2\"" },72{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"a\",k2=\"ab\"" },73{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\"" },74{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },75{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },76};7778private static final String negativeTests[][] = {79{ "d:k=\"*\"", "d:k=" },8081{ "d:k=*", "d:k=,k2=" },82{ "d:k=*", "d:k=v,k2=v2" },83{ "d:k=a*b", "d:k=axyzbc" },84{ "d:k=a*b,*", "d:k=axyzbc,k2=v2" },85{ "d:*,k=a*b", "d:k=axyzbc,k2=v2" },86{ "d:k=?", "d:k=xyz" },87{ "d:k=a?b", "d:k=ab" },88{ "d:k=a?b,*", "d:k=ab,k2=v2" },89{ "d:*,k=a?b", "d:k=ab,k2=v2" },90{ "d:k=?*", "d:k=axyzb,k2=v2" },91{ "d:k=a?bc*d", "d:k=abcd" },92{ "d:k=a?bc*d,*", "d:k=abcd,k2=v2" },93{ "d:*,k=a?bc*d", "d:k=abcd,k2=v2" },94{ "d:k1=?,k2=*", "d:k1=ab,k2=ab" },95{ "d:k1=a?b,k2=c*d", "d:k1=ab,k2=cd" },96{ "d:k1=a?b,k2=c*d,*", "d:k1=ab,k2=cd,k3=v3" },97{ "d:*,k1=a?b,k2=c*d", "d:k1=ab,k2=cd,k3=v3" },9899{ "d:k=\"*\"", "d:k=\"\",k2=\"\"" },100{ "d:k=\"*\"", "d:k=\"v\",k2=\"v2\"" },101{ "d:k=\"a*b\"", "d:k=\"axyzbc\"" },102{ "d:k=\"a*b\",*", "d:k=\"axyzbc\",k2=\"v2\"" },103{ "d:*,k=\"a*b\"", "d:k=\"axyzbc\",k2=\"v2\"" },104{ "d:k=\"?\"", "d:k=\"xyz\"" },105{ "d:k=\"a?b\"", "d:k=\"ab\"" },106{ "d:k=\"a?b\",*", "d:k=\"ab\",k2=\"v2\"" },107{ "d:*,k=\"a?b\"", "d:k=\"ab\",k2=\"v2\"" },108{ "d:k=\"?*\"", "d:k=\"axyzb\",k2=\"v2\"" },109{ "d:k=\"a?bc*d\"", "d:k=\"abcd\"" },110{ "d:k=\"a?bc*d\",*", "d:k=\"abcd\",k2=\"v2\"" },111{ "d:*,k=\"a?bc*d\"", "d:k=\"abcd\",k2=\"v2\"" },112{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"ab\",k2=\"ab\"" },113{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\"" },114{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },115{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },116};117118private static int runPositiveTests() {119int error = 0;120for (int i = 0; i < positiveTests.length; i++) {121System.out.println("----------------------------------------------");122try {123ObjectName on1 = ObjectName.getInstance(positiveTests[i][0]);124ObjectName on2 = ObjectName.getInstance(positiveTests[i][1]);125System.out.println("\"" + on1 + "\".apply(\"" + on2 + "\")");126boolean result = on1.apply(on2);127System.out.println("Result = " + result);128if (result == false) {129error++;130System.out.println("Test failed!");131} else {132System.out.println("Test passed!");133}134} catch (Exception e) {135error++;136System.out.println("Got Unexpected Exception = " + e.toString());137System.out.println("Test failed!");138}139System.out.println("----------------------------------------------");140}141return error;142}143144private static int runNegativeTests() {145int error = 0;146for (int i = 0; i < negativeTests.length; i++) {147System.out.println("----------------------------------------------");148try {149ObjectName on1 = ObjectName.getInstance(negativeTests[i][0]);150ObjectName on2 = ObjectName.getInstance(negativeTests[i][1]);151System.out.println("\"" + on1 + "\".apply(\"" + on2 + "\")");152boolean result = on1.apply(on2);153System.out.println("Result = " + result);154if (result == true) {155error++;156System.out.println("Test failed!");157} else {158System.out.println("Test passed!");159}160} catch (Exception e) {161error++;162System.out.println("Got Unexpected Exception = " + e.toString());163System.out.println("Test failed!");164}165System.out.println("----------------------------------------------");166}167return error;168}169170public static void main(String[] args) throws Exception {171172int error = 0;173174// Check null values175//176System.out.println("----------------------------------------------");177System.out.println("Test ObjectName.apply(null)");178try {179new ObjectName("d:k=v").apply(null);180error++;181System.out.println("Didn't get expected NullPointerException!");182System.out.println("Test failed!");183} catch (NullPointerException e) {184System.out.println("Got expected exception '" + e.toString() + "'");185System.out.println("Test passed!");186} catch (Exception e) {187error++;188System.out.println("Got unexpected exception '" + e.toString() + "'");189System.out.println("Test failed!");190}191System.out.println("----------------------------------------------");192193// Check domain pattern values194//195System.out.println("----------------------------------------------");196System.out.println("Test ObjectName.apply(domain_pattern)");197try {198if (new ObjectName("d:k=v").apply(new ObjectName("*:k=v"))) {199error++;200System.out.println("Got 'true' expecting 'false'");201System.out.println("Test failed!");202} else {203System.out.println("Got expected return value 'false'");204System.out.println("Test passed!");205}206} catch (Exception e) {207error++;208System.out.println("Got unexpected exception = " + e.toString());209System.out.println("Test failed!");210}211System.out.println("----------------------------------------------");212213// Check key property list pattern values214//215System.out.println("----------------------------------------------");216System.out.println("Test ObjectName.apply(key_property_list_pattern)");217try {218if (new ObjectName("d:k=v").apply(new ObjectName("d:k=v,*"))) {219error++;220System.out.println("Got 'true' expecting 'false'");221System.out.println("Test failed!");222} else {223System.out.println("Got expected return value 'false'");224System.out.println("Test passed!");225}226} catch (Exception e) {227error++;228System.out.println("Got unexpected exception = " + e.toString());229System.out.println("Test failed!");230}231System.out.println("----------------------------------------------");232233// Check key property value pattern values234//235System.out.println("----------------------------------------------");236System.out.println("Test ObjectName.apply(key_property_value_pattern)");237try {238if (new ObjectName("d:k=v").apply(new ObjectName("d:k=*"))) {239error++;240System.out.println("Got 'true' expecting 'false'");241System.out.println("Test failed!");242} else {243System.out.println("Got expected return value 'false'");244System.out.println("Test passed!");245}246} catch (Exception e) {247error++;248System.out.println("Got unexpected exception = " + e.toString());249System.out.println("Test failed!");250}251System.out.println("----------------------------------------------");252253error += runPositiveTests();254error += runNegativeTests();255256if (error > 0) {257final String msg = "Test FAILED! Got " + error + " error(s)";258System.out.println(msg);259throw new IllegalArgumentException(msg);260} else {261System.out.println("Test PASSED!");262}263}264}265266267