mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
Bug 538282: Add GDB Hardware Debugging launch test
Change-Id: I308a6a8d128704f83a5fc220c7c168f56e4fc040 Signed-off-by: John Dallaway <john@dallaway.org.uk>
This commit is contained in:
parent
c4ec66adf4
commit
dd17366239
25 changed files with 516 additions and 66 deletions
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
|||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: GDB/MI reference application tests
|
||||
Bundle-SymbolicName: org.eclipse.cdt.tests.dsf.gdb;singleton:=true
|
||||
Bundle-Version: 2.2.0.qualifier
|
||||
Bundle-Version: 2.3.0.qualifier
|
||||
Bundle-Activator: org.eclipse.cdt.tests.dsf.gdb.launching.TestsPlugin
|
||||
Bundle-Vendor: Ericsson
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<version>2.2.0-SNAPSHOT</version>
|
||||
<version>2.3.0-SNAPSHOT</version>
|
||||
<artifactId>org.eclipse.cdt.tests.dsf.gdb</artifactId>
|
||||
<packaging>eclipse-test-plugin</packaging>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2007, 2016 Ericsson and others.
|
||||
* Copyright (c) 2007, 2018 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
|
||||
|
@ -8,6 +8,7 @@
|
|||
* Contributors:
|
||||
* Ericsson - Initial Implementation
|
||||
* Simon Marchi (Ericsson) - Add and use runningOnWindows().
|
||||
* John Dallaway - Generalize for launch config type (bug 538282)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.tests.dsf.gdb.framework;
|
||||
|
||||
|
@ -106,6 +107,7 @@ public class BaseTestCase {
|
|||
|
||||
public static final String ATTR_DEBUG_SERVER_NAME = TestsPlugin.PLUGIN_ID + ".DEBUG_SERVER_NAME";
|
||||
private static final String DEFAULT_EXEC_NAME = "GDBMIGenericTestApp.exe";
|
||||
private static final String LAUNCH_CONFIGURATION_TYPE_ID = "org.eclipse.cdt.tests.dsf.gdb.TestLaunch";
|
||||
|
||||
private static GdbLaunch fLaunch;
|
||||
|
||||
|
@ -480,7 +482,8 @@ public class BaseTestCase {
|
|||
launchGdbServer();
|
||||
|
||||
ILaunchManager launchMgr = DebugPlugin.getDefault().getLaunchManager();
|
||||
ILaunchConfigurationType lcType = launchMgr.getLaunchConfigurationType("org.eclipse.cdt.tests.dsf.gdb.TestLaunch");
|
||||
String lcTypeId = getLaunchConfigurationTypeId();
|
||||
ILaunchConfigurationType lcType = launchMgr.getLaunchConfigurationType(lcTypeId);
|
||||
assert lcType != null;
|
||||
|
||||
ILaunchConfigurationWorkingCopy lcWorkingCopy = lcType.newInstance(
|
||||
|
@ -732,6 +735,10 @@ public class BaseTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
protected String getLaunchConfigurationTypeId() {
|
||||
return LAUNCH_CONFIGURATION_TYPE_ID;
|
||||
}
|
||||
|
||||
protected static String doReadGdbVersion(String gdb) throws IOException {
|
||||
Process process = ProcessFactory.getFactory().exec(gdb + " --version");
|
||||
try {
|
||||
|
|
11
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/.classpath
Normal file
11
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/.classpath
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src">
|
||||
<attributes>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
|
||||
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
|
||||
<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/org.eclipse.cdt.debug.gdbjtag.core.tests/data" type="2"/> </resources>}"/>
|
||||
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.cdt.tests.dsf.gdb"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.cdt.tests.dsf.gdb/TestAppBuilder.xml}"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,clean"/>
|
||||
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/org.eclipse.cdt.debug.gdbjtag.core.tests}"/>
|
||||
<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
|
||||
</launchConfiguration>
|
38
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/.project
Normal file
38
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/.project
Normal file
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.eclipse.cdt.debug.gdbjtag.core.tests</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>LaunchConfigHandle</key>
|
||||
<value><project>/.externalToolBuilders/GDBJtagTestAppBuilder.launch</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,7 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
|
@ -0,0 +1,18 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: GDB Hardware Debugging Tests
|
||||
Bundle-SymbolicName: org.eclipse.cdt.debug.gdbjtag.core.tests;singleton:=true
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Activator: org.eclipse.cdt.debug.gdbjtag.core.tests.Activator
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.cdt.tests.dsf.gdb;bundle-version="2.3.0",
|
||||
org.junit,
|
||||
org.eclipse.cdt.debug.core,
|
||||
org.eclipse.cdt.dsf.gdb,
|
||||
org.eclipse.cdt.debug.gdbjtag.core;bundle-version="9.2.1",
|
||||
org.eclipse.cdt.dsf,
|
||||
org.eclipse.cdt.launch,
|
||||
org.eclipse.debug.core
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-Vendor: Eclipse CDT
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
24
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/about.html
Normal file
24
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/about.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head>
|
||||
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head><body lang="EN-US">
|
||||
<h2>About This Content</h2>
|
||||
|
||||
<p>May 14, 2008</p>
|
||||
<h3>License</h3>
|
||||
|
||||
<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
|
||||
indicated below, the Content is provided to you under the terms and conditions of the
|
||||
Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
|
||||
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
|
||||
For purposes of the EPL, "Program" will mean the Content.</p>
|
||||
|
||||
<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
|
||||
being redistributed by another party ("Redistributor") and different terms and conditions may
|
||||
apply to your use of any object code in the Content. Check the Redistributor's license that was
|
||||
provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
|
||||
indicated below, the terms and conditions of the EPL still apply to any source code in the Content
|
||||
and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,6 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.,\
|
||||
data/,\
|
||||
about.html
|
1
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/data/launch/.gitignore
vendored
Normal file
1
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/data/launch/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/bin
|
|
@ -0,0 +1,43 @@
|
|||
BINDIR = ../bin
|
||||
BUILDDIR = ../build
|
||||
SRC_C = $(wildcard *.c)
|
||||
SRC_CXX = $(wildcard *.cc)
|
||||
|
||||
# We rebuild everything whenever one of the headers change
|
||||
HEADERS = $(wildcard *.h)
|
||||
|
||||
# Use .exe extension so that files are named the same way in Linux and Windows.
|
||||
BINS = $(patsubst %.c,$(BINDIR)/%.exe,$(SRC_C)) $(patsubst %.cc,$(BINDIR)/%.exe,$(SRC_CXX))
|
||||
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -g3 -O0
|
||||
CXXFLAGS = -g3 -O0
|
||||
|
||||
# Don't try to use pthread on Windows
|
||||
# The OS environment variable exists on Windows
|
||||
ifneq ($(OS),Windows_NT)
|
||||
CFLAGS += -pthread
|
||||
CXXFLAGS += -pthread
|
||||
endif
|
||||
|
||||
MKDIR = mkdir -p
|
||||
RM = rm -f
|
||||
RMDIR = rmdir
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: $(BINS)
|
||||
|
||||
$(BINDIR):
|
||||
$(MKDIR) $@
|
||||
|
||||
$(BINDIR)/%.exe: %.c $(HEADERS) Makefile | $(BINDIR)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
$(BINDIR)/%.exe: %.cc $(HEADERS) Makefile | $(BINDIR)
|
||||
$(CXX) $(CXXFLAGS) -o $@ $<
|
||||
|
||||
clean:
|
||||
$(RM) -r $(BINDIR) $(BUILDDIR)
|
|
@ -0,0 +1,5 @@
|
|||
/* A minimal C++ file with a main() function */
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
return 0;
|
||||
}
|
93
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/pom.xml
Normal file
93
jtag/org.eclipse.cdt.debug.gdbjtag.core.tests/pom.xml
Normal file
|
@ -0,0 +1,93 @@
|
|||
<?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>9.6.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<artifactId>org.eclipse.cdt.debug.gdbjtag.core.tests</artifactId>
|
||||
<packaging>eclipse-test-plugin</packaging>
|
||||
|
||||
<properties>
|
||||
<dsf.gdb.tests.gdbPath>/shared/common/gdb/gdb-all/bin</dsf.gdb.tests.gdbPath>
|
||||
<dsf.gdb.tests.gdbTestSuite>AutomatedSuite.java</dsf.gdb.tests.gdbTestSuite>
|
||||
<dsf.gdb.tests.timeout.multiplier>1</dsf.gdb.tests.timeout.multiplier>
|
||||
<cdt.tests.dsf.gdb.versions>gdb.8.1</cdt.tests.dsf.gdb.versions>
|
||||
<skipTests>${dsf-gdb.skip.tests}</skipTests>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.8</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>clean</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<ant antfile="../../dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/TestAppBuilder.xml" target="clean"/>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<ant antfile="../../dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/TestAppBuilder.xml" target="makeTestApps"/>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-surefire-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<configuration>
|
||||
<useUIHarness>false</useUIHarness>
|
||||
<argLine>${tycho.testArgLine} ${base.ui.test.vmargs} -ea -Xms256m -Xmx512m -XX:MaxPermSize=256M -Dcdt.tests.dsf.gdb.path=${dsf.gdb.tests.gdbPath} -Ddsf.gdb.tests.timeout.multiplier=${dsf.gdb.tests.timeout.multiplier} -Dcdt.tests.dsf.gdb.versions=${cdt.tests.dsf.gdb.versions}</argLine>
|
||||
<appArgLine>-debug ./dsf.debug.options</appArgLine>
|
||||
<includes>
|
||||
<include>**/${dsf.gdb.tests.gdbTestSuite}</include>
|
||||
</includes>
|
||||
<testFailureIgnore>true</testFailureIgnore>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>target-platform-configuration</artifactId>
|
||||
<configuration>
|
||||
<dependency-resolution>
|
||||
<extraRequirements>
|
||||
<requirement>
|
||||
<type>eclipse-feature</type>
|
||||
<id>org.eclipse.platform</id>
|
||||
<versionRange>0.0.0</versionRange>
|
||||
</requirement>
|
||||
<requirement>
|
||||
<type>eclipse-feature</type>
|
||||
<id>org.eclipse.cdt</id>
|
||||
<versionRange>0.0.0</versionRange>
|
||||
</requirement>
|
||||
</extraRequirements>
|
||||
</dependency-resolution>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,41 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2007, 2018 Wind River Systems 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:
|
||||
* Wind River Systems - initial API and implementation
|
||||
* John Dallaway - GDB JTAG implementation (bug 538282)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.gdbjtag.core.tests;
|
||||
|
||||
import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
public class Activator implements BundleActivator {
|
||||
|
||||
private static BundleContext context;
|
||||
|
||||
static BundleContext getContext() {
|
||||
return context;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
|
||||
*/
|
||||
public void start(BundleContext bundleContext) throws Exception {
|
||||
Activator.context = bundleContext;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
|
||||
*/
|
||||
public void stop(BundleContext bundleContext) throws Exception {
|
||||
Activator.context = null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2012, 2018 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) - Base Implementation
|
||||
* John Dallaway - GDB JTAG Implementation (bug 538282)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.gdbjtag.core.tests.launch;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
|
||||
@RunWith(Suite.class)
|
||||
@Suite.SuiteClasses({
|
||||
SuiteGDBJtag.class,
|
||||
})
|
||||
|
||||
public class AutomatedSuite {
|
||||
// do nothing
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 Kichwa Coders 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:
|
||||
* Jonah Graham (Kichwa Coders) - base API and implementation
|
||||
* John Dallaway - GDB JTAG implementation (bug 538282)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.gdbjtag.core.tests.launch;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
||||
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||
import org.eclipse.cdt.debug.gdbjtag.core.IGDBJtagConstants;
|
||||
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
|
||||
import org.eclipse.cdt.dsf.gdb.launching.GdbLaunch;
|
||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseParametrizedTestCase;
|
||||
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
|
||||
@RunWith(Parameterized.class)
|
||||
@SuppressWarnings("restriction")
|
||||
public class GDBJtagLaunchTest extends BaseParametrizedTestCase {
|
||||
|
||||
private static final String TEST_LAUNCH_CONFIGURATION_TYPE_ID =
|
||||
"org.eclipse.cdt.debug.gdbjtag.launchConfigurationType"; //$NON-NLS-1$
|
||||
private static final String TEST_JTAG_DEVICE_ID =
|
||||
"org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.genericDevice"; //$NON-NLS-1$
|
||||
private static final String TEST_PROGRAM_NAME = EXEC_PATH + "Minimal.exe"; //$NON-NLS-1$
|
||||
|
||||
@Test
|
||||
public void testGdbJtagLaunch() {
|
||||
assertFalse("Launch should be running", getGDBLaunch().isTerminated());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getLaunchConfigurationTypeId() {
|
||||
return TEST_LAUNCH_CONFIGURATION_TYPE_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setLaunchAttributes() {
|
||||
super.setLaunchAttributes();
|
||||
setLaunchAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, TEST_PROGRAM_NAME);
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_USE_REMOTE_TARGET, remote);
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_JTAG_DEVICE_ID, TEST_JTAG_DEVICE_ID);
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_LOAD_IMAGE, false);
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_LOAD_SYMBOLS, remote);
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_SET_STOP_AT, true);
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_STOP_AT, ICDTLaunchConfigurationConstants.DEBUGGER_STOP_AT_MAIN_SYMBOL_DEFAULT);
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_SET_RESUME, remote);
|
||||
if (remote) {
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_SYMBOLS, true);
|
||||
} else {
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_INIT_COMMANDS, "file " + TEST_PROGRAM_NAME); //$NON-NLS-1$
|
||||
setLaunchAttribute(IGDBJtagConstants.ATTR_RUN_COMMANDS, "run"); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected GdbLaunch doLaunchInner() throws Exception {
|
||||
if (remote) {
|
||||
final ILaunchConfigurationWorkingCopy wc = getLaunchConfiguration().getWorkingCopy();
|
||||
// copy host from IGDBLaunchConfigurationConstants.ATTR_HOST to IGDBJtagConstants.ATTR_IP_ADDRESS
|
||||
final Object host = getLaunchAttribute(IGDBLaunchConfigurationConstants.ATTR_HOST);
|
||||
wc.setAttribute(IGDBJtagConstants.ATTR_IP_ADDRESS, host);
|
||||
// copy port from IGDBLaunchConfigurationConstants.ATTR_PORT to IGDBJtagConstants.ATTR_PORT_NUMBER
|
||||
final Object port = getLaunchAttribute(IGDBLaunchConfigurationConstants.ATTR_PORT);
|
||||
if (port instanceof String) {
|
||||
wc.setAttribute(IGDBJtagConstants.ATTR_PORT_NUMBER, Integer.valueOf((String) port));
|
||||
}
|
||||
wc.doSave();
|
||||
}
|
||||
return super.doLaunchInner();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 QNX Software System 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:
|
||||
* Elena Laskavaia (QNX Software System) - Base API and implementation
|
||||
* John Dallaway - GDB JTAG implementation (bug 538282)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.gdbjtag.core.tests.launch;
|
||||
|
||||
import org.eclipse.cdt.tests.dsf.gdb.framework.BaseParametrizedTestCase;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
|
||||
@SuppressWarnings("restriction")
|
||||
@RunWith(Suite.class)
|
||||
@Suite.SuiteClasses({
|
||||
GDBJtagLaunchTest.class
|
||||
})
|
||||
|
||||
public class SuiteGDBJtag {
|
||||
|
||||
@BeforeClass
|
||||
public static void before() {
|
||||
BaseParametrizedTestCase.resetGlobalState();
|
||||
}
|
||||
|
||||
}
|
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
|||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %pluginName
|
||||
Bundle-SymbolicName: org.eclipse.cdt.debug.gdbjtag.core;singleton:=true
|
||||
Bundle-Version: 9.2.0.qualifier
|
||||
Bundle-Version: 9.2.1.qualifier
|
||||
Bundle-Activator: org.eclipse.cdt.debug.gdbjtag.core.Activator
|
||||
Bundle-Localization: plugin
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2007, 2010 QNX Software Systems and others
|
||||
# Copyright (c) 2007, 2018 QNX Software Systems 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
|
||||
|
@ -8,6 +8,7 @@
|
|||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# IBM Corporation
|
||||
# John Dallaway - migrate device extensions to core plugin, bug 538282
|
||||
###############################################################################
|
||||
launchConfig.name=GDB Hardware Debugging
|
||||
pluginName=Eclipse GDB Hardware Debug Core Plug-in
|
||||
|
@ -15,6 +16,13 @@ providerName=Eclipse CDT
|
|||
|
||||
JTagDevice.name=JTAG Device
|
||||
|
||||
AbatronBDI2000.name=Abatron BDI2000
|
||||
MacraigorUsb2Demon.name=Macraigor USB2Demon
|
||||
GenericSerial.name=Generic Serial
|
||||
OpenOCDPipe.name=OpenOCD (via pipe)
|
||||
OpenOCDSocket.name=OpenOCD (via socket)
|
||||
Generic.name=Generic TCP/IP
|
||||
|
||||
launchDelegate.jtag.name=Legacy GDB Hardware Debugging
|
||||
launchDelegate.jtag.description=Jtag hardware debugging using the legacy debugger Framework (CDI).
|
||||
launchDelegate.jtagDsf.name=GDB (DSF) Hardware Debugging
|
||||
|
|
|
@ -23,5 +23,54 @@
|
|||
type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
|
||||
</launchDelegate>
|
||||
</extension>
|
||||
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.GenericDevice"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.genericDevice"
|
||||
name="%Generic.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.AbatronBDI2000"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.AbatronBDI2000"
|
||||
name="%AbatronBDI2000.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.MacraigorUsb2Demon"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.MacraigorUsb2Demon"
|
||||
name="%MacraigorUsb2Demon.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagConnectionImpl"
|
||||
default_connection="/dev/com1"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.GenericSerial"
|
||||
name="%GenericSerial.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDPipe"
|
||||
default_connection="| openocd --pipe"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCD"
|
||||
name="%OpenOCDPipe.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"
|
||||
name="%OpenOCDSocket.name">
|
||||
</device>
|
||||
</extension>
|
||||
</plugin>
|
||||
|
|
|
@ -2,14 +2,14 @@ Manifest-Version: 1.0
|
|||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %pluginName
|
||||
Bundle-SymbolicName: org.eclipse.cdt.debug.gdbjtag.ui;singleton:=true
|
||||
Bundle-Version: 8.1.0.qualifier
|
||||
Bundle-Version: 8.1.1.qualifier
|
||||
Bundle-Activator: org.eclipse.cdt.debug.gdbjtag.ui.Activator
|
||||
Bundle-Localization: plugin
|
||||
Require-Bundle: org.eclipse.ui,
|
||||
org.eclipse.core.runtime,
|
||||
org.eclipse.debug.ui,
|
||||
org.eclipse.cdt.launch,
|
||||
org.eclipse.cdt.debug.gdbjtag.core,
|
||||
org.eclipse.cdt.debug.gdbjtag.core;bundle-version="9.2.1",
|
||||
org.eclipse.core.variables,
|
||||
org.eclipse.ui.ide,
|
||||
org.eclipse.cdt.debug.core,
|
||||
|
|
|
@ -13,17 +13,11 @@
|
|||
# - API generalization to become transport-independent (e.g. to
|
||||
# allow connections via serial ports and pipes).
|
||||
# John Dallaway - OpenOCD extensions, bug 494059
|
||||
# John Dallaway - Migrate device extensions to core plugin, bug 538282
|
||||
###############################################################################
|
||||
pluginName=Eclipse GDB Hardware Debug UI Plug-in
|
||||
providerName=Eclipse CDT
|
||||
|
||||
AbatronBDI2000.name=Abatron BDI2000
|
||||
MacraigorUsb2Demon.name=Macraigor USB2Demon
|
||||
GenericSerial.name=Generic Serial
|
||||
OpenOCDPipe.name=OpenOCD (via pipe)
|
||||
OpenOCDSocket.name=OpenOCD (via socket)
|
||||
Generic.name=Generic TCP/IP
|
||||
|
||||
launchtab.cmaintab.name=Main
|
||||
launchtab.debuggertab.name=Debugger
|
||||
launchtab.startuptab.name=Startup
|
||||
|
|
|
@ -16,56 +16,6 @@
|
|||
id="org.eclipse.cdt.debug.gdbjtag.launchConfigurationTabGroup"
|
||||
type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType"/>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.GenericDevice"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.genericDevice"
|
||||
name="%Generic.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.AbatronBDI2000"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.AbatronBDI2000"
|
||||
name="%AbatronBDI2000.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.MacraigorUsb2Demon"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.MacraigorUsb2Demon"
|
||||
name="%MacraigorUsb2Demon.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagConnectionImpl"
|
||||
default_connection="/dev/com1"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.GenericSerial"
|
||||
name="%GenericSerial.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDPipe"
|
||||
default_connection="| openocd --pipe"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCD"
|
||||
name="%OpenOCDPipe.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.debug.gdbjtag.core.JTagDevice">
|
||||
<device
|
||||
class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"
|
||||
id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.OpenOCDSocket"
|
||||
name="%OpenOCDSocket.name">
|
||||
</device>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.debug.ui.launchConfigurationTabs">
|
||||
<tab
|
||||
|
|
1
pom.xml
1
pom.xml
|
@ -240,6 +240,7 @@
|
|||
<module>dsf-gdb/org.eclipse.cdt.dsf.gdb.tests</module>
|
||||
<module>dsf-gdb/org.eclipse.cdt.tests.dsf.gdb</module>
|
||||
<module>dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui.tests</module>
|
||||
<module>jtag/org.eclipse.cdt.debug.gdbjtag.core.tests</module>
|
||||
<module>lsp4e-cpp/org.eclipse.lsp4e.cpp.language.tests</module>
|
||||
<module>qt/org.eclipse.cdt.qt.ui.tests</module>
|
||||
<module>testsrunner/org.eclipse.cdt.testsrunner.tests</module>
|
||||
|
|
Loading…
Add table
Reference in a new issue