Initial revision
From-SVN: r102074
This commit is contained in:
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user