blob: 27017fafaa89f9e051d853a241fa309d5310148e [file] [log] [blame]
package org.eclipse.debug.jdi.tests;
/**********************************************************************
Copyright (c) 2000, 2002 IBM Corp. All rights reserved.
This file is made available under the terms of the Common Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v10.html
**********************************************************************/
import java.util.List;
import java.util.ListIterator;
import com.sun.jdi.ThreadGroupReference;
import com.sun.jdi.ThreadReference;
/**
* Tests for JDI com.sun.jdi.ThreadGroupReference
* and JDWP ThreadGroup command set.
*/
public class ThreadGroupReferenceTest extends AbstractJDITest {
private ThreadGroupReference fThreadGroup;
/**
* Creates a new test.
*/
public ThreadGroupReferenceTest() {
super();
}
/**
* Init the fields that are used by this test only.
*/
public void localSetUp() {
// Get value of "fThread"
ThreadReference thread = getThread();
// Get its threadgroup
fThreadGroup = thread.threadGroup();
}
/**
* Make sure the test leaves the VM in the same state it found it.
*/
public void localTearDown() {
// The test has resumed the thread group, and so the test thread, so suspend it
waitUntilReady();
}
/**
* Run all tests and output to standard output.
*/
public static void main(java.lang.String[] args) {
new ThreadGroupReferenceTest().runSuite(args);
}
/**
* Gets the name of the test case.
*/
public String getName() {
return "com.sun.jdi.ThreadGroupReference";
}
/**
* Test JDI name() and JDWP 'ThreadGroup - Get name'.
*/
public void testJDIName() {
assertEquals("1", "Test ThreadGroup", fThreadGroup.name());
}
/**
* Test JDI parent() and JDWP 'ThreadGroup - Get parent'.
*/
public void testJDIParent() {
ThreadGroupReference systemThreadGroup = fThreadGroup.parent();
assertNotNull("1", systemThreadGroup);
assertEquals("2", "main", systemThreadGroup.name());
// assertTrue("3", systemThreadGroup.parent() == null);
}
/**
* Test JDI suspend() and resume().
*/
public void testJDISuspendResume() {
fThreadGroup.suspend();
fThreadGroup.resume();
}
/**
* Test JDI threadGroups().
*/
public void testJDIThreadGroups() {
List threadGroups = fThreadGroup.threadGroups();
assertEquals("1", 0, threadGroups.size());
}
/**
* Test JDI threads() and JDWP 'ThreadGroup - Get children'.
*/
public void testJDIThreads() {
List threads = fThreadGroup.threads();
ListIterator iterator = threads.listIterator();
boolean isIncluded = false;
while (iterator.hasNext()) {
ThreadReference thread = (ThreadReference) iterator.next();
if (thread.name().equals("Test Thread")) {
isIncluded = true;
break;
}
}
assertTrue("1", isIncluded);
}
}