1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 09:25:31 +02:00
Commit graph

404 commits

Author SHA1 Message Date
Jonah Graham
6edd1c6a53 Bug 499778: Stop losing stacktraces in tests
Rather than try/catch/fail just let exception cascade so that the full
stacktrace is available in the test results.

The braces have been left in place for scoping and to minimize changes.

Change-Id: I5407829ea964f828e3f996794489a7b884de25fb
2017-04-28 21:11:27 +01:00
Simon Marchi
9462c1db24 Bug 399494 - Consider all variable objects as not complex
There are cases where we consider some variables as complex when they
are not.  In particular, if a pointer is declared using a typedef, is
will be considered complex with the current code.  This is because it
has a child (the pointed value), but CDT doesn't know it's a pointer.

One of the consequence is that we assume the value is not modifiable.
Therefore, we won't update its value when it changes, and we won't let
the user edit it.

Initially I thought it would be safe to assume that variables with two
or more children are complex, but pointers to structures have as many
children as the structure has fields.  Therefore, a pointer to a
structure, declared as a typedef, will still be wrongfully considered as
complex.  Since there's no easy way to know for sure whether a variable
is complex, just assume everything is simple.

I added a test to verify that the value of a pointer declared using a
typedef will update correctly in CDT as it changes in the program.
There are two distinct scenarios, pointers that are variables and
pointers that are fields of structures.  Instead of adding content to
testUpdateOfPointer, I decided to make a similar test method,
testUpdateOfPointerTypedef.  The original test method was getting too
long and was difficult to follow.  I think it's good to keep them short
and focused.

Another test verifies that the same kind of pointer can properly be
written/modified by the user.

Change-Id: If43b3b6e49cd4a20ea929c2a096745a32de14cd0
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2017-04-28 10:59:24 -04:00
Jonah Graham
1670530ffb Bug 515307: Run test order of magnitude faster
Remove massage timeouts for places waiting for no events
This is a partial revert of c19640498d
which was part of Bug 499784.

Change-Id: Ib66ed5eaf45977d4ffae77358deaf1f593e005c6
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2017-04-15 03:43:52 -04:00
Jonah Graham
54f2d8770f Bug 515307: Run test order of magnitude faster
The test was much too conservative on how long it waited for an event
to arrive. On my machine the time was 10 ms, so I set a baseline time
to wait of 100 ms allowing time for additional event to arrive.

Change-Id: Ic435d360e8781936682c19b838aeec13fa3d60bd
2017-04-15 03:43:07 -04:00
Jonah Graham
18a6002f07 Bug 515304: profiles to parallelize testsuite
Change-Id: I02095334c2176bfb9a2968d91b6175af37123f5b
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2017-04-14 20:03:36 -04:00
Simon Marchi
184747164d Various enhancements to download-build-gdb.sh
I ran shellcheck [1] on the script and it found various minor things to
improve.

 - Use $(...) instead of `...` to run commands in a subshell.
 - Wrap all variables in quotes, in case there are spaces.

At the same time, I noticed a few other things:

 - Use "#!/usr/bin/env bash" instead of "#!/bin/bash", in case the user
   uses a bash not at /bin/bash.
 - Use "set -o errexit" instead of "set -e" for better readability.
 - Use "set -o nounset" to generate errors if trying to read unset
   variables.
 - Pass CXXFLAGS in addition to CFLAGS, since GDB is now in C++.
 - Use ${CFLAGS:-} instead of ${CFLAGS}, in case CFLAGS is not set
   (because of "set -o nounset").
 - Don't check for result of getopt.  If it fails, the script ends
   immediatly due to errexit.

[1] http://www.shellcheck.net/

Change-Id: If73f3510e46ca80d542d47c29c55b48b8b0bc697
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2017-03-23 13:33:45 -04:00
Jonah Graham
6ca1d5cc28 Bug 512180: Ensure previous launch is fully terminated
This has two parts.
1) In the base test itself check that the executor is shutdown.
2) GDBBackend leaves a timeout job on the executor queue, remove
it proactively so the executor doesn't sit around just waiting
for it to terminate.

Change-Id: I9fc10f70031430f4613e0edc95093a60cf695e90
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2017-03-07 09:21:15 -05:00
Simon Marchi
e14b87a88f Use line tags in MIExpressionsTest.testUpdateOfPointer
Running to different points of the test program using line tags is
easier and safer than stepping a certain number of times.  Since I want
to modify this test to add a pointer-behind-typedef test, I thought it
would be good to first convert it to line tags.

I also took the liberty of giving more meaningful names to the structure
fields, even though it doesn't change anything in the test.

Change-Id: Ife7e2ae8557789dfc7403df71ba5126ca84b80e0
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2017-03-06 10:44:15 -05:00
Simon Marchi
808df2490b Make MIExpressionsTest.testUpdateOfPointer use SyncUtil
Modify MIExpressionsTest.testUpdateOfPointer so that it only uses
synchronous methods.  There is no change of behavior intended, the test
should do pretty much the same thing as before, but should be a bit more
readable.

One difference is that we don't need to re-create the
IExpressionDMContext objects when we want to re-evaluate the
expressions (after stepping the 2nd time).  We can just call
getExpressionValue on the again, which will trigger a -var-update.

Change-Id: I09bb914b097888bf3146df0096eb9d824441ffa8
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2017-03-06 10:44:14 -05:00
Jonah Graham
7e71d2b9b9 Bug 512180 and Bug 501906: Minimize unstable tests
As deleting launch configurations has a race condition that can
cause them not to become undeletable, only delete them for the tests
that they really need to be deleted for.

Change-Id: I040cbc83ba29a9f3a791b0bf4348a3179792ec65
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2017-03-04 05:35:33 -05:00
Marc Dumais
5a384894c6 Revert "Bug 512303 - [tests] job debug-tests-master-all-gdb-versions has issues"
This reverts commit ad845e6c3a.

Change-Id: I58e75b3a59b87c3a718aa9cd8fd56afd5188161f
2017-02-17 14:43:04 -04:00
Marc Dumais
ad845e6c3a Bug 512303 - [tests] job debug-tests-master-all-gdb-versions has issues
Disabling test suites MIExpressionsTest and StepIntoSelectionTest for
GDB < 7.5. 

Change-Id: I93b7739fc8c93a90f205122f6332754e99f739ca
2017-02-16 14:10:15 -05:00
Alvaro Sanchez-Leon
1517b88854 Add a default file to enable/disable tracing for the debug tests
The dsf.debug.options file can be updated to
run o.e.cdt.tests.dsf.gdb with debug information by changing its
corresponding value from "false" to "true".

Change-Id: I1faa5fdb2bfd11ce3e6e599e2cbeefcfa19ce3b6
2017-02-15 17:29:38 -04:00
Alvaro Sanchez-Leon
40aca4d51d Bug 511243 - Tests validating program-interrupt using CLI or MI
The tests validate the use of CLI (i.e. Ctrl-C) or MI (i.e.
-exec-interrupt) to interrupt the target program.

The MI command is used when the target is running in async mode,
which is mandatory when using the Full CLI console.

At the time of writing, async mode is not supported for Windows and
MAC, therefore these tests rely on a new mechanism to override specific
DSF-GDB services.

Change-Id: Ie4ab30f07640d112fff9aec2b4f348a27bfe188b
2017-02-15 16:52:22 -04:00
Marc Khouzam
c0e72388c7 Allow tests to use GDBs with versions of the form 7.12.50.201702140
Change-Id: I97e5cc7d6a702d743eba2d90bd73df8de3375de4
2017-02-15 11:04:18 -05:00
Marc Khouzam
78c9a0bb5e Validate GDB version in debug tests
Change-Id: Ic8f0b7494a19d20630536dd992ed035f52f0f3e7
2017-02-14 11:01:23 -05:00
Marc Khouzam
123508549d Add printouts to debug unit tests
Currently, the debug unit tests only print which GDB version is
requested
and only if tracing is enabled; we have run into bugs where we would
have greatly benefited in easily seeing what version of GDB was
actually launched.

This change makes each test print what version of GDB is requested
and which one is actually run.  It also makes the test print this
information
all the time, one line per test, instead of only when tracing is
enabled.

