From 38b85dc3786bd7af90feaf5ad17cd5389046e21d Mon Sep 17 00:00:00 2001 From: edwin Date: Sun, 7 Dec 2003 15:54:28 +0000 Subject: [PATCH] added loging functions, made kaffe tests run --- nat/Constructor.c | 10 +++++----- nat/VMClass.c | 4 ++-- nat/VMObject.c | 2 +- src/native/vm/Constructor.c | 10 +++++----- src/native/vm/VMClass.c | 4 ++-- src/native/vm/VMObject.c | 2 +- src/vm/tables.c | 28 +++++++++++++++++++++++++- src/vm/tables.h | 6 +++++- tables.c | 28 +++++++++++++++++++++++++- tables.h | 6 +++++- tests/Makefile.am | 8 ++++---- tests/kaffe/Makefile.am | 18 +---------------- tests/kaffe/TestScript | 4 ++-- toolbox/loging.c | 39 ++++++++++++++++++++++++++++++++++--- toolbox/loging.h | 4 +++- 15 files changed, 126 insertions(+), 47 deletions(-) diff --git a/nat/Constructor.c b/nat/Constructor.c index 1a3ae3401..e60c5f7e9 100644 --- a/nat/Constructor.c +++ b/nat/Constructor.c @@ -27,8 +27,8 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co /* log_text("Java_java_lang_reflect_Constructor_constructNative called"); - utf_display(((struct classinfo*)clazz)->name);*/ - printf("\n"); + log_plain_utf(((struct classinfo*)clazz)->name);*/ + log_plain("\n"); /* find initializer */ @@ -69,8 +69,8 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co sprintf(logtext, "Warning: class has no instance-initializer of specified type: "); utf_sprint(logtext + strlen(logtext), ((struct classinfo*)clazz)->name); dolog(logtext); - utf_display( create_methodsig(this->parameterTypes,"V")); - printf("\n"); + log_plain_utf( create_methodsig(this->parameterTypes,"V")); + log_plain("\n"); class_showconstantpool(clazz); } #warning throw an exception here, although this should never happen @@ -94,7 +94,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co log_text("Not supported number of arguments in Java_java_lang_reflect_Constructor"); } #endif - /*utf_display(m->descriptor); + /*log_plain_utf(m->descriptor); log_text("calling constructor");*/ (void) jni_method_invokeNativeHelper(env, m ,o, parameters); diff --git a/nat/VMClass.c b/nat/VMClass.c index 435370f4c..f252bac84 100644 --- a/nat/VMClass.c +++ b/nat/VMClass.c @@ -116,8 +116,8 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructo log_text("Java_java_lang_VMClass_getDeclaredConstructors"); - utf_display(c->name); - printf("\n"); + log_plain_utf(c->name); + log_plain("\n"); /* class_showmethods(c); class_showmethods(loader_load(utf_new_char("java/lang/Class")));*/ diff --git a/nat/VMObject.c b/nat/VMObject.c index 34a67ab18..75ee80971 100644 --- a/nat/VMObject.c +++ b/nat/VMObject.c @@ -18,7 +18,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_VMObject_clone ( JNIEnv *env , jclass clazz, struct java_lang_Cloneable* this) { /* log_text("Java_java_lang_VMObject_clone called"); - utf_display(((java_objectheader*)this)->vftbl->class->name); + log_utf(((java_objectheader*)this)->vftbl->class->name); log_text("starting cloning"); */ classinfo *c; java_lang_Object *new; diff --git a/src/native/vm/Constructor.c b/src/native/vm/Constructor.c index 1a3ae3401..e60c5f7e9 100644 --- a/src/native/vm/Constructor.c +++ b/src/native/vm/Constructor.c @@ -27,8 +27,8 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co /* log_text("Java_java_lang_reflect_Constructor_constructNative called"); - utf_display(((struct classinfo*)clazz)->name);*/ - printf("\n"); + log_plain_utf(((struct classinfo*)clazz)->name);*/ + log_plain("\n"); /* find initializer */ @@ -69,8 +69,8 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co sprintf(logtext, "Warning: class has no instance-initializer of specified type: "); utf_sprint(logtext + strlen(logtext), ((struct classinfo*)clazz)->name); dolog(logtext); - utf_display( create_methodsig(this->parameterTypes,"V")); - printf("\n"); + log_plain_utf( create_methodsig(this->parameterTypes,"V")); + log_plain("\n"); class_showconstantpool(clazz); } #warning throw an exception here, although this should never happen @@ -94,7 +94,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_co log_text("Not supported number of arguments in Java_java_lang_reflect_Constructor"); } #endif - /*utf_display(m->descriptor); + /*log_plain_utf(m->descriptor); log_text("calling constructor");*/ (void) jni_method_invokeNativeHelper(env, m ,o, parameters); diff --git a/src/native/vm/VMClass.c b/src/native/vm/VMClass.c index 435370f4c..f252bac84 100644 --- a/src/native/vm/VMClass.c +++ b/src/native/vm/VMClass.c @@ -116,8 +116,8 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructo log_text("Java_java_lang_VMClass_getDeclaredConstructors"); - utf_display(c->name); - printf("\n"); + log_plain_utf(c->name); + log_plain("\n"); /* class_showmethods(c); class_showmethods(loader_load(utf_new_char("java/lang/Class")));*/ diff --git a/src/native/vm/VMObject.c b/src/native/vm/VMObject.c index 34a67ab18..75ee80971 100644 --- a/src/native/vm/VMObject.c +++ b/src/native/vm/VMObject.c @@ -18,7 +18,7 @@ JNIEXPORT struct java_lang_Object* JNICALL Java_java_lang_VMObject_clone ( JNIEnv *env , jclass clazz, struct java_lang_Cloneable* this) { /* log_text("Java_java_lang_VMObject_clone called"); - utf_display(((java_objectheader*)this)->vftbl->class->name); + log_utf(((java_objectheader*)this)->vftbl->class->name); log_text("starting cloning"); */ classinfo *c; java_lang_Object *new; diff --git a/src/vm/tables.c b/src/vm/tables.c index 315105a94..435fb8fba 100644 --- a/src/vm/tables.c +++ b/src/vm/tables.c @@ -35,7 +35,7 @@ - the heap - additional support functions - $Id: tables.c 689 2003-12-05 18:03:47Z stefan $ + $Id: tables.c 700 2003-12-07 15:54:28Z edwin $ */ @@ -175,6 +175,32 @@ void utf_display (utf *u) fflush (stdout); } +/************************* function: log_utf ********************************* + + log utf symbol + +******************************************************************************/ + +void log_utf(utf *u) +{ + char buf[MAXLOGTEXT]; + utf_sprint(buf,u); + dolog(buf); +} + +/********************** function: log_plain_utf ****************************** + + log utf symbol (without printing "LOG: " and newline) + +******************************************************************************/ + +void log_plain_utf(utf *u) +{ + char buf[MAXLOGTEXT]; + utf_sprint(buf,u); + dolog_plain(buf); +} + /************************ function: utf_sprint ******************************* write utf symbol into c-string (debugging purposes) diff --git a/src/vm/tables.h b/src/vm/tables.h index de0ae2cae..c4304b550 100644 --- a/src/vm/tables.h +++ b/src/vm/tables.h @@ -26,7 +26,7 @@ Authors: Reinhard Grafl - $Id: tables.h 687 2003-12-04 22:29:54Z edwin $ + $Id: tables.h 700 2003-12-07 15:54:28Z edwin $ */ @@ -60,6 +60,10 @@ void utf_sprint(char *buffer, utf *u); void utf_fprint(FILE *file, utf *u); void utf_display(utf *u); +/* write utf symbol to logfile/stdout */ +void log_utf(utf *u); +void log_plain_utf(utf *u); + /* create new utf-symbol */ utf *utf_new(char *text, u2 length); utf *utf_new_char(char *text); diff --git a/tables.c b/tables.c index 315105a94..435fb8fba 100644 --- a/tables.c +++ b/tables.c @@ -35,7 +35,7 @@ - the heap - additional support functions - $Id: tables.c 689 2003-12-05 18:03:47Z stefan $ + $Id: tables.c 700 2003-12-07 15:54:28Z edwin $ */ @@ -175,6 +175,32 @@ void utf_display (utf *u) fflush (stdout); } +/************************* function: log_utf ********************************* + + log utf symbol + +******************************************************************************/ + +void log_utf(utf *u) +{ + char buf[MAXLOGTEXT]; + utf_sprint(buf,u); + dolog(buf); +} + +/********************** function: log_plain_utf ****************************** + + log utf symbol (without printing "LOG: " and newline) + +******************************************************************************/ + +void log_plain_utf(utf *u) +{ + char buf[MAXLOGTEXT]; + utf_sprint(buf,u); + dolog_plain(buf); +} + /************************ function: utf_sprint ******************************* write utf symbol into c-string (debugging purposes) diff --git a/tables.h b/tables.h index de0ae2cae..c4304b550 100644 --- a/tables.h +++ b/tables.h @@ -26,7 +26,7 @@ Authors: Reinhard Grafl - $Id: tables.h 687 2003-12-04 22:29:54Z edwin $ + $Id: tables.h 700 2003-12-07 15:54:28Z edwin $ */ @@ -60,6 +60,10 @@ void utf_sprint(char *buffer, utf *u); void utf_fprint(FILE *file, utf *u); void utf_display(utf *u); +/* write utf symbol to logfile/stdout */ +void log_utf(utf *u); +void log_plain_utf(utf *u); + /* create new utf-symbol */ utf *utf_new(char *text, u2 length); utf *utf_new_char(char *text); diff --git a/tests/Makefile.am b/tests/Makefile.am index bc8edb4d7..90ad2c8ce 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -11,11 +11,11 @@ check_DATA = checkall checkall: x.tst jctest.tst fp.tst fptest.tst TestArrayClasses.tst GCBench.tstrun %.tst: - ../cacao sun.tools.javac.Main $*.java - ../cacao $* >$*.thisoutput + ../cacao -log /dev/null sun.tools.javac.Main $*.java + ../cacao -log /dev/null $* >$*.thisoutput diff --brief $*.output $*.thisoutput rm -f $*.thisoutput %.tstrun: - ../cacao sun.tools.javac.Main $*.java - ../cacao $* + ../cacao -log /dev/null sun.tools.javac.Main $*.java + ../cacao -log /dev/null $* diff --git a/tests/kaffe/Makefile.am b/tests/kaffe/Makefile.am index c71644f11..82c376247 100644 --- a/tests/kaffe/Makefile.am +++ b/tests/kaffe/Makefile.am @@ -1,11 +1,7 @@ TESTS_ENVIRONMENT = $(SHELL) TestScript -ALWAYS_TESTS = \ -## Simple health check - HelloWorldApp.class.save \ -## Now test the compiler +ALWAYS_TESTS = HelloWorldApp.class.save \ HelloWorldApp.java \ -## Test ints, longs, floats and doubles TestIntLong.java \ TestFloatDouble.java \ DoubleCvt.java \ @@ -17,20 +13,15 @@ ALWAYS_TESTS = \ LongNeg.java \ FPUStack.java \ divtest.java \ -## Test strings Str.java \ Str2.java \ InternHog.java \ -## Test exceptions IndexTest.java \ StackDump.java \ -## Test threads tname.java \ ttest.java \ -## ThreadInterrupt.java ThreadState.java \ UncaughtException.java \ -## Misc tests ReflectInterfaces.java \ InnerTest.java \ SerialUID.java \ @@ -79,11 +70,8 @@ ALWAYS_TESTS = \ ReaderReadVoidTest.java \ PipeTest.java \ GetField.java \ -## simple test for Method.invoke ReflectInvoke.java \ -## simple test for InvocationTargetExceptions InvTarExcTest.java \ -## tests for ClassLoader SystemLoaderTest.java \ CLTest.java \ CLTestConc.java \ @@ -112,15 +100,11 @@ ALWAYS_TESTS = \ HashtableTest1.java \ ReflectMultiArray.java \ ExecTest.java \ -## Test various ways of stopping threads ThreadStop.java \ DeadThread.java \ tthrd1.java \ -## Test interrupting I/O -## This is kind of tricky, and Sun doesn't support it. SoInterrupt.java \ sysdepCallMethod.java \ -## This one is skipped unless you --enable-debug. TestNative.java XFAIL_TESTS = diff --git a/tests/kaffe/TestScript b/tests/kaffe/TestScript index c10515835..3a041fa87 100644 --- a/tests/kaffe/TestScript +++ b/tests/kaffe/TestScript @@ -10,8 +10,8 @@ # See the file "license.terms" for information on usage and redistribution # of this file. -JAVA="../../cacao -ieee" -JAVAC="../../cacao -ieee sun.tools.javac.Main" +JAVA="../../cacao -log /dev/null -ieee" +JAVAC="../../cacao -log /dev/null -ieee sun.tools.javac.Main" overallerror=0 error=0 diff --git a/toolbox/loging.c b/toolbox/loging.c index 279c56c33..ade18a212 100644 --- a/toolbox/loging.c +++ b/toolbox/loging.c @@ -27,7 +27,7 @@ Authors: Reinhard Grafl - $Id: loging.c 689 2003-12-05 18:03:47Z stefan $ + $Id: loging.c 700 2003-12-07 15:54:28Z edwin $ */ @@ -61,8 +61,7 @@ void log_init(char *fname) /*********************** Function: dolog ************************************ -Writes the contents of logtext to both the protocol file (if opened) and to -stdout. +Writes logtext to the protocol file (if opened) or to stdout. **************************************************************************/ @@ -86,6 +85,32 @@ void dolog(char *txt, ...) } +/******************** Function: dolog_plain ******************************* + +Writes logtext to the protocol file (if opened) or to stdout. + +**************************************************************************/ + +void dolog_plain(char *txt, ...) +{ + char logtext[MAXLOGTEXT]; + va_list ap; + + va_start(ap, txt); + vsprintf(logtext, txt, ap); + va_end(ap); + + if (logfile) { + fprintf(logfile, "%s",logtext); + fflush(logfile); + + } else { + fprintf(stdout,"%s",logtext); + fflush(stdout); + } +} + + /********************* Function: log_text ********************************/ void log_text(char *text) @@ -94,6 +119,14 @@ void log_text(char *text) } +/******************** Function: log_plain *******************************/ + +void log_plain(char *text) +{ + dolog_plain("%s", text); +} + + /********************* Function: log_cputime ****************************/ void log_cputime() diff --git a/toolbox/loging.h b/toolbox/loging.h index 356f08813..a6910f201 100644 --- a/toolbox/loging.h +++ b/toolbox/loging.h @@ -27,7 +27,7 @@ Authors: Reinhard Grafl - $Id: loging.h 689 2003-12-05 18:03:47Z stefan $ + $Id: loging.h 700 2003-12-07 15:54:28Z edwin $ */ @@ -43,10 +43,12 @@ void log_init(char *fname); void log_text(char *txt); +void log_plain(char *txt); /* same as log_text without "LOG: " and newline */ void log_cputime(); void dolog(char *txt, ...); +void dolog_plain(char *txt, ...); /* same as dolog without "LOG: " and newline */ void error(char *txt, ...); void panic(char *txt); -- 2.25.1