Initial revision

From-SVN: r102074
This commit is contained in:
Tom Tromey
2005-07-16 00:30:23 +00:00
parent 6f4434b39b
commit f911ba985a
4557 changed files with 1000262 additions and 0 deletions
@@ -0,0 +1 @@
Makefile.in
@@ -0,0 +1,5 @@
## Input file for automake to generate the Makefile.in used by configure
JAVAROOT = .
check_JAVA = TypeSignatureTest.java
@@ -0,0 +1,196 @@
/*************************************************************************
/* TypeSignatureTest.java -- Tests TypeSignature class
/*
/* Copyright (c) 1998 by Free Software Foundation, Inc.
/*
/* This program 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, version 2. (see COPYING)
/*
/* This program 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 this program; if not, write to the Free Software Foundation
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
/*************************************************************************/
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Member;
import gnu.java.lang.reflect.TypeSignature;
public class TypeSignatureTest
{
public static void pass()
{
System.out.print( "PASSED: " );
}
public static void fail()
{
System.out.print( "FAILED: " );
}
public static void testClass( Class clazz, String type_code )
{
if( TypeSignature.getEncodingOfClass( clazz ).equals( type_code ) )
pass();
else
fail();
System.out.println( "class encoding of " + clazz );
}
public static void testGetClass( Class clazz, String type_code )
throws ClassNotFoundException
{
if( TypeSignature.getClassForEncoding( type_code ).equals( clazz ) )
pass();
else
fail();
System.out.println( "class from encoding " + type_code );
}
public static void testConstructor( Constructor c, String type_code )
{
if( TypeSignature.getEncodingOfConstructor( c ).equals( type_code ) )
pass();
else
fail();
System.out.println( "constructor encoding of " + c );
}
public static void testMethod( Method m, String type_code )
{
if( TypeSignature.getEncodingOfMethod( m ).equals( type_code ) )
pass();
else
fail();
System.out.println( "method encoding of " + m );
}
public static void testMember( Member m, String type_code )
{
if( TypeSignature.getEncodingOfMember( m ).equals( type_code ) )
pass();
else
fail();
System.out.println( "member encoding of " + m );
}
public static void main( String[] args )
{
try
{
// test getEncodingOfClass
testClass( Boolean.TYPE, "Z" );
testClass( Byte.TYPE, "B" );
testClass( Character.TYPE, "C" );
testClass( Double.TYPE, "D" );
testClass( Float.TYPE, "F" );
testClass( Integer.TYPE, "I" );
testClass( Long.TYPE, "J" );
testClass( Short.TYPE, "S" );
testClass( (new int[] {}).getClass(), "[I" );
testClass( (new float[][][] {}).getClass(), "[[[F" );
testClass( String.class, "Ljava/lang/String;" );
testClass( TypeSignatureTest.class, "LTypeSignatureTest;" );
// test named inner-class
TypeSignatureTest tst = new TypeSignatureTest();
Inner i = tst.new Inner();
testClass( i.getClass(),
"LTypeSignatureTest$Inner;" );
// test anonymous inner-class
Anon anon = new Anon() { public void f() {} };
testClass( anon.getClass(), "LTypeSignatureTest$1;" );
//test getEncodingOfConstructor
testConstructor( String.class.getConstructor( new Class[] {} ),
"()V" );
testConstructor(
String.class.getConstructor( new Class[]
{ (new byte[]{}).getClass() } ),
"([B)V" );
testConstructor(
String.class.getConstructor( new Class[] { StringBuffer.class } ),
"(Ljava/lang/StringBuffer;)V" );
// test getEncodingOfMethod
testMethod(
String.class.getMethod( "lastIndexOf",
new Class[] { Integer.TYPE, Integer.TYPE } ),
"(II)I" );
testMethod(
String.class.getMethod( "length", new Class[] {} ),
"()I" );
testMethod(
TypeSignatureTest.class.getMethod( "pass", new Class[] {} ),
"()V" );
testMember(
TypeSignatureTest.class.getField( "i" ),
"I" );
testMember(
TypeSignatureTest.class.getField( "s" ),
"Ljava/lang/String;" );
testMember(
TypeSignatureTest.class.getField( "o" ),
"[[Ljava/lang/Object;" );
// test getClassForEncoding
testGetClass( Boolean.TYPE, "Z" );
testGetClass( Byte.TYPE, "B" );
testGetClass( Character.TYPE, "C" );
testGetClass( Double.TYPE, "D" );
testGetClass( Float.TYPE, "F" );
testGetClass( Integer.TYPE, "I" );
testGetClass( Long.TYPE, "J" );
testGetClass( Short.TYPE, "S" );
testGetClass( (new int[] {}).getClass(), "[I" );
testGetClass( (new float[][][] {}).getClass(), "[[[F" );
testGetClass( String.class, "Ljava/lang/String;" );
testGetClass( TypeSignatureTest.class, "LTypeSignatureTest;" );
// test named inner-class
testGetClass( i.getClass(),
"LTypeSignatureTest$Inner;" );
// test anonymous inner-class
testGetClass( anon.getClass(), "LTypeSignatureTest$1;" );
}
catch( Exception e )
{
e.printStackTrace();
}
}
public int i;
public String s;
public Object[][] o;
class Inner
{}
}
interface Anon
{
public void f();
}