8207367: 10 vmTestbase/nsk/jdi tests timed out when running with jtreg
Reviewed-by: sspitsyn, cjplummer
This commit is contained in:
parent
fad1f059b0
commit
ba84c4bc0c
test/hotspot/jtreg/vmTestbase/nsk/jdi
ClassUnloadRequest
Event/_itself_
EventQueue
ThreadReference/suspend
VirtualMachine
28
test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassUnloadRequest/addClassExclusionFilter/exclfilter001.java
28
test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassUnloadRequest/addClassExclusionFilter/exclfilter001.java
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,14 +23,15 @@
|
||||
|
||||
package nsk.jdi.ClassUnloadRequest.addClassExclusionFilter;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jdi.*;
|
||||
|
||||
import com.sun.jdi.*;
|
||||
import com.sun.jdi.event.*;
|
||||
import com.sun.jdi.request.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Debugger requests <code>ClassUnloadEvent</code> and sets class filter by calling
|
||||
@ -64,7 +65,7 @@ public class exclfilter001 {
|
||||
private static int exitStatus;
|
||||
private static Log log;
|
||||
private static Debugee debugee;
|
||||
private static int eventWaitTime;
|
||||
private static long waitTime;
|
||||
|
||||
String[] patterns = {
|
||||
prefix + "Sub*",
|
||||
@ -88,7 +89,7 @@ public class exclfilter001 {
|
||||
exclfilter001 tstObj = new exclfilter001();
|
||||
|
||||
ArgumentHandler argHandler = new ArgumentHandler(argv);
|
||||
eventWaitTime = argHandler.getWaitTime() * 60000;
|
||||
waitTime = argHandler.getWaitTime();
|
||||
log = new Log(out, argHandler);
|
||||
|
||||
debugee = Debugee.prepareDebugee(argHandler, log, debugeeName);
|
||||
@ -121,7 +122,7 @@ public class exclfilter001 {
|
||||
debugee.sendSignal(SGNL_UNLOAD);
|
||||
debugee.receiveExpectedSignal(SGNL_READY);
|
||||
|
||||
receiveEvents(eventWaitTime, patterns[i]);
|
||||
receiveEvents(patterns[i]);
|
||||
|
||||
display("");
|
||||
debugee.getEventRequestManager().deleteEventRequest(request);
|
||||
@ -146,19 +147,20 @@ public class exclfilter001 {
|
||||
return request;
|
||||
}
|
||||
|
||||
private void receiveEvents(int waitTime, String pattern) {
|
||||
private void receiveEvents(String pattern) {
|
||||
EventSet eventSet = null;
|
||||
Event event;
|
||||
int totalTime = waitTime;
|
||||
long totalWaitTime = Utils.adjustTimeout(waitTime * 10000);
|
||||
long waitTimeout = Utils.adjustTimeout(waitTime * 1000);
|
||||
long begin, delta;
|
||||
int count = 0;
|
||||
boolean exit = false;
|
||||
|
||||
try {
|
||||
begin = System.currentTimeMillis();
|
||||
eventSet = debugee.VM().eventQueue().remove(totalTime);
|
||||
eventSet = debugee.VM().eventQueue().remove(waitTimeout);
|
||||
delta = System.currentTimeMillis() - begin;
|
||||
totalTime -= delta;
|
||||
totalWaitTime -= delta;
|
||||
while (eventSet != null) {
|
||||
EventIterator eventIterator = eventSet.eventIterator();
|
||||
while (eventIterator.hasNext()) {
|
||||
@ -174,14 +176,14 @@ public class exclfilter001 {
|
||||
throw new Failure("Unexpected VMDisconnectEvent received");
|
||||
}
|
||||
}
|
||||
if (totalTime <= 0 || exit) {
|
||||
if (totalWaitTime <= 0 || exit) {
|
||||
break;
|
||||
}
|
||||
debugee.resume();
|
||||
begin = System.currentTimeMillis();
|
||||
eventSet = debugee.VM().eventQueue().remove(totalTime);
|
||||
begin = System.currentTimeMillis();
|
||||
eventSet = debugee.VM().eventQueue().remove(waitTimeout);
|
||||
delta = System.currentTimeMillis() - begin;
|
||||
totalTime -= delta;
|
||||
totalWaitTime -= delta;
|
||||
}
|
||||
} catch(InterruptedException e) {
|
||||
throw new Failure(e);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.ClassUnloadRequest.addClassFilter;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jdi.*;
|
||||
|
||||
@ -63,7 +64,7 @@ public class filter001 {
|
||||
private static int exitStatus;
|
||||
private static Log log;
|
||||
private static Debugee debugee;
|
||||
private static int eventWaitTime;
|
||||
private static long waitTime;
|
||||
|
||||
String[] patterns = {
|
||||
prefix + "Sub*",
|
||||
@ -87,7 +88,8 @@ public class filter001 {
|
||||
filter001 tstObj = new filter001();
|
||||
|
||||
ArgumentHandler argHandler = new ArgumentHandler(argv);
|
||||
eventWaitTime = argHandler.getWaitTime() * 60000;
|
||||
waitTime = argHandler.getWaitTime();
|
||||
|
||||
log = new Log(out, argHandler);
|
||||
|
||||
debugee = Debugee.prepareDebugee(argHandler, log, debugeeName);
|
||||
@ -120,7 +122,7 @@ public class filter001 {
|
||||
debugee.sendSignal(SGNL_UNLOAD);
|
||||
debugee.receiveExpectedSignal(SGNL_READY);
|
||||
|
||||
receiveEvents(eventWaitTime, patterns[i]);
|
||||
receiveEvents(patterns[i]);
|
||||
|
||||
display("");
|
||||
debugee.getEventRequestManager().deleteEventRequest(request);
|
||||
@ -145,19 +147,20 @@ public class filter001 {
|
||||
return request;
|
||||
}
|
||||
|
||||
private void receiveEvents(int waitTime, String pattern) {
|
||||
private void receiveEvents(String pattern) {
|
||||
EventSet eventSet = null;
|
||||
Event event;
|
||||
int totalTime = waitTime;
|
||||
long totalWaitTime = Utils.adjustTimeout(waitTime * 10000);
|
||||
long waitTimeout = Utils.adjustTimeout(waitTime * 1000);
|
||||
long begin, delta;
|
||||
int count = 0;
|
||||
boolean exit = false;
|
||||
|
||||
try {
|
||||
begin = System.currentTimeMillis();
|
||||
eventSet = debugee.VM().eventQueue().remove(totalTime);
|
||||
eventSet = debugee.VM().eventQueue().remove(waitTimeout);
|
||||
delta = System.currentTimeMillis() - begin;
|
||||
totalTime -= delta;
|
||||
totalWaitTime -= delta;
|
||||
while (eventSet != null) {
|
||||
EventIterator eventIterator = eventSet.eventIterator();
|
||||
while (eventIterator.hasNext()) {
|
||||
@ -173,14 +176,14 @@ public class filter001 {
|
||||
throw new Failure("Unexpected VMDisconnectEvent received");
|
||||
}
|
||||
}
|
||||
if (totalTime <= 0 || exit) {
|
||||
if (totalWaitTime <= 0 || exit) {
|
||||
break;
|
||||
}
|
||||
debugee.resume();
|
||||
begin = System.currentTimeMillis();
|
||||
eventSet = debugee.VM().eventQueue().remove(totalTime);
|
||||
begin = System.currentTimeMillis();
|
||||
eventSet = debugee.VM().eventQueue().remove(waitTimeout);
|
||||
delta = System.currentTimeMillis() - begin;
|
||||
totalTime -= delta;
|
||||
totalWaitTime -= delta;
|
||||
}
|
||||
} catch(InterruptedException e) {
|
||||
throw new Failure(e);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -36,6 +36,7 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.io.*;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -234,7 +235,7 @@ public class event001 {
|
||||
|
||||
// wait for a requested event
|
||||
try {
|
||||
gotEvent.wait(argHandler.getWaitTime()*60000);
|
||||
gotEvent.wait(Utils.adjustTimeout(argHandler.getWaitTime()*1000));
|
||||
} catch (InterruptedException e) {
|
||||
log.complain("TEST FAILURE: waiting for a requested AccessWatchpointEvent #"
|
||||
+ i + ": caught " + e);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.EventQueue.remove;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -67,7 +68,7 @@ import java.io.*;
|
||||
* <BR>
|
||||
* The check includes two steps. <BR>
|
||||
* In first one, second thread waits for any incoming event from the <BR>
|
||||
* debugger which is sleeping for "WAITTIME*90 seconds"; hence, <BR>
|
||||
* debugger which is sleeping for some time; hence, <BR>
|
||||
* no events are expected to be received at the debugger end. <BR>
|
||||
* In second, second thread is interrupted, and the debugger waits for <BR>
|
||||
* a breakpoint event after the debuggee finishes sleeping. <BR>
|
||||
@ -130,7 +131,7 @@ public class remove004 {
|
||||
static Debugee debuggee;
|
||||
static ArgumentHandler argsHandler;
|
||||
|
||||
static int waitTime;
|
||||
static long waitTime;
|
||||
|
||||
static VirtualMachine vm = null;
|
||||
static EventRequestManager eventRManager = null;
|
||||
@ -140,6 +141,8 @@ public class remove004 {
|
||||
|
||||
static ReferenceType debuggeeClass = null;
|
||||
|
||||
static Value trueValue;
|
||||
|
||||
static int testExitCode = PASSED;
|
||||
|
||||
class JDITestRuntimeException extends RuntimeException {
|
||||
@ -156,7 +159,7 @@ public class remove004 {
|
||||
logHandler = new Log(out, argsHandler);
|
||||
Binder binder = new Binder(argsHandler, logHandler);
|
||||
|
||||
waitTime = argsHandler.getWaitTime() * 60000;
|
||||
waitTime = Utils.adjustTimeout(argsHandler.getWaitTime() * 1000);
|
||||
|
||||
try {
|
||||
log2("launching a debuggee :");
|
||||
@ -285,6 +288,8 @@ public class remove004 {
|
||||
if (!debuggeeClass.name().equals(debuggeeName))
|
||||
throw new JDITestRuntimeException("** Unexpected ClassName for ClassPrepareEvent **");
|
||||
|
||||
trueValue = debuggeeClass.getValue(debuggeeClass.fieldByName("BOOLEAN_TRUE_VALUE"));
|
||||
|
||||
log2(" received: ClassPrepareEvent for debuggeeClass");
|
||||
|
||||
String bPointMethod = "methodForCommunication";
|
||||
@ -356,11 +361,11 @@ public class remove004 {
|
||||
thread2.interrupt();
|
||||
|
||||
for (int i2 = 0; i2 < waitTime; ) {
|
||||
waitObj.wait(10000);
|
||||
waitObj.wait(1000);
|
||||
if (!thread2.isAlive()) {
|
||||
break;
|
||||
}
|
||||
i2 += 10000;
|
||||
i2 += 1000;
|
||||
}
|
||||
if (thread2.isAlive()) {
|
||||
log3("ERROR: thread2 is still alive");
|
||||
@ -508,9 +513,17 @@ public class remove004 {
|
||||
log2("-----t2: eventSet = eventQueue.remove(); expects: InterruptedException");
|
||||
eventSet = eventQueue.remove();
|
||||
throw new JDITestRuntimeException("** return from eventQueue.remove(); **");
|
||||
} catch ( InterruptedException e1) {
|
||||
} catch (InterruptedException e1) {
|
||||
log2("-----t2: InterruptedException");
|
||||
} catch ( Exception e ) {
|
||||
// Signal to debuggee to stop sleeping
|
||||
try {
|
||||
((ClassType) debuggeeClass).setValue(debuggeeClass.fieldByName("stopSleeping"),
|
||||
trueValue);
|
||||
} catch (InvalidTypeException | ClassNotLoadedException e) {
|
||||
log3("ERROR: -----t2: Exception : " + e);
|
||||
testExitCode = FAILED;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log3("ERROR: -----t2: Exception : " + e);
|
||||
testExitCode = FAILED;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.EventQueue.remove;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -63,6 +64,12 @@ public class remove004a {
|
||||
|
||||
static int lineForComm = 2;
|
||||
|
||||
// Used for communication between debugger and debuggee
|
||||
static volatile boolean stopSleeping = false;
|
||||
|
||||
// Used by debugger to set stopSleeping flag to true
|
||||
static final boolean BOOLEAN_TRUE_VALUE = true;
|
||||
|
||||
private static void methodForCommunication() {
|
||||
int i1 = instruction;
|
||||
int i2 = i1;
|
||||
@ -97,10 +104,12 @@ public class remove004a {
|
||||
log1("before: methodForCommunication();");
|
||||
methodForCommunication();
|
||||
log1("before: Thread.sleep");
|
||||
try {
|
||||
Thread.sleep(argHandler.getWaitTime()*90000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
Utils.waitForCondition(
|
||||
() -> {
|
||||
return stopSleeping;
|
||||
},
|
||||
Utils.adjustTimeout(argHandler.getWaitTime() * 10000),
|
||||
100);
|
||||
log1("after: Thread.sleep");
|
||||
break ;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.EventQueue.remove_l;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -30,7 +31,6 @@ import nsk.share.jdi.*;
|
||||
import com.sun.jdi.*;
|
||||
import com.sun.jdi.event.*;
|
||||
import com.sun.jdi.request.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
|
||||
@ -63,8 +63,8 @@ import java.io.*;
|
||||
* to be suspended and to inform the debugger with the event. <BR>
|
||||
* The case for testing consists of of two steps. <BR>
|
||||
* In the first one the first assertion is checked up on as follows: <BR>
|
||||
* the debugger sleeps for "WAITTIME * 90 sec"; <BR>
|
||||
* hence, no event is expected in the debugger within WAITTINE, and <BR>
|
||||
* the debugger sleeps for some time; <BR>
|
||||
* hence, no event is expected in the debugger within WAITTIME, and <BR>
|
||||
* debugger's method breakpointForCommunication() should get null. <BR>
|
||||
* After WAITTIME, the debugger just expects to get normal breakpoint event.<BR>
|
||||
*/
|
||||
@ -126,7 +126,7 @@ public class remove_l004 {
|
||||
static Debugee debuggee;
|
||||
static ArgumentHandler argsHandler;
|
||||
|
||||
static int waitTime;
|
||||
static long waitTime;
|
||||
|
||||
static VirtualMachine vm = null;
|
||||
static EventRequestManager eventRManager = null;
|
||||
@ -136,6 +136,8 @@ public class remove_l004 {
|
||||
|
||||
static ReferenceType debuggeeClass = null;
|
||||
|
||||
static Value trueValue;
|
||||
|
||||
static int testExitCode = PASSED;
|
||||
|
||||
class JDITestRuntimeException extends RuntimeException {
|
||||
@ -152,7 +154,7 @@ public class remove_l004 {
|
||||
logHandler = new Log(out, argsHandler);
|
||||
Binder binder = new Binder(argsHandler, logHandler);
|
||||
|
||||
waitTime = argsHandler.getWaitTime() * 60000;
|
||||
waitTime = Utils.adjustTimeout(argsHandler.getWaitTime() * 1000);
|
||||
|
||||
try {
|
||||
log2("launching a debuggee :");
|
||||
@ -281,6 +283,8 @@ public class remove_l004 {
|
||||
if (!debuggeeClass.name().equals(debuggeeName))
|
||||
throw new JDITestRuntimeException("** Unexpected ClassName for ClassPrepareEvent **");
|
||||
|
||||
trueValue = debuggeeClass.getValue(debuggeeClass.fieldByName("BOOLEAN_TRUE_VALUE"));
|
||||
|
||||
log2(" received: ClassPrepareEvent for debuggeeClass");
|
||||
|
||||
String bPointMethod = "methodForCommunication";
|
||||
@ -326,6 +330,11 @@ public class remove_l004 {
|
||||
testExitCode = FAILED;
|
||||
throw new JDITestRuntimeException("** unexpected Exception **");
|
||||
}
|
||||
|
||||
// Signal to debuggee to stop sleeping
|
||||
((ClassType) debuggeeClass).setValue(debuggeeClass.fieldByName("stopSleeping"),
|
||||
trueValue);
|
||||
|
||||
}
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.EventQueue.remove_l;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -63,6 +64,12 @@ public class remove_l004a {
|
||||
|
||||
static int lineForComm = 2;
|
||||
|
||||
// Used for communication between debugger and debuggee
|
||||
static volatile boolean stopSleeping = false;
|
||||
|
||||
// Used by debugger to set stopSleeping flag to true
|
||||
static final boolean BOOLEAN_TRUE_VALUE = true;
|
||||
|
||||
private static void methodForCommunication() {
|
||||
int i1 = instruction;
|
||||
int i2 = i1;
|
||||
@ -97,10 +104,12 @@ public class remove_l004a {
|
||||
log1("before: methodForCommunication();");
|
||||
methodForCommunication();
|
||||
log1("before: Thread.sleep");
|
||||
try {
|
||||
Thread.sleep(argHandler.getWaitTime()*90000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
Utils.waitForCondition(
|
||||
() -> {
|
||||
return stopSleeping;
|
||||
},
|
||||
Utils.adjustTimeout(argHandler.getWaitTime() * 10000),
|
||||
100);
|
||||
log1("after: Thread.sleep");
|
||||
break ;
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.ThreadReference.suspend;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -429,7 +430,8 @@ public class suspend001 {
|
||||
* It removes events from EventQueue until gets first BreakpointEvent.
|
||||
* To get next EventSet value, it uses the method
|
||||
* EventQueue.remove(int timeout)
|
||||
* The timeout argument passed to the method, is "waitTime*60000".
|
||||
* The timeout argument passed to the method, is "waitTime*1000" adjusted to
|
||||
* test.timeout.factor system property.
|
||||
* Note: the value of waitTime is set up with
|
||||
* the method ArgumentHandler.getWaitTime() at the beginning of the test.
|
||||
*
|
||||
@ -451,7 +453,7 @@ public class suspend001 {
|
||||
|
||||
log2(" new: eventSet = eventQueue.remove();");
|
||||
try {
|
||||
eventSet = eventQueue.remove (waitTime*60000);
|
||||
eventSet = eventQueue.remove(Utils.adjustTimeout(waitTime*1000));
|
||||
if (eventSet == null) {
|
||||
log2(":::::: timeout when waiting for a BreakpintEvent");
|
||||
// log3("ERROR: timeout for waiting for a BreakpintEvent");
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.VirtualMachine.dispose;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -272,29 +273,29 @@ public class dispose002 {
|
||||
if (expresult != returnCode0)
|
||||
break label1;
|
||||
|
||||
log2(" Thread.sleep(waitTime*60000);");
|
||||
try {
|
||||
Thread.sleep(waitTime*60000);
|
||||
} catch ( InterruptedException e ) {
|
||||
log3("ERROR: InterruptedException");
|
||||
expresult = returnCode1;
|
||||
break label1;
|
||||
}
|
||||
log2(" Waiting for thread2 is not alive");
|
||||
|
||||
log2("......sending to the debuggee: 'check_alive'");
|
||||
log2(" expected reply: 'not_alive'");
|
||||
pipe.println("check_alive");
|
||||
line = pipe.readln();
|
||||
if (line.equals("alive")) {
|
||||
log3("ERROR: thread2 is alive");
|
||||
expresult = returnCode1;
|
||||
} else if (line.equals("not_alive")) {
|
||||
log2(" thread2 is not alive");
|
||||
} else {
|
||||
log3("ERROR: unexpected reply: " + line);
|
||||
expresult = returnCode4;
|
||||
}
|
||||
Utils.waitForCondition(
|
||||
() -> {
|
||||
log2("......sending to the debuggee: 'check_alive'");
|
||||
log2(" expected reply: 'not_alive'");
|
||||
pipe.println("check_alive");
|
||||
String reply = pipe.readln();
|
||||
if (reply.equals("alive")) {
|
||||
log3("ERROR: thread2 is alive");
|
||||
return false;
|
||||
} else if (reply.equals("not_alive")) {
|
||||
log2(" thread2 is not alive");
|
||||
return true;
|
||||
} else {
|
||||
log3("ERROR: unexpected reply: " + reply);
|
||||
throw new RuntimeException("ERROR: unexpected reply: " + reply);
|
||||
}
|
||||
|
||||
},
|
||||
Utils.adjustTimeout(waitTime * 60000),
|
||||
1000);
|
||||
pipe.println("check_done");
|
||||
}
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -125,18 +125,26 @@ public class dispose002a {
|
||||
}
|
||||
}
|
||||
log1("mainThread is out of: synchronized (lockingObject)");
|
||||
|
||||
instruction = pipe.readln();
|
||||
if (!instruction.equals("check_alive")) {
|
||||
logErr("ERROR: unexpected instruction: " + instruction);
|
||||
exitCode = FAILED;
|
||||
} else {
|
||||
log1("checking on: thread2.isAlive");
|
||||
if (test_thread.isAlive()) {
|
||||
pipe.println("alive");
|
||||
test_thread.interrupt();
|
||||
while (true) {
|
||||
instruction = pipe.readln();
|
||||
if (instruction.equals("check_done")) {
|
||||
if (test_thread.isAlive()) {
|
||||
logErr("ERROR: thread thread2 is still alive");
|
||||
exitCode = FAILED;
|
||||
}
|
||||
break;
|
||||
} else if (instruction.equals("check_alive")) {
|
||||
log1("checking on: thread2.isAlive");
|
||||
if (test_thread.isAlive()) {
|
||||
pipe.println("alive");
|
||||
test_thread.interrupt();
|
||||
} else {
|
||||
pipe.println("not_alive");
|
||||
}
|
||||
} else {
|
||||
pipe.println("not_alive");
|
||||
logErr("ERROR: unexpected instruction: " + instruction);
|
||||
exitCode = FAILED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.VirtualMachine.dispose;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -179,6 +180,7 @@ public class dispose003 {
|
||||
|
||||
int expresult = returnCode0;
|
||||
|
||||
|
||||
String threadName = "testedThread";
|
||||
|
||||
List allThreads = null;
|
||||
@ -236,28 +238,28 @@ public class dispose003 {
|
||||
if (expresult != returnCode0)
|
||||
break label1;
|
||||
|
||||
log2(" Thread.sleep(waitTime*60000);");
|
||||
try {
|
||||
Thread.sleep(waitTime*60000);
|
||||
} catch ( InterruptedException e ) {
|
||||
log3("ERROR: InterruptedException");
|
||||
expresult = returnCode1;
|
||||
break label1;
|
||||
}
|
||||
log2(" Waiting for thread2 is not alive");
|
||||
|
||||
log2("......sending to the debuggee: 'check_alive'");
|
||||
log2(" expected reply: 'not_alive'");
|
||||
pipe.println("check_alive");
|
||||
line = pipe.readln();
|
||||
if (line.equals("alive")) {
|
||||
log3("ERROR: thread2 is alive");
|
||||
expresult = returnCode1;
|
||||
} else if (line.equals("not_alive")) {
|
||||
log2(" thread2 is not alive");
|
||||
} else {
|
||||
log3("ERROR: unexpected reply: " + line);
|
||||
expresult = returnCode4;
|
||||
}
|
||||
Utils.waitForCondition(
|
||||
() -> {
|
||||
log2("......sending to the debuggee: 'check_alive'");
|
||||
log2(" expected reply: 'not_alive'");
|
||||
pipe.println("check_alive");
|
||||
String reply = pipe.readln();
|
||||
if (reply.equals("alive")) {
|
||||
log3("ERROR: thread2 is alive");
|
||||
return false;
|
||||
} else if (reply.equals("not_alive")) {
|
||||
log2(" thread2 is not alive");
|
||||
return true;
|
||||
} else {
|
||||
log3("ERROR: unexpected reply: " + reply);
|
||||
throw new RuntimeException("ERROR: unexpected reply: " + reply);
|
||||
}
|
||||
},
|
||||
Utils.adjustTimeout(waitTime * 60000),
|
||||
1000);
|
||||
pipe.println("check_done");
|
||||
|
||||
}
|
||||
|
||||
@ -287,4 +289,6 @@ public class dispose003 {
|
||||
}
|
||||
return testExitCode;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -126,17 +126,26 @@ public class dispose003a {
|
||||
}
|
||||
log1("mainThread is out of: synchronized (lockingObject)");
|
||||
|
||||
instruction = pipe.readln();
|
||||
if (!instruction.equals("check_alive")) {
|
||||
logErr("ERROR: unexpected instruction: " + instruction);
|
||||
exitCode = FAILED;
|
||||
} else {
|
||||
log1("checking on: thread2.isAlive");
|
||||
if (test_thread.isAlive()) {
|
||||
test_thread.resume();
|
||||
pipe.println("alive");
|
||||
while (true) {
|
||||
instruction = pipe.readln();
|
||||
if (instruction.equals("check_done")) {
|
||||
if (test_thread.isAlive()) {
|
||||
logErr("ERROR: thread2 thread is still alive");
|
||||
exitCode = FAILED;
|
||||
}
|
||||
break;
|
||||
} else if (instruction.equals("check_alive")) {
|
||||
log1("checking on: thread2.isAlive");
|
||||
if (test_thread.isAlive()) {
|
||||
test_thread.resume();
|
||||
pipe.println("alive");
|
||||
} else {
|
||||
pipe.println("not_alive");
|
||||
}
|
||||
} else {
|
||||
pipe.println("not_alive");
|
||||
logErr("ERROR: unexpected instruction: " + instruction);
|
||||
exitCode = FAILED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.VirtualMachine.dispose;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -261,29 +262,30 @@ public class dispose004 {
|
||||
if (expresult != returnCode0)
|
||||
break label1;
|
||||
|
||||
log2(" Thread.sleep(waitTime*60000);");
|
||||
try {
|
||||
Thread.sleep(waitTime*60000);
|
||||
} catch ( InterruptedException e ) {
|
||||
log3("ERROR: InterruptedException");
|
||||
expresult = returnCode1;
|
||||
break label1;
|
||||
}
|
||||
log2(" Waiting for thread2 is not alive");
|
||||
|
||||
log2("......sending to the debuggee: 'check_alive'");
|
||||
log2(" expected reply: 'not_alive'");
|
||||
pipe.println("check_alive");
|
||||
line = pipe.readln();
|
||||
if (line.equals("alive")) {
|
||||
log3("ERROR: thread2 is alive");
|
||||
expresult = returnCode1;
|
||||
} else if (line.equals("not_alive")) {
|
||||
log2(" thread2 is not alive");
|
||||
} else {
|
||||
log3("ERROR: unexpected reply: " + line);
|
||||
expresult = returnCode4;
|
||||
}
|
||||
Utils.waitForCondition(
|
||||
() -> {
|
||||
log2("......sending to the debuggee: 'check_alive'");
|
||||
log2(" expected reply: 'not_alive'");
|
||||
pipe.println("check_alive");
|
||||
String reply = pipe.readln();
|
||||
if (reply.equals("alive")) {
|
||||
log3("ERROR: thread2 is alive");
|
||||
return false;
|
||||
} else if (reply.equals("not_alive")) {
|
||||
log2(" thread2 is not alive");
|
||||
return true;
|
||||
} else {
|
||||
log3("ERROR: unexpected reply: " + reply);
|
||||
throw new RuntimeException("ERROR: unexpected reply: " + reply);
|
||||
}
|
||||
|
||||
},
|
||||
Utils.adjustTimeout(waitTime * 60000),
|
||||
1000);
|
||||
|
||||
pipe.println("check_done");
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -127,18 +127,26 @@ public class dispose004a {
|
||||
}
|
||||
}
|
||||
log1("mainThread is out of: synchronized (lockingObject)");
|
||||
|
||||
instruction = pipe.readln();
|
||||
if (!instruction.equals("check_alive")) {
|
||||
logErr("ERROR: unexpected instruction: " + instruction);
|
||||
exitCode = FAILED;
|
||||
} else {
|
||||
log1("checking on: thread2.isAlive");
|
||||
if (test_thread.isAlive()) {
|
||||
test_thread.resume();
|
||||
pipe.println("alive");
|
||||
while (true) {
|
||||
instruction = pipe.readln();
|
||||
if (instruction.equals("check_done")) {
|
||||
if (test_thread.isAlive()) {
|
||||
logErr("thread thread2 is still alive");
|
||||
exitCode = FAILED;
|
||||
}
|
||||
break;
|
||||
} else if (instruction.equals("check_alive")) {
|
||||
log1("checking on: thread2.isAlive");
|
||||
if (test_thread.isAlive()) {
|
||||
test_thread.resume();
|
||||
pipe.println("alive");
|
||||
} else {
|
||||
pipe.println("not_alive");
|
||||
}
|
||||
} else {
|
||||
pipe.println("not_alive");
|
||||
logErr("ERROR: unexpected instruction: " + instruction);
|
||||
exitCode = FAILED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
package nsk.jdi.VirtualMachine.suspend;
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
import nsk.share.*;
|
||||
import nsk.share.jpda.*;
|
||||
import nsk.share.jdi.*;
|
||||
@ -318,9 +319,10 @@ public class suspend001 {
|
||||
eventSet1.resume();
|
||||
eventSet.resume();
|
||||
|
||||
log2(" before: Thread.sleep(waitTime*60000);");
|
||||
log2(" before: Thread.sleep(waitTime*1000);");
|
||||
|
||||
try {
|
||||
Thread.sleep(waitTime*60000);
|
||||
Thread.sleep(Utils.adjustTimeout(waitTime*1000));
|
||||
} catch ( InterruptedException e ) {
|
||||
log3("ERROR: InterruptedException");
|
||||
expresult = returnCode1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user