mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 335643: Session-less tests should be exercised as part of every suite
This commit is contained in:
parent
514a13bad4
commit
c1b4709436
15 changed files with 115 additions and 42 deletions
|
@ -1,30 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* Copyright (c) 2008, 2009 Ericsson and others.
|
|
||||||
* All rights reserved. This program and the accompanying materials
|
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Ericsson - Initial Implementation
|
|
||||||
*******************************************************************************/
|
|
||||||
package org.eclipse.cdt.dsf.mi.service.command.commands;
|
|
||||||
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.junit.runners.Suite;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This class is meant to be empty. It enables us to define
|
|
||||||
* the annotations which list all the different JUnit class we
|
|
||||||
* want to run. When creating a new test class, it should be
|
|
||||||
* added to the list below.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@RunWith(Suite.class)
|
|
||||||
@Suite.SuiteClasses({
|
|
||||||
TestMIBreakInsertCommand.class,
|
|
||||||
TestMICommandConstructCommand.class
|
|
||||||
/* Add your test class here */
|
|
||||||
})
|
|
||||||
|
|
||||||
public class AllTests {}
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008, 2009 Ericsson and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Ericsson - Initial Implementation
|
||||||
|
*******************************************************************************/
|
||||||
|
package org.eclipse.cdt.dsf.mi.service.command.commands;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.output.MIThreadTests;
|
||||||
|
import org.eclipse.cdt.tests.dsf.gdb.tests.OnceOnlySuite;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This suite executes all test classes that don't involve a debug session. As
|
||||||
|
* such, these tests need to run just once, and not once for each GDB version we
|
||||||
|
* support, not to mention remote vs local. We avoid lots of redundant runs by
|
||||||
|
* running these tests with our special runner (OnceOnlySuite)
|
||||||
|
*/
|
||||||
|
@RunWith(OnceOnlySuite.class)
|
||||||
|
@Suite.SuiteClasses({
|
||||||
|
TestMIBreakInsertCommand.class,
|
||||||
|
TestMICommandConstructCommand.class,
|
||||||
|
MIThreadTests.class
|
||||||
|
/* Add your test class here */
|
||||||
|
})
|
||||||
|
public class Suite_Sessionless_Tests {
|
||||||
|
// This class is meant to be empty. It enables us to define the annotations
|
||||||
|
// which list all the different JUnit class we want to run. When creating a
|
||||||
|
// new test class, it should be added to the list above.
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
package org.eclipse.cdt.tests.dsf.gdb.tests;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.junit.internal.builders.IgnoredClassRunner;
|
||||||
|
import org.junit.runner.Runner;
|
||||||
|
import org.junit.runners.Suite;
|
||||||
|
import org.junit.runners.model.InitializationError;
|
||||||
|
import org.junit.runners.model.RunnerBuilder;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This custom suite runner ensures that a class runs only once, no matter how
|
||||||
|
* many times it appears in a suite. Redundant appearances are possible with
|
||||||
|
* hierarchical suites. In some cases, this is intentional and desirable--i.e.,
|
||||||
|
* we want the same class to run multiple times (usually with some slight
|
||||||
|
* variation). However, in some cases, the redundant appearances are
|
||||||
|
* unintentional and unavoidable consequences of how the suites are defined and
|
||||||
|
* used. This runner caters to the latter scenario.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Thanks to Bill Venners and David Saff for suggesting this solution on the
|
||||||
|
* junit mailing list. See <a
|
||||||
|
* href="http://tech.groups.yahoo.com/group/junit/message/23208"
|
||||||
|
* >http://tech.groups.yahoo.com/group/junit/message/23208</a>
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("restriction")
|
||||||
|
public class OnceOnlySuite extends Suite {
|
||||||
|
private static Set<Class<?>> alreadySeen = new HashSet<Class<?>>();
|
||||||
|
|
||||||
|
public OnceOnlySuite(Class<?> testClass, final RunnerBuilder builder) throws InitializationError {
|
||||||
|
super(testClass, new RunnerBuilder() {
|
||||||
|
@Override
|
||||||
|
public Runner runnerForClass(Class<?> testClass) throws Throwable {
|
||||||
|
if (alreadySeen.contains(testClass)) {
|
||||||
|
return new IgnoredClassRunner(testClass);
|
||||||
|
}
|
||||||
|
alreadySeen.add(testClass);
|
||||||
|
return builder.runnerForClass(testClass);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_6;
|
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_6;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
|
@ -32,7 +33,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_6_6.class,
|
MIBreakpointsTest_6_6.class,
|
||||||
MICatchpointsTest_6_6.class,
|
MICatchpointsTest_6_6.class,
|
||||||
MIDisassemblyTest_6_6.class,
|
MIDisassemblyTest_6_6.class,
|
||||||
GDBProcessesTest_6_6.class
|
GDBProcessesTest_6_6.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_6;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||||
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -36,7 +37,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_6_6.class,
|
MIBreakpointsTest_6_6.class,
|
||||||
MICatchpointsTest_6_6.class,
|
MICatchpointsTest_6_6.class,
|
||||||
MIDisassemblyTest_6_6.class,
|
MIDisassemblyTest_6_6.class,
|
||||||
GDBProcessesTest_6_6.class
|
GDBProcessesTest_6_6.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_7;
|
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_7;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
|
@ -32,7 +33,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_6_7.class,
|
MIBreakpointsTest_6_7.class,
|
||||||
MICatchpointsTest_6_7.class,
|
MICatchpointsTest_6_7.class,
|
||||||
MIDisassemblyTest_6_7.class,
|
MIDisassemblyTest_6_7.class,
|
||||||
GDBProcessesTest_6_7.class
|
GDBProcessesTest_6_7.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_7;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||||
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -36,7 +37,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_6_7.class,
|
MIBreakpointsTest_6_7.class,
|
||||||
MICatchpointsTest_6_7.class,
|
MICatchpointsTest_6_7.class,
|
||||||
MIDisassemblyTest_6_7.class,
|
MIDisassemblyTest_6_7.class,
|
||||||
GDBProcessesTest_6_7.class
|
GDBProcessesTest_6_7.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_8;
|
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_8;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
|
@ -32,7 +33,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_6_8.class,
|
MIBreakpointsTest_6_8.class,
|
||||||
MICatchpointsTest_6_8.class,
|
MICatchpointsTest_6_8.class,
|
||||||
MIDisassemblyTest_6_8.class,
|
MIDisassemblyTest_6_8.class,
|
||||||
GDBProcessesTest_6_8.class
|
GDBProcessesTest_6_8.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_6_8;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||||
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -36,7 +37,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_6_8.class,
|
MIBreakpointsTest_6_8.class,
|
||||||
MICatchpointsTest_6_8.class,
|
MICatchpointsTest_6_8.class,
|
||||||
MIDisassemblyTest_6_8.class,
|
MIDisassemblyTest_6_8.class,
|
||||||
GDBProcessesTest_6_8.class
|
GDBProcessesTest_6_8.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_0;
|
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_0;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
|
@ -32,7 +33,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_7_0.class,
|
MIBreakpointsTest_7_0.class,
|
||||||
MICatchpointsTest_7_0.class,
|
MICatchpointsTest_7_0.class,
|
||||||
MIDisassemblyTest_7_0.class,
|
MIDisassemblyTest_7_0.class,
|
||||||
GDBProcessesTest_7_0.class
|
GDBProcessesTest_7_0.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_0;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||||
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -37,7 +38,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_7_0.class,
|
MIBreakpointsTest_7_0.class,
|
||||||
MICatchpointsTest_7_0.class,
|
MICatchpointsTest_7_0.class,
|
||||||
MIDisassemblyTest_7_0.class,
|
MIDisassemblyTest_7_0.class,
|
||||||
GDBProcessesTest_7_0.class
|
GDBProcessesTest_7_0.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_1;
|
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_1;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
|
@ -32,7 +33,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_7_1.class,
|
MIBreakpointsTest_7_1.class,
|
||||||
MICatchpointsTest_7_1.class,
|
MICatchpointsTest_7_1.class,
|
||||||
MIDisassemblyTest_7_1.class,
|
MIDisassemblyTest_7_1.class,
|
||||||
GDBProcessesTest_7_1.class
|
GDBProcessesTest_7_1.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_1;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||||
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -37,7 +38,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_7_1.class,
|
MIBreakpointsTest_7_1.class,
|
||||||
MICatchpointsTest_7_1.class,
|
MICatchpointsTest_7_1.class,
|
||||||
MIDisassemblyTest_7_1.class,
|
MIDisassemblyTest_7_1.class,
|
||||||
GDBProcessesTest_7_1.class
|
GDBProcessesTest_7_1.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_2;
|
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_2;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
|
@ -32,7 +33,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_7_2.class,
|
MIBreakpointsTest_7_2.class,
|
||||||
MICatchpointsTest_7_2.class,
|
MICatchpointsTest_7_2.class,
|
||||||
MIDisassemblyTest_7_2.class,
|
MIDisassemblyTest_7_2.class,
|
||||||
GDBProcessesTest_7_2.class
|
GDBProcessesTest_7_2.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_2;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||||
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
|
||||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -37,7 +38,8 @@ import org.junit.runners.Suite;
|
||||||
MIBreakpointsTest_7_2.class,
|
MIBreakpointsTest_7_2.class,
|
||||||
MICatchpointsTest_7_2.class,
|
MICatchpointsTest_7_2.class,
|
||||||
MIDisassemblyTest_7_2.class,
|
MIDisassemblyTest_7_2.class,
|
||||||
GDBProcessesTest_7_2.class
|
GDBProcessesTest_7_2.class,
|
||||||
|
Suite_Sessionless_Tests.class
|
||||||
/* Add your test class here */
|
/* Add your test class here */
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue