[kaffe] failed regression tests
Rob Gonzalez
rgonzale@wso.williams.edu
Sun Jun 29 13:15:01 2003
Hi all,
> > on my box (K6 Linux 2.4.18 Debian/unstable jit3), the
> > following regression tests fail on the latest cvs version of kaffe:
> >
> > FAIL: DoublePrint.java
> > FAIL: ThreadState.java
> > FAIL: InnerTest.java
> > FAIL: finaltest.java
> > FAIL: SortTest.java
> > FAIL: MapTest.java
> > FAIL: LineNumberReaderTest.java
> > FAIL: KaffeInternal.java
>
> that's weird. I have 0 tests failing under i686-linux (p3-650, Mandrake 9.1).
> What's a K6? how do the tests fail?
By K6 I meant K7...short for Athlon/Duron family of processors.
Anyway, here's why each of the tests fail:
*************************************************************************
ThreadState.java:
*************************************************************************
/* Expected Output:
Success.
Success.
Success.
Success.
Success.
Success.
Success.
Success.
Success.
Success.
*/
what i got:
Success.
Success.
Success.
Success.
Success.
Success.
Success.
Success.
Success.
Success.
interesting, eh? it turns out that my compiler (jikes 1.18) is spitting
out tons of lexical warning messages such as:
Issued 10 lexical warnings in "ThreadState.java":
46. assert(false, "main " + e);
^----^
*** Lexical Warning: The use of "assert" as an identifier is
deprecated, as it is now a keyword. Use -source 1.4 if you
intended to make use of assertions.
these warnings are confusing the testing script. when i run jikes with
the -nowarn option, this test is successful, as are:
finaltest.java
SortTest.java
MapTest.java
LineNumberReaderTest.java
the regression scripts should definitely be ignoring the compiler output
when checking to see if a test succeeds.
*************************************************************************
KaffeInternal.java:
*************************************************************************
/* Expected Output:
java.lang.NoClassDefFoundError: kaffe/lang/ThreadStack
*/
what i got:
java.lang.SecurityException: Prohibited package: kaffe/lang/ThreadStack
I believe that what I got is the expected behavior, only that between the
writing of the regression test and now the exception thrown for a class
attempting to access something that it should not be accessing has
changed. perhaps the expected output of the regression test should be
updated?
*************************************************************************
DoublePrint.java:
*************************************************************************
/* Expected output:
Double values:
NaN -> 7ff8000000000000
0.0
-0.0
-0.0
1.0
NaN
Infinity
-Infinity
4.9E-324
1.7976931348623157E308
666666.5555555555
123.75
-9000000.0
0.001
1.05E9
0.0/0.0 = NaN
Float values:
NaN -> 7fc00000
0.0
-0.0
-0.0
1.0
NaN
Infinity
-Infinity
1.4E-45
3.4028235E38
666666.56
123.75
1.0E7
-0.001
0.0/0.0 = NaN
*/
what i actually got (there are some discrepencies here):
Double values:
NaN -> 7ff8000000000000
0.0
0.0
-0.0
1.0
NaN
Infinity
-Infinity
4.9E-324
1.7976931348623157E308
666666.5555555555
123.75
-9000000.0
0.001
1.05E9
0.0/0.0 = NaN
Float values:
NaN -> 7fc00000
0.0
0.0
-0.0
1.0
NaN
Infinity
-Infinity
1.4E-45
3.4028235E38
666666.56
123.75
1.0E7
-0.001
0.0/0.0 = NaN
I'm not a hardware person and don't know much about floats, so i have no
idea where to begin tracking down the problem with that one...
*************************************************************************
InnerTest.java:
*************************************************************************
/* Expected Output:
InnerBase: declared: class InnerBase$privateInstanceClass [2] private
InnerBase: declared: class InnerBase$privateStaticClass [a] private static
InnerBase: declared: class InnerBase$protectedInstanceClass [4] protected
InnerBase: declared: class InnerBase$protectedStaticClass [c] protected
static
InnerBase: declared: class InnerBase$publicInstanceClass [1] public
InnerBase: declared: class InnerBase$publicStaticClass [9] public static
InnerBase: declared: interface InnerBase$publicInstanceInterface [609]
public abstract static interface
InnerBase: declared: interface InnerBase$publicStaticInterface [609]
public abstract static interface
InnerBase: declaring: <null>
InnerBase: get: class InnerBase$publicInstanceClass [1] public
InnerBase: get: class InnerBase$publicStaticClass [9] public static
InnerBase: get: interface InnerBase$publicInstanceInterface [609] public
abstract static interface
InnerBase: get: interface InnerBase$publicStaticInterface [609] public
abstract static interface
InnerTest: declared: class InnerTest$1 [10] final
InnerTest: declared: class InnerTest$2 [10] final
InnerTest: declared: class InnerTest$3 [10] final
InnerTest: declared: class InnerTest$4 [10] final
InnerTest: declared: class InnerTest$Inner [9] public static
InnerTest: declaring: <null>
InnerTest: get: class InnerBase$publicInstanceClass [1] public
InnerTest: get: class InnerBase$publicStaticClass [9] public static
InnerTest: get: class InnerTest$Inner [9] public static
InnerTest: get: interface InnerBase$publicInstanceInterface [609] public
abstract static interface
InnerTest: get: interface InnerBase$publicStaticInterface [609] public
abstract static interface
java.lang.Object: declared: <empty>
java.lang.Object: declaring: <null>
java.lang.Object: get: <empty>
*/
what I got:
java.lang.Object: declaring: <null>
java.lang.Object: declared: <empty>
java.lang.Object: get: <empty>
InnerBase: declaring: <null>
InnerBase: declared: interface InnerBase$publicInstanceInterface [609]
public abstract static interface
InnerBase: declared: interface InnerBase$publicStaticInterface [609]
public abstract static interface
InnerBase: declared: class InnerBase$publicStaticClass [9] public static
InnerBase: declared: class InnerBase$publicInstanceClass [1] public
InnerBase: declared: class InnerBase$protectedStaticClass [c] protected
static
InnerBase: declared: class InnerBase$protectedInstanceClass [4] protected
InnerBase: declared: class InnerBase$privateStaticClass [a] private static
InnerBase: declared: class InnerBase$privateInstanceClass [2] private
InnerBase: get: interface InnerBase$publicInstanceInterface [609] public
abstract static interface
InnerBase: get: interface InnerBase$publicStaticInterface [609] public
abstract static interface
InnerBase: get: class InnerBase$publicStaticClass [9] public static
InnerBase: get: class InnerBase$publicInstanceClass [1] public
InnerTest: declaring: <null>
InnerTest: declared: class InnerTest$Inner [9] public static
InnerTest: get: interface InnerBase$publicInstanceInterface [609] public
abstract static interface
InnerTest: get: interface InnerBase$publicStaticInterface [609] public
abstract static interface
InnerTest: get: class InnerBase$publicStaticClass [9] public static
InnerTest: get: class InnerBase$publicInstanceClass [1] public
InnerTest: get: class InnerTest$Inner [9] public static
haven't spent too much time with this one yet...
if i can post any further info about any of these tests, lemme know.
Rob