1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 378834: Add Debug JUnit tests to Hudson at eclipse.org

Change-Id: Ifce9db09c43de933bee93af4a6e817d6cca7d1de
Reviewed-on: https://git.eclipse.org/r/6018
Reviewed-by: Marc Khouzam <marc.khouzam@ericsson.com>
IP-Clean: Marc Khouzam <marc.khouzam@ericsson.com>
Tested-by: Marc Khouzam <marc.khouzam@ericsson.com>
This commit is contained in:
Marc Khouzam 2012-05-22 12:37:33 -04:00
parent c22a911b80
commit a686aafa3c
22 changed files with 267 additions and 9 deletions

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.eclipse.cdt</groupId>
<artifactId>cdt-parent</artifactId>
<version>8.1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<version>2.2.0-SNAPSHOT</version>
<artifactId>org.eclipse.cdt.tests.dsf.gdb</artifactId>
<packaging>eclipse-test-plugin</packaging>
<!-- Uncommenting this is useful when the repo is built first then you want to run tests on this plugin only -->
<!-- <repositories>
<repository>
<id>cdt.repo</id>
<url>file:/${basedir}/../../releng/org.eclipse.cdt.repo/target/repository</url>
<layout>p2</layout>
</repository>
</repositories>-->
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<useUIHarness>true</useUIHarness>
<argLine>-Xms256m -Xmx512m -XX:MaxPermSize=256M</argLine>
<includes>
<include>**/AutomatedSuite.*</include>
</includes>
<testFailureIgnore>true</testFailureIgnore>
<dependencies>
<dependency>
<artifactId>org.eclipse.platform.feature.group</artifactId>
<version>3.7.0</version>
<type>p2-installable-unit</type>
</dependency>
<dependency>
<artifactId>org.eclipse.cdt.feature.group</artifactId>
<version>8.1.0.${buildQualifier}</version>
<type>p2-installable-unit</type>
</dependency>
</dependencies>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -11,6 +11,7 @@
package org.eclipse.cdt.tests.dsf.gdb.framework;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.HashMap;
@ -39,6 +40,7 @@ import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.core.ILaunchManager;
import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestName;
@ -356,6 +358,22 @@ public class BaseTestCase {
protected void setGdbVersion() {
// Leave empty for the base class
}
/**
* This method will verify that the GDB binary is available, and if it is not, the test will
* be ignored. This method should be called by a Suite that specifies a specific GDB version.
*/
public static void ignoreIfGDBMissing() {
try {
// See if we can find GDB by actually running it.
String gdb = (String)globalLaunchAttributes.get(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME);
Process process = ProcessFactory.getFactory().exec(gdb + " --version");
process.destroy();
} catch (IOException e) {
// If we cannot run GDB, just ignore the test case.
Assume.assumeNoException(e);
}
}
/**
* In some tests we need to start a gdbserver session without starting gdbserver.

View file

@ -0,0 +1,30 @@
/*******************************************************************************
* Copyright (c) 2012 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:
* Marc Khouzam (Ericsson) - Initial Implementation
*******************************************************************************/
package org.eclipse.cdt.tests.dsf.gdb.tests;
import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_4.Suite_7_4;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
/**
* This suite runs all suites that are part of the tests
* automatically run with each CDT build.
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({
Suite_7_4.class,
// Can't run the Remote test just yet because they
// have the same names on the local tests, which is
// not handled by JUnit (https://bugs.eclipse.org/172256)
})
public class AutomatedSuite {}

View file

@ -11,6 +11,9 @@
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.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -43,5 +46,11 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_6_6 {}
public class Suite_6_6 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_6_6);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ 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.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -43,4 +46,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_6_6 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_6_6);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
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.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -43,4 +46,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_6_7 {}
public class Suite_6_7 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_6_7);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ 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.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -43,4 +46,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_6_7 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_6_7);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
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.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -43,4 +46,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_6_8 {}
public class Suite_6_8 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_6_8);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ 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.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -43,4 +46,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_6_8 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_6_8);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
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.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -46,4 +49,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_7_0 {}
public class Suite_7_0 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_0);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ 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.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -47,4 +50,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_7_0 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_0);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
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.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -46,4 +49,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_7_1 {}
public class Suite_7_1 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_1);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ 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.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -47,4 +50,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_7_1 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_1);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
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.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -46,4 +49,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_7_2 {}
public class Suite_7_2 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_2);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ 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.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -47,4 +50,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_7_2 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_2);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_3;
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.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -46,4 +49,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_7_3 {}
public class Suite_7_3 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_3);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_3;
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -47,4 +50,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_7_3 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_3);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_4;
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.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -46,4 +49,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_7_4 {}
public class Suite_7_4 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_4);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_4;
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -47,4 +50,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_7_4 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_4);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -11,6 +11,9 @@
package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5;
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.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -46,4 +49,10 @@ import org.junit.runners.Suite;
/* Add your test class here */
})
public class Suite_7_5 {}
public class Suite_7_5 {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_5);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -12,6 +12,9 @@ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5;
import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite;
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase;
import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -47,4 +50,9 @@ import org.junit.runners.Suite;
})
public class Suite_Remote_7_5 extends BaseRemoteSuite {
@BeforeClass
public static void beforeClassMethod() {
BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_5);
BaseTestCase.ignoreIfGDBMissing();
}
}

View file

@ -162,6 +162,7 @@
<module>codan/org.eclipse.cdt.codan.core.test</module>
<module>build/org.eclipse.cdt.managedbuilder.core.tests</module>
<module>build/org.eclipse.cdt.managedbuilder.ui.tests</module>
<module>dsf-gdb/org.eclipse.cdt.tests.dsf.gdb</module>
<module>build/org.eclipse.cdt.autotools.core</module>
<module>build/org.eclipse.cdt.autotools.docs</module>