diff options
-rw-r--r-- | target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/CoreTestCase.java | 11 | ||||
-rw-r--r-- | tests/plugins/org.eclipse.tcf.debug.test/build.properties | 3 | ||||
-rw-r--r-- | tests/plugins/org.eclipse.tcf.debug.test/data/agent/linux/x86_64/agent | bin | 0 -> 1504377 bytes | |||
-rw-r--r-- | tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86/agent.exe | bin | 0 -> 1083904 bytes | |||
-rw-r--r-- | tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86_64/agent.exe | bin | 0 -> 1439232 bytes | |||
-rw-r--r-- | tests/plugins/org.eclipse.tcf.debug.test/src/org/eclipse/tcf/debug/test/AbstractTcfUITest.java | 83 | ||||
-rw-r--r-- | tests/pom-tests.xml | 45 |
7 files changed, 38 insertions, 104 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/CoreTestCase.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/CoreTestCase.java index c6d42520d..677459f54 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/CoreTestCase.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/CoreTestCase.java @@ -656,7 +656,7 @@ public class CoreTestCase extends TestCase { IPath root = null;
if (path != null) {
- Bundle bundle = UIPlugin.getDefault().getBundle();
+ Bundle bundle = getTestBundle();
if (bundle != null) {
IPath relative = new Path ("data").append(path); //$NON-NLS-1$
if (hostSpecific) relative = relative.append(Platform.getOS());
@@ -676,4 +676,13 @@ public class CoreTestCase extends TestCase { return root;
}
+
+ /**
+ * Returns the test bundle.
+ *
+ * @return The test bundle.
+ */
+ protected Bundle getTestBundle() {
+ return UIPlugin.getDefault().getBundle();
+ }
}
diff --git a/tests/plugins/org.eclipse.tcf.debug.test/build.properties b/tests/plugins/org.eclipse.tcf.debug.test/build.properties index c1cf578c2..ee3cf13cd 100644 --- a/tests/plugins/org.eclipse.tcf.debug.test/build.properties +++ b/tests/plugins/org.eclipse.tcf.debug.test/build.properties @@ -11,4 +11,5 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ - . + .,\ + data/ diff --git a/tests/plugins/org.eclipse.tcf.debug.test/data/agent/linux/x86_64/agent b/tests/plugins/org.eclipse.tcf.debug.test/data/agent/linux/x86_64/agent Binary files differnew file mode 100644 index 000000000..e51c6c119 --- /dev/null +++ b/tests/plugins/org.eclipse.tcf.debug.test/data/agent/linux/x86_64/agent diff --git a/tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86/agent.exe b/tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86/agent.exe Binary files differnew file mode 100644 index 000000000..694fafb6b --- /dev/null +++ b/tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86/agent.exe diff --git a/tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86_64/agent.exe b/tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86_64/agent.exe Binary files differnew file mode 100644 index 000000000..801cedd1e --- /dev/null +++ b/tests/plugins/org.eclipse.tcf.debug.test/data/agent/win32/x86_64/agent.exe diff --git a/tests/plugins/org.eclipse.tcf.debug.test/src/org/eclipse/tcf/debug/test/AbstractTcfUITest.java b/tests/plugins/org.eclipse.tcf.debug.test/src/org/eclipse/tcf/debug/test/AbstractTcfUITest.java index da67a5826..7ece8b994 100644 --- a/tests/plugins/org.eclipse.tcf.debug.test/src/org/eclipse/tcf/debug/test/AbstractTcfUITest.java +++ b/tests/plugins/org.eclipse.tcf.debug.test/src/org/eclipse/tcf/debug/test/AbstractTcfUITest.java @@ -15,7 +15,6 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -50,7 +49,6 @@ import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.viewers.TreePath; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; -import org.eclipse.tcf.core.TransientPeer; import org.eclipse.tcf.debug.test.services.BreakpointsCM; import org.eclipse.tcf.debug.test.services.DiagnosticsCM; import org.eclipse.tcf.debug.test.services.LineNumbersCM; @@ -88,6 +86,7 @@ import org.eclipse.tcf.services.ISymbols; import org.eclipse.tcf.te.tests.interfaces.IConfigurationProperties; import org.eclipse.tcf.te.tests.tcf.TcfTestCase; import org.junit.Assert; +import org.osgi.framework.Bundle; /** * Base test for validating TCF Debugger UI. @@ -138,45 +137,12 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp protected String fThreadId = ""; protected RunControlContext fThreadCtx; - private static class RemotePeer extends TransientPeer { - private final ArrayList<Map<String,String>> attrs; - - public RemotePeer(ArrayList<Map<String,String>> attrs) { - super(attrs.get(0)); - this.attrs = attrs; - } - - @Override - public IChannel openChannel() { - assert Protocol.isDispatchThread(); - IChannel c = super.openChannel(); - for (int i = 1; i < attrs.size(); i++) c.redirect(attrs.get(i)); - return c; - } - } - - private static IPeer getPeer(String[] arr) { - ArrayList<Map<String,String>> l = new ArrayList<Map<String,String>>(); - for (String s : arr) { - Map<String,String> map = new HashMap<String,String>(); - int len = s.length(); - int i = 0; - while (i < len) { - int i0 = i; - while (i < len && s.charAt(i) != '=' && s.charAt(i) != 0) i++; - int i1 = i; - if (i < len && s.charAt(i) == '=') i++; - int i2 = i; - while (i < len && s.charAt(i) != ':') i++; - int i3 = i; - if (i < len && s.charAt(i) == ':') i++; - String key = s.substring(i0, i1); - String val = s.substring(i2, i3); - map.put(key, val); - } - l.add(map); - } - return new RemotePeer(l); + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tests.CoreTestCase#getTestBundle() + */ + @Override + protected Bundle getTestBundle() { + return Activator.getDefault().getBundle(); } /* (non-Javadoc) @@ -184,14 +150,14 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp */ @Override protected void initialize() { - // Turn off the automatic perspective switch and debug view activation to avoid - // jface views from interfering with the virtual viewers used in tests. + // Turn off the automatic perspective switch and debug view activation to avoid + // JFace views from interfering with the virtual viewers used in tests. IPreferenceStore prefs = DebugUITools.getPreferenceStore(); prefs.setValue(IInternalDebugUIConstants.PREF_ACTIVATE_DEBUG_VIEW, true); prefs.setValue(IInternalDebugUIConstants.PREF_SWITCH_PERSPECTIVE_ON_SUSPEND, MessageDialogWithToggle.NEVER); super.initialize(); - // Do not activate debug view or debug perspective, also to avoid interferring + // Do not activate debug view or debug perspective, also to avoid interfering // with tests' virtual viewers. setProperty(IConfigurationProperties.TARGET_PERSPECTIVE, "org.eclipse.cdt.ui.CPerspective"); //$NON-NLS-1$ setProperty(IConfigurationProperties.TARGET_VIEW, "org.eclipse.cdt.ui.CView"); //$NON-NLS-1$ @@ -601,15 +567,16 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp } private boolean runToTestEntry(final String testFunc) throws InterruptedException, ExecutionException { - return new Transaction<Boolean>() { + return new Transaction<Boolean>() { Object fWaitForResumeKey; Object fWaitForSuspendKey; boolean fSuspendEventReceived = false; + @Override protected Boolean process() throws Transaction.InvalidCacheException ,ExecutionException { ISymbol sym_func0 = validate( fDiagnosticsCM.getSymbol(fProcessId, testFunc) ); String sym_func0_value = sym_func0.getValue().toString(); ContextState state = validate (fRunControlCM.getState(fThreadId)); - + while (!state.suspended || !new BigInteger(state.pc).equals(new BigInteger(sym_func0_value))) { if (state.suspended && fWaitForSuspendKey == null) { fSuspendEventReceived = true; @@ -617,10 +584,10 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp fWaitForResumeKey = new Object(); fWaitForSuspendKey = new Object(); ICache<Object> waitForResume = fRunControlCM.waitForContextResumed(fThreadId, fWaitForResumeKey); - + // Issue resume command. validate( fRunControlCM.resume(fThreadCtx, fWaitForResumeKey, IRunControl.RM_RESUME, 1) ); - + // Wait until we receive the resume event. validate(waitForResume); fWaitForSuspendKey = new Object(); @@ -630,14 +597,14 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp // Validate resume command validate( fRunControlCM.resume(fThreadCtx, fWaitForResumeKey, IRunControl.RM_RESUME, 1) ); fWaitForResumeKey = null; - + } // Wait until we suspend. validate( fRunControlCM.waitForContextSuspended(fThreadId, fWaitForSuspendKey) ); fWaitForSuspendKey = null; } } - + return fSuspendEventReceived; } }.get(); @@ -756,15 +723,16 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp }.get(); } - protected void moveToLocation(final String context, final Number address) throws - DebugException, ExecutionException, InterruptedException + protected void moveToLocation(final String context, final Number address) throws + DebugException, ExecutionException, InterruptedException { final RegistersContext pcReg = new Transaction<RegistersContext>() { + @Override protected RegistersContext process() throws InvalidCacheException ,ExecutionException { String[] registers = validate(fRegistersCM.getChildren(context)); return findPCRegister(registers); } - + private RegistersContext findPCRegister(String[] registerIds) throws InvalidCacheException ,ExecutionException { for (String regId : registerIds) { RegistersContext reg = validate(fRegistersCM.getContext(regId)); @@ -779,11 +747,12 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp } return null; } - }.get(); - + }.get(); + assertNotNull("Cannot find PC register", pcReg); - + new Transaction<Object>() { + @Override protected Object process() throws Transaction.InvalidCacheException ,ExecutionException { byte[] value = addressToByteArray(address, pcReg.getSize(), pcReg.isBigEndian()); validate(fRegistersCM.setContextValue(pcReg, this, value)); @@ -791,7 +760,7 @@ public abstract class AbstractTcfUITest extends TcfTestCase implements IViewerUp }; }.get(); } - + private byte[] addressToByteArray(Number address, int size, boolean bigEndian) { byte[] bytes = new byte[size]; byte[] addrBytes = JSON.toBigInteger(address).toByteArray(); diff --git a/tests/pom-tests.xml b/tests/pom-tests.xml index 8eb6a922c..ae4791d18 100644 --- a/tests/pom-tests.xml +++ b/tests/pom-tests.xml @@ -30,51 +30,6 @@ <module>../features/org.eclipse.tcf.cdt.feature</module> <module>../features/org.eclipse.tcf.cdt.sdk.feature</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.core.cdt</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.launch.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.launch.ui</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.runtime</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.runtime.concurrent</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.runtime.model</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.runtime.persistence</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.runtime.services</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.runtime.statushandler</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.runtime.stepper</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.core.model</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.core.scripting</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.locator</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.log.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.services.contexts</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.core</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.ui</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.console</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.controls</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.forms</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.startup</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.swt</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.terminals</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.serial</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.ssh</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.telnet</module> - <module>../target_explorer/plugins/org.eclipse.tcf.te.ui.views</module> - - <module>../target_explorer/features/org.eclipse.tcf.te.feature</module> - <module>../target_explorer/features/org.eclipse.tcf.te.sdk.feature</module> - <module>../target_explorer/features/org.eclipse.tcf.te.tcf.feature</module> - <module>../target_explorer/features/org.eclipse.tcf.te.tcf.sdk.feature</module> - <!-- The test module executing the tests --> <module>../target_explorer/plugins/org.eclipse.tcf.te.tests</module> <module>plugins/org.eclipse.tcf.debug.test</module> |