Change-Id: Id19d625170b4f956d6205929062c280ac3ecc3b8
2017-02-13 12:49:27 -04:00
Marc Khouzam
d941a275b4 Add JUnit test to verify a query is answered as expected.
Change-Id: I603a89822e1fcbb1e7126150fd8e4de17fd7a141
2017-01-27 09:32:24 -05:00
Marc Dumais
6d85d40cb8 Adding GDB 7.12.1 to the download-build-gdb.sh script
Change-Id: I52125b13ac3af41b8063fc8dff408d09bbb4c2a6
2017-01-23 10:58:37 -05:00
Simon Marchi
955afec343 Fixup for "[dsf-gdb] debug tests: Use line tags where possible"
Unfortunately previous commit was submitted too early. There were
two problems that this commit corrects:

1) clear line tags before each test run - side effect of Bug 508642

When a test marked with Intermittent fails, the next retry is executed
with the same class instance.  Therefore, the new try starts with a
non-empty fTagLocations.  The test trips on the check that there are no
duplicate tags.

2) Fix failing testStopAtMainWithReverse

A blank line got inserted into the test case, that
interfered with the test logic.

Change-Id: If4c28557eac7ee740b4e3a5eac5dd2726c39a35d
Also-by: Jonah Graham <jonah@kichwacoders.com>
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2016-12-04 12:06:00 +00:00
Simon Marchi
c389f49659 [dsf-gdb] debug tests: Use line tags where possible
The goal is to eliminate direct source line number references in tests,
so that modifying test cases is easier.

Change-Id: I9a4964478e9486bff137fb9aec199cee144c2af4
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2016-12-03 18:08:14 -05:00
Simon Marchi
e8cc363899 MIBreakpointsTest: Factor out breakpoint validation
Almost the same code is used in multiple tests to validate breakpoint
attributes.  We can factor that out in a few support functions.

Change-Id: I819da62cc9e6d7434438574b695131b4cea19c77
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2016-12-03 17:59:23 -05:00
Simon Marchi
e2c5019896 MIBreakpointsTest: Replace AsyncCompletionWaitor with queries
The queries are less verbose and less error-prone.

Change-Id: I875e7f94436b0284c236b850482f9f5ff4cbebf7
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2016-12-03 17:29:05 -05:00
Simon Marchi
e5c63c7cd8 gdb build script: Make the script work with non-absolute base paths
There are two problems when passing a non-absolute path to the -b flag:

1. It ends up being used in "./configure --prefix=${base_dir}".
   configure fails, because the prefix must be absolute.
2. It ends up being used to set up symlinks, leading to broken links.

Making the install path absolute fixes those.

Change-Id: I7c1d22754c1a788f02cd912f2114cc091951b303
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2016-11-22 16:33:01 -05:00
Marc Khouzam
92515ff23d Reverse order of versions in gdb build script
When building all gdb versions, the older ones have
a greater chance of failing, so should be done last.

Change-Id: I8bb2f600d84cc7a8f97c308995c174124d881d8d
2016-11-18 07:54:27 -04:00
Simon Marchi
f55a16e8b8 gdb build script: Add missing local variable in check_supported
We use the $version variable in the check_supported function, but it is
not set.  It happens to work because we use the same variable name in
the outer scope, where check_supported is called.

Change-Id: I75e8ae4ef42a232174accf88ca146c0e427f8d4e
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2016-11-17 10:40:57 -05:00
Marc Khouzam
8cf5ed53f2 Update version to 9.3.0
Change-Id: Ic953ccc5d38ff3661ca44de21ed8c4b7dad5b246
2016-11-15 20:32:51 -05:00
Jonah Graham
03b701c9a5 Bug 494246: prepare command line arguments properly for Windows GDB
Includes splitting out and expanding CommandLineArgsTest
from LaunchConfigurationAndRestartTest.

Change-Id: I19fa97a847d908c1c780ca767cf688f26a51d684
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2016-11-15 16:59:57 -04:00
Marc Khouzam
334777eb6e Update version to 9.2.0
Change-Id: I36ad4218b20b8ea70584c89f5be45c757bf4c714
2016-11-14 23:50:05 -05:00
Marc Dumais
dc6e3a06ff bug 498782 - [debug] synchronize selection between the DV and GDB
This adds a new service, GDBFocusSynchronizer, that helps keep the
internal GDB selection and the Debug View selection synchronized.

