libjava.exp (test_libjava_from_javac): Strange quoting trick for `.class' link case.

* lib/libjava.exp (test_libjava_from_javac): Strange quoting trick
	for `.class' link case.
	(bytecompile_file): Change directory outside of `catch'.

	* libjava.lang/Thread_1.java: Removed.
	* libjava.lang/Thread_1.out: Likewise.

	* libjava.lang/N19990310_4.xfail: New file.
	* libjava.lang/stub.xfail: Added new failure modes.
	* libjava.lang/stringconst.xfail: New file.
	* libjava.lang/PR162.xfail: New file.
	* libjava.lang/Final.xfail: Removed.

From-SVN: r38311
This commit is contained in:
Tom Tromey 2000-12-16 19:02:54 +00:00 committed by Tom Tromey
parent 2bed339138
commit 68c7dea8ed
8 changed files with 30 additions and 201 deletions

View File

@ -1,3 +1,18 @@
2000-12-16 Tom Tromey <tromey@redhat.com>
* lib/libjava.exp (test_libjava_from_javac): Strange quoting trick
for `.class' link case.
(bytecompile_file): Change directory outside of `catch'.
* libjava.lang/Thread_1.java: Removed.
* libjava.lang/Thread_1.out: Likewise.
* libjava.lang/N19990310_4.xfail: New file.
* libjava.lang/stub.xfail: Added new failure modes.
* libjava.lang/stringconst.xfail: New file.
* libjava.lang/PR162.xfail: New file.
* libjava.lang/Final.xfail: Removed.
2000-12-15 Tom Tromey <tromey@redhat.com>
* libjava.lang/instinit.out: Removed erroneous line.

View File

@ -18,8 +18,6 @@ proc libjava_tcompile {source destfile type options} {
# This strange-looking expression really does quote the `$'.
regsub -all -- {\$} $source {\$} source
regsub -all -- {\$} $destfile {\$} destfile
verbose "Now source = $source"
verbose "Now destfile = $destfile"
return [target_compile $source $destfile $type $options]
}
@ -88,19 +86,17 @@ proc bytecompile_file { file objdir {classpath {}} } {
if {$classpath != ""} then {
set env(CLASSPATH) $classpath
}
set here [pwd]
cd $dirname
if {[catch {
set here [pwd]
cd $dirname
set q [eval exec "$javac [list $file] -d $objdir 2>@ stdout"]
cd $here
# "return" a result
set q $q
} msg]} then {
verbose "couldn't compile $file: $msg"
set r 0
} else {
set r 1
}
cd $here
return $r
}
@ -581,8 +577,15 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e
}
}
} else {
# This is no evil: we de-listify CLASS_FILES so that we can
# turn around and quote the `$' in it for the shell. I really
# hate DejaGNU. It is so !@#$!@# unpredictable.
set hack ""
foreach stupid $class_files {
set hack "$hack $stupid"
}
set x [prune_warnings \
[libjava_tcompile $class_files "$executable" $type $args]]
[libjava_tcompile $hack "$executable" $type $args]]
}
if {[info exists opts(xfail-byte)]} {
setup_xfail *-*-*

View File

@ -0,0 +1 @@
xfail-output

View File

@ -1,184 +0,0 @@
// Various thread tests.
public class Thread_1 extends Thread
{
// The group for the workers.
static ThreadGroup subgroup;
// Which piece of test code to try.
static int test_case;
// Names of the tests.
static final int JOIN_GOOD = 0;
static final int JOIN_TIMEOUT = 1;
static final int JOIN_INTERRUPTED = 2;
static final int THREAD_EXIT = 3;
// True if this is normal; false if daemon.
boolean normal;
// The other thread in the test.
Thread_1 other;
// True when the thread has entered run().
boolean started;
public void run ()
{
try
{
if (normal)
{
System.out.println ("test " + test_case);
// Tell the main thread to start the daemon thread.
synchronized (this)
{
started = true;
notify ();
}
// Now wait for daemon to start.
synchronized (other)
{
while (! other.started)
other.wait ();
}
switch (test_case)
{
case JOIN_GOOD:
other.join ();
System.out.println ("joined");
break;
case JOIN_TIMEOUT:
other.join (10);
System.out.println (other.isAlive());
other.join ();
break;
case JOIN_INTERRUPTED:
other.join ();
System.out.println ("joined");
break;
case THREAD_EXIT:
// Nothing.
break;
default:
System.out.println ("failure");
break;
}
}
else
{
// Let the normal thread start first.
synchronized (other)
{
while (! other.started)
other.wait();
}
// Tell normal thread that we've started.
synchronized (this)
{
started = true;
notify ();
}
switch (test_case)
{
case JOIN_GOOD:
System.out.println ("daemon done");
break;
case JOIN_TIMEOUT:
sleep (50);
break;
case JOIN_INTERRUPTED:
other.interrupt ();
break;
case THREAD_EXIT:
// Wait for a while. However, don't wait indefinitely
// -- we want this thread to terminate so that the
// process won't hang if there is a bug.
sleep (10000);
System.out.println ("daemon still alive");
break;
default:
System.out.println ("failure");
break;
}
}
}
catch (InterruptedException e)
{
System.out.println ("interrupted");
}
}
public void setOther (Thread_1 x)
{
other = x;
}
Thread_1 (String name, boolean x)
{
super (subgroup, name);
normal = x;
started = false;
setDaemon (! normal);
}
// Run a single test.
static Thread_1 doit (int what)
{
// FIXME: we used to just use the same threads each time. That
// didn't work -- must debug.
Thread_1 dt = new Thread_1 ("daemon", false);
Thread_1 nt = new Thread_1 ("normal", true);
dt.setOther(nt);
nt.setOther(dt);
test_case = what;
try
{
nt.start();
dt.start();
// Don't wait for the threads if we're doing the exit test.
if (what != THREAD_EXIT)
{
nt.join ();
dt.join ();
}
}
catch (InterruptedException e)
{
System.out.println ("caught bad exception");
}
return dt;
}
public static void main (String[] args)
{
subgroup = new ThreadGroup ("sub");
doit (JOIN_GOOD);
System.out.println ("active count = " + subgroup.activeCount ());
Thread_1 dt = doit (JOIN_TIMEOUT);
// Make sure that joining a dead thread works.
System.out.println ("still alive: " + dt.isAlive ());
try
{
dt.join ();
}
catch (InterruptedException e)
{
System.out.println ("exception caught");
}
doit (JOIN_INTERRUPTED);
// Note: this test has a race conditoin. So we don't run it any
// more.
// This test must come last.
// doit (THREAD_EXIT);
}
}

View File

@ -1,9 +0,0 @@
test 0
daemon done
joined
active count = 0
test 1
true
still alive: false
test 2
interrupted

View File

@ -0,0 +1 @@
xfail-output

View File

@ -1 +1,3 @@
xfail-byte
xfail-gcj
xfail-gcjC