From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27505 invoked by alias); 14 Sep 2011 08:55:21 -0000 Received: (qmail 27495 invoked by uid 22791); 14 Sep 2011 08:55:19 -0000 X-SWARE-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 14 Sep 2011 08:55:03 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p8E8t3HS006098 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 14 Sep 2011 04:55:03 -0400 Received: from dhcp-lab-190.englab.brq.redhat.com (dhcp-2-245.brq.redhat.com [10.34.2.245]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p8E8t2Af029936 for ; Wed, 14 Sep 2011 04:55:03 -0400 Message-ID: <4E706C61.2030408@redhat.com> Date: Wed, 14 Sep 2011 08:55:00 -0000 From: Pavel Tisnovsky User-Agent: Thunderbird 2.0.0.23 (X11/20090825) MIME-Version: 1.0 To: mauve-discuss@sourceware.org Subject: Re: RFC: fix for Mauve test javax/swing/Border/TitledBorder/constructors.java References: <4E60F752.1070308@redhat.com> <20110907023849.GI19081@rivendell.middle-earth.co.uk> <4E6769A0.8020906@redhat.com> In-Reply-To: <4E6769A0.8020906@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact mauve-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: mauve-discuss-owner@sourceware.org X-SW-Source: 2011-q3/txt/msg00024.txt.bz2 Greetings, here's the new version of a patch for a Mauve test javax/swing/Border/TitledBorder/constructors.java. This patch make this test work correctly on OpenJDK & GNU Classpath too: --- mauve_old/gnu/testlet/javax/swing/border/TitledBorder/constructors.java 2006-02-01 15:14:22.000000000 +0100 +++ mauve_new/gnu/testlet/javax/swing/border/TitledBorder/constructors.java 2011-09-14 10:48:54.000000000 +0200 @@ -65,6 +65,11 @@ test6(harness); } + public void checkTitledBorderDefaultPosition(TestHarness harness, int position) + { + harness.check(position == TitledBorder.TOP || position == TitledBorder.DEFAULT_POSITION); + } + public void test1(TestHarness harness) { harness.checkPoint("(Border)"); @@ -77,7 +82,7 @@ harness.check(tb.getTitleColor(), c); Font f = UIManager.getLookAndFeelDefaults().getFont("TitledBorder.font"); harness.check(tb.getTitleFont(), f); - harness.check(tb.getTitlePosition(), TitledBorder.TOP); + checkTitledBorderDefaultPosition(harness, tb.getTitlePosition()); harness.check(tb.getTitleJustification(), TitledBorder.LEADING); tb = new TitledBorder((Border) null); @@ -98,7 +103,7 @@ harness.check(tb.getTitleColor(), c); Font f = UIManager.getLookAndFeelDefaults().getFont("TitledBorder.font"); harness.check(tb.getTitleFont(), f); - harness.check(tb.getTitlePosition(), TitledBorder.TOP); + checkTitledBorderDefaultPosition(harness, tb.getTitlePosition()); harness.check(tb.getTitleJustification(), TitledBorder.LEADING); tb = new TitledBorder((Border) null, "XYZ"); @@ -202,7 +207,7 @@ harness.check(tb.getTitleColor(), c); Font f = UIManager.getLookAndFeelDefaults().getFont("TitledBorder.font"); harness.check(tb.getTitleFont(), f); - harness.check(tb.getTitlePosition(), TitledBorder.TOP); + checkTitledBorderDefaultPosition(harness, tb.getTitlePosition()); harness.check(tb.getTitleJustification(), TitledBorder.LEADING); tb = new TitledBorder((String) null); Any comments are welcome. Pavel Pavel Tisnovsky wrote: > Dr Andrew John Hughes wrote: >> On 17:33 Fri 02 Sep , Pavel Tisnovsky wrote: >>> Greetings, >>> >>> here's fix for another Mauve test. In the test >>> "javax/swing/Border/TitledBorder/constructors.java" the position of the title in >>> the border should be compared with the constant TitledBorder.DEFAULT_POSITION, >>> not with TitledBorder.TOP, at least in cases when following constructors are used: >>> >>> TitledBorder(Border border) >>> TitledBorder(Border border, String title) >>> TitledBorder(String title) >>> >>> (there exist three other constructors where title position can be explicitly >>> specified, but the fix changes only test cases which use the previous three >>> constructors). >>> >> Can you explain why and note whether this affects current test results? >> > > Hi Andrew, > > well, I've gone deeper into this issue and it seems, that GNU Classpath and > OpenJDK have quite different behaviour, but both are AFAIK correct due to > imprecise specification. When one of the following constructors are used to > create TitledBorder: > > TitledBorder(Border border) > TitledBorder(Border border, String title) > TitledBorder(String title) > > the text position is considered as DEFAULT_POSITION which * is equals * to TOP. > The only difference between GNU Classpath / OpenJDK is that GNU Classpath > explicitly sets text position to TOP in the constructor's body: > > public TitledBorder(String title) > { > this(/* border */ null, title, LEADING, TOP, /* titleFont */ null, /* > titleColor */ null); > } > > but OpenJDK still stores DEFAULT_POSITION in following types of code: > > switch (position) { > case TOP: > case DEFAULT: > the same code block for TOP & DEFAULT > > (the same pattern are used for text justification, ie for constants LEFT and > DEFAULT_JUSTIFICATION). > > This means that TitledBorder("title").getTitlePosition()==TitledBorder.TOP on > GNU Classpath but > TitledBorder("title").getTitlePosition()==TitledBorder.DEFAULT_POSITION on > OpenJDK and proprietary JDKs too. > > So it's IMHO better to change the test to check for both possibilities. > > Pavel