Includes splitting out and expanding CommandLineArgsTest
from LaunchConfigurationAndRestartTest.
Change-Id: I19fa97a847d908c1c780ca767cf688f26a51d684
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
This adds a new service, GDBFocusSynchronizer, that helps keep the
internal GDB selection and the Debug View selection synchronized.
Change-Id: I021b3f65d61e82f6971bdb9232369b6fdf58ea5b
The bug mentioned above mentions a couple of problems,
1) The use of TestsPlugin.massageTimeout() is not used consistently in
tests.dsf.gdb
2) The timout values are too optimistic
This first change addresses item 1.
Change-Id: I99162bbfaa099bbc4123594fbda51f8e11be9d10
This is the test for bug 494650.
If the test fails it leaves the JVM unterminated so the whole test run
timesout.
Change-Id: I4e50acde1654995efcf0f723d6552b68af177503
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Bug 494650 has an issues when multiple launches are terminated, at
present the test infrastructure makes it very difficult to launch
multiple launches within one test. This commit refactors the base test
case to enable launching additional tests with doLaunchInner.
Change-Id: I501edf4e485c304b0a00c18f1d5e3813011a0491
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
There are many opportunities for replacing `StringBuffer` with
`StringBuilder` provided that the type isn't visible from the
public API and is used only in internal methods. Replace these
where appropriate.
Change-Id: Ic2f50c5b6f3c3a4eae301bb3b40fb6faed235f79
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
In many cases a String's empty status is tested with `.equals("")`.
However, Java 1.6 added `.isEmpty()` which can be more efficient since
it compares the internal length parameter only for testing. Replace
code using the `.isEmpty()` variant instead.
Some tests for `"".equals(expr)` can be replaced with `expr.isEmpty()`
where it is already known that the `expr` is not null; however,
these have to be reviewed on a case-by-case basis.
Change-Id: I3c6af4d8b7638e757435914ac76cb3a67899a5fd
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.
Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.
Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
During the testsuite refactoring that significantly improved the DSF
suite (Commit 528de33113) some info
was lost from the code. This resurrects those comments.
Change-Id: I0a11dee2dcabb0800306880fc7c6217374bc337a
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Allow to easily run only Supported or Unsupported tests
Only run Supported versions in test suites
Change-Id: I0d628c8aea28dad77df7943b8b1ee18df5bb6bcf
The TraceFileTest.java file has three tests which depend on each other.
Inter-dependency between tests is not good. This commit removes it.
Change-Id: Id910a5cea741c85959679e4b0a6981f603f19d13
in preparation for the introduction of thread groups syntax in GDB,
thread id needs to be handled as a String.
Change-Id: I379a92de9755ba0532265519ee70d1e199de811b
Preserve the user supplied backend path as a string so that it matches
what GDB (backend) later reports as a file name to resolve.
Condensed history:
Traditionally in source mapping container, the backend path was stored
as an IPath and that was used to compare against the debug information
being returned by GDB. This worked well when the platform compiled for
matched the platform run on, but when there was Windows/Linux together
that did not work. So as part of Bug 393791 a workaround was done to try
and use hand crafted MapEntrySourceContainer.createPath() instead of
Path constructor to preserve some of the differences. This solution had
its limitations too as UNC paths still could not be represented, See
open Bug 386675.
Change-Id: I4c8f62114a2c6019dc9d07ce446ac424be8b230c
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Add support for gdb's "set substitute-path from to" by adding a new
service called GDBSourceLookup that uses GDB to perform the path
mapping.
The new GDBSourceLookup service uses the new GdbSourceLookupDirector to
get the set of paths that need mapping using GDB's "set
substitute-path" and the director resolves compilation path differently
so as to leave the GDB backend to handle the local path to compile path
resolution.
The MappingSourceContainer has been enhanced to allow a per mapping
container override of the new behaviour. This is a fallback as the
default behaviour when using GDB is to use "set substitute-path".
The MappingSourceContainerDialog exposes the new option in
MappingSourceContainer as a checkbox at the bottom of the path mapping
dialog in a backend agnostic way.
The new code is tested in methods called "sourceSubstitute*" and
mirror the same tests for the now non-backend handled version
which are "sourceMapping*". Note that
doMappingAndLaunch/doSubstituteAndLaunch have been updated to explicitly
check or uncheck the setIsMappingWithBackendEnabled setting
Change-Id: I122d7c597cd461d8e38c4f82522ccfdf9e51a5ba
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
this commit to introduce a test harness that allow
to reduce SIGNIFICALLY duplication of test per gdb version.
Tests is now parameterized with version and type (gdb vs gdbserver).
This commit flattens on of the tests as example rest is still
using an old way.
Parameters are defined externally now via Java variable like this
-Dcdt.tests.dsf.gdb.versions=gdb.7.7,gdbserver.7.7,gdb.7.11
Change-Id: I855449afba40e265c542dc5de7a3562548c97e8b
There was a race condition between commandTimedOutDuringSession
finishing and the next test starting that checked for unterminated
launches (in BaseTestCase removeTeminatedLaunchesBeforeTest).
While commandTimedOutDuringSession did wait for the shutdown to be
received (ICommandControlShutdownDMEvent), that can happen a few ms
before the launch is fully terminated (fLaunch.isTerminated() == true)
Change-Id: Ib4e6655938f6b0e3ab3ce89fd06528f1b72ee04d
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Due to improvements in target platform in 12843ef it is now possible to
use mockito instead of easymock. This commit does that switch.
Note because of Bug 334540 we need to explicitly require the org.hamcrest
bundle so that it resolves. From the bug, Matthias Sohn says in Comment 1:
"I would just use Require-Bundle to get around this."
Change-Id: Ib49a767c826aa04f4daf1de0bf1b25a4f8ae07ba
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Includes:
- CSourceLookupParticipant only did one useful thing (For DSF). When the
object being looked up is a String, as is the case when disassembly
view/editor is doing a lookup, the CSourceLookupParticipant would be the
one to do the resolution. Updated
DsfSourceLookupParticipant.getSourceName to be able to handle a String
- Changed super of DsfSourceLookupParticipant to
AbstractSourceLookupParticipant, saves duplicate code, and adds comment
about what is different about findSourceElements
- a previously missing test for an unusual case (no containers)
- Some of these methods that are only part of CDI have been
marked as such for eventual removal in Bug 484900
Change-Id: I9954b4469e9db9cb46eb117f3beba9e01634689b
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Add some more tests for source path mappings to ensure that the upcoming
change of using gdb's set substitute-path does not regress any issues.
Change-Id: I9067c8859293c3332439679cb1f663e36a4cc34e
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
This allows specifying the multiplier on the command line and pass
it along to the tests.
Change-Id: I35cb764a6494a0eb98e5e2205a47522935c2b206
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
We can obtain the full path of the executable using
File#getAbsolutePath(). This is much better than the hack that was
actually doing a launch to ask GDB where the binary was.
I cannot explain why I didn't use this in the original implementation.
Change-Id: Ifa0d538919cd0c231547f1f3e9c4b72837df4257
Commit 84a53f8d80 broke this test for an
architecture with fWordSize == 2. The buffer for writing a word went from
length fWordSize to 1, and the expected buffer size of a read as well.
This commit fixes it.
Change-Id: Ie50766031fc7dd8d480f126abc48a6dfd487b9e5
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>