From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25545 invoked by alias); 6 Dec 2005 04:35:26 -0000 Received: (qmail 25536 invoked by uid 22791); 6 Dec 2005 04:35:25 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 06 Dec 2005 04:35:24 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id jB64ZMaK003301 for ; Mon, 5 Dec 2005 23:35:22 -0500 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id jB64ZHV23769 for ; Mon, 5 Dec 2005 23:35:17 -0500 Received: from vpn-4-15.stuttgart.redhat.com (vpn-4-15.stuttgart.redhat.com [10.32.4.15]) by potter.sfbay.redhat.com (8.12.8/8.12.8) with ESMTP id jB64ZCfU021622 for ; Mon, 5 Dec 2005 23:35:14 -0500 Subject: Patch: Float/DoubleBuffer compareTo From: Anthony Green To: Mauve Discuss Content-Type: text/plain Date: Tue, 06 Dec 2005 04:35:00 -0000 Message-Id: <1133843705.3036.170.camel@localhost.localdomain> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact mauve-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: mauve-discuss-owner@sourceware.org X-SW-Source: 2005-q4/txt/msg00047.txt.bz2 These tests point out a bug in GNU Classpath. Float and Double buffers built from identical arrays containing NaN values should still compare as equal. I'm checking this in. Float/DoubleBuffer.compareTo need special checks for this case. Something like (a != a) && (b != b). 2005-12-05 Anthony Green * gnu/testlet/java/nio/DoubleBuffer/compareTo.java: New test. * gnu/testlet/java/nio/FloatBuffer/compareTo.java: New test. Index: gnu/testlet/java/nio/DoubleBuffer/compareTo.java =================================================================== RCS file: gnu/testlet/java/nio/DoubleBuffer/compareTo.java diff -N gnu/testlet/java/nio/DoubleBuffer/compareTo.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gnu/testlet/java/nio/DoubleBuffer/compareTo.java 6 Dec 2005 04:28:29 -0000 @@ -0,0 +1,43 @@ +// Tags: JDK1.4 + +// Copyright (C) 2005 Red Hat, Inc. + +// 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. + + +package gnu.testlet.java.nio.DoubleBuffer; + +import gnu.testlet.Testlet; +import gnu.testlet.TestHarness; + +import java.nio.*; + +public class compareTo implements Testlet +{ + public void test(TestHarness h) + { + double darray[] = new double[1]; + darray[0] = Double.NaN; + + DoubleBuffer fb1 = DoubleBuffer.wrap(darray); + DoubleBuffer fb2 = DoubleBuffer.wrap(darray); + + h.check(fb1.compareTo(fb2), 0, "double buffer compare with NaN entry"); + } +} + Index: gnu/testlet/java/nio/FloatBuffer/compareTo.java =================================================================== RCS file: gnu/testlet/java/nio/FloatBuffer/compareTo.java diff -N gnu/testlet/java/nio/FloatBuffer/compareTo.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gnu/testlet/java/nio/FloatBuffer/compareTo.java 6 Dec 2005 04:28:29 -0000 @@ -0,0 +1,43 @@ +// Tags: JDK1.4 + +// Copyright (C) 2005 Red Hat, Inc. + +// 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. + + +package gnu.testlet.java.nio.FloatBuffer; + +import gnu.testlet.Testlet; +import gnu.testlet.TestHarness; + +import java.nio.*; + +public class compareTo implements Testlet +{ + public void test(TestHarness h) + { + float farray[] = new float[1]; + farray[0] = Float.NaN; + + FloatBuffer fb1 = FloatBuffer.wrap(farray); + FloatBuffer fb2 = FloatBuffer.wrap(farray); + + h.check(fb1.compareTo(fb2), 0, "float buffer compare with NaN entry"); + } +} +