From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27185 invoked by alias); 20 Feb 2007 11:27:59 -0000 Received: (qmail 27176 invoked by uid 22791); 20 Feb 2007 11:27:58 -0000 X-Spam-Check-By: sourceware.org Received: from gbenson.demon.co.uk (HELO gbenson.demon.co.uk) (80.177.220.214) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 20 Feb 2007 11:27:54 +0000 Date: Tue, 20 Feb 2007 11:27:00 -0000 From: Gary Benson To: mauve-patches@sources.redhat.com Subject: FYI: Test javax.management.ObjectName.apply() Message-ID: <20070220112750.GF25127@redhat.com> Mail-Followup-To: mauve-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="61jdw2sOBCFtR2d/" Content-Disposition: inline X-IsSubscribed: yes Mailing-List: contact mauve-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: mauve-patches-owner@sourceware.org X-SW-Source: 2007/txt/msg00011.txt.bz2 --61jdw2sOBCFtR2d/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 92 Hi all, This commit adds some tests for javax.management.ObjectName.apply(). Cheers, Gary --61jdw2sOBCFtR2d/ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch Content-length: 3893 Index: ChangeLog =================================================================== RCS file: /cvs/mauve/mauve/ChangeLog,v retrieving revision 1.2039 diff -u -r1.2039 ChangeLog --- ChangeLog 12 Feb 2007 22:30:44 -0000 1.2039 +++ ChangeLog 20 Feb 2007 11:25:27 -0000 @@ -1,3 +1,7 @@ +2007-02-20 Gary Benson + + * gnu/testlet/javax/management/ObjectName/apply.java: New test. + 2007-02-12 Tom Tromey * gnu/testlet/java/net/ServerSocket/BasicSocketServer.java (init): Index: gnu/testlet/javax/management/ObjectName/apply.java =================================================================== RCS file: gnu/testlet/javax/management/ObjectName/apply.java diff -N gnu/testlet/javax/management/ObjectName/apply.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gnu/testlet/javax/management/ObjectName/apply.java 20 Feb 2007 11:25:27 -0000 @@ -0,0 +1,100 @@ +// Copyright (C) 2007 Red Hat, Inc. +// Written by Gary Benson + +// This file is part of Mauve. + +// Mauve is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2, or (at your option) +// any later version. + +// Mauve 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 for more details. + +// You should have received a copy of the GNU General Public License +// along with Mauve; see the file COPYING. If not, write to +// the Free Software Foundation, 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + +// Tags: JDK1.5 + +package gnu.testlet.javax.management.ObjectName; + +import javax.management.MalformedObjectNameException; +import javax.management.ObjectName; + +import gnu.testlet.Testlet; +import gnu.testlet.TestHarness; + +public class apply implements Testlet +{ + private String[] domains = new String[] { + "mauve", "m?uve", "*ve", "*au*", "m?*e", "mauv?", "m*v*", "*"}; + + private boolean domainMatches(String a, String b) + { + // XXX This is very hacky. The spec says that nothing matches + // a pattern. And all the patterns here match the non-pattern. + return !b.contains("?") && !b.contains("*"); + } + + private String[] properties = new String[] { + "foo=bar", "foo=bar,spam=eggs", "spam=eggs,foo=bar", "foo=bar,*", "*"}; + + private boolean propertyMatches(String a, String b) + { + // Again, nothing matches a pattern. + if (b.contains("*")) + return false; + // All the patterns here match the non-patterns. + if (a.contains("*")) + return true; + // If they're the same length then they match (XXX hacky) + return a.length() == b.length(); + } + + public void test(TestHarness harness) + { + for (int ida = 0; ida < domains.length; ida++) + { + for (int idb = 0; idb < domains.length; idb++) + { + for (int ipa = 0; ipa < properties.length; ipa++) + { + for (int ipb = 0; ipb < properties.length; ipb++) + { + String da = domains[ida]; + String db = domains[idb]; + boolean dm = domainMatches(da, db); + + String pa = properties[ipa]; + String pb = properties[ipb]; + boolean pm = propertyMatches(pa, pb); + + String sa = da + ":" + pa; + String sb = db + ":" + pb; + boolean expect = dm && pm; + + try + { + ObjectName ona = new ObjectName(sa); + ObjectName onb = new ObjectName(sb); + + harness.check(ona.apply(onb) == expect, + sa + " should" + + (expect ? "" : " not") + + " match " + sb); + } + catch (MalformedObjectNameException e) + { + harness.check(false); + harness.debug(e); + } + } + } + } + } + } +} --61jdw2sOBCFtR2d/--