Change-Id: I021b3f65d61e82f6971bdb9232369b6fdf58ea5b
2016-11-10 11:35:27 -05:00
Alvaro Sanchez-Leon
ce2b583716 Update dsf-gdb test suite to run GDB 7.12
Change-Id: I6a870b443d667b0ecb393c338c826200dcff0cff
2016-10-12 08:37:49 -04:00
Alvaro Sanchez-Leon
bd2fc5fc6a Adding GDB 7.12 to the download-build-gdb.sh script
Change-Id: Iac977f0ab83429cc931f413664c7789bb9c9e913
2016-10-11 10:15:59 -04:00
Alvaro Sanchez-Leon
c19640498d Bug 499784 - A lot of timeouts in dsf-gdb tests are too optimistic
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
2016-09-21 14:59:24 -04:00
Marc Khouzam
cd559dafaf Update version to 9.1.0
This commit used the script releng/scripts/ChangeFeaturesVersion.sh

Change-Id: I8274a6e8dd5c0f1e450f07952e138b265a441a62
2016-08-17 10:11:57 -04:00
Jonah Graham
d8a3896101 Bug 498882: Add test for UI deadlock on terminating multiple launches
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>
2016-07-30 07:43:03 +01:00
Jonah Graham
4289aa7b0d Bug 494650: Refactor BaseTestCase to allow multiple launches per test
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>
2016-07-28 13:30:03 -04:00
Alvaro Sanchez-Leon
39007977fa Adding GDB 7.11.1 to the download-build-gdb.sh script
Change-Id: Ic22f35bb5bac2c3ac1fb394073b168d48259f4f6
2016-06-01 15:54:26 -04:00
Alex Blewitt
2356a29c70 Bug 492200 - Replace StringBuffer with StringBuilder
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>
2016-04-21 22:17:03 -05:00
Alex Blewitt
2114f6b108 Bug 491984 - Replace .equals("") with .isEmpty()
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>
2016-04-19 13:35:54 -04:00
Alex Blewitt
fc07efa909 Bug 491825 - Remove primitive wrapper creation
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>
2016-04-16 12:17:48 -04:00
Jonah Graham
6f249f12c1 Bug 472765: Restore test comments post refactoring
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>
2016-04-13 11:41:28 -04:00
Marc Khouzam
f9d3a184aa Replace hard-coded versions with constants
Change-Id: I8653157bd1d351eb07f58b4b404edfdaaa0e756e
2016-04-07 15:44:44 -04:00
Marc Khouzam
ddf2dea0aa Provide Supported and Unsupported lists of GDB versions
Allow to easily run only Supported or Unsupported tests

Only run Supported versions in test suites

Change-Id: I0d628c8aea28dad77df7943b8b1ee18df5bb6bcf
2016-04-07 15:40:26 -04:00
Marc Khouzam
9781f7bfa8 Don't require gdbserver to be present for local tests to pass
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
2016-03-22 16:16:11 -04:00
Alvaro Sanchez-Leon
ba6eb9e0f0 Bug 489777 - [API] Replace thread id type from int to String
in preparation for the introduction of thread groups syntax in GDB,
thread id needs to be handled as a String.

Change-Id: I379a92de9755ba0532265519ee70d1e199de811b
2016-03-19 21:03:51 -04:00
Jonah Graham
a56abb4783 Bug 472765: use Strings for backend path in Map Entries
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>
2016-03-19 19:44:19 -04:00
Marc Dumais
c0109d378d Bug 489683 - Change the breakpoint "number" from an int to a String
Change-Id: I33a8ca95f6894c360c95260433945cdf1b529bc3
2016-03-18 22:21:21 -05:00
Alena Laskavaia
1cb7faae95 Support -Dcdt.tests.dsf.gdb.versions=all for gdb tests
Change-Id: I7b0921f3dfc41e75f2f32b270712c0eda7fc96a4
2016-03-18 22:31:20 -04:00
Jonah Graham
25023542e8 Fix version range check in SourceLookupTest
Change-Id: Ief38312449c67073c6a6503f27807b455fa4066c
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2016-03-18 22:30:33 -04:00
Alena Laskavaia
528de33113 Flattening rest of gdb tests
this commit removes and merges rest of gdb tests in favor of using
parametrized tests

Change-Id: I352545c2ea3d76154c8079f8efa9aa5d4a3e0032
2016-03-18 09:39:45 -04:00