Matthew Khouzam [Thu, 28 Jan 2016 03:40:16 +0000 (22:40 -0500)]
analysis.xml: fix potential null dereference
File#listFiles() can return null. Even though the test
"isDirectory()" and "exists()" are able to pick it up, executing
the command and null checking it is the best garanty.
Change-Id: Ic3cefdaecf3d5d88dbeaeb3f3d58689abdb05347 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/65332 Reviewed-by: Hudson CI Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net> Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
-The Eclipse ini redirection makes your IDE use the local setup from
your git clone for that IDE's setup. This way you can edit your setup,
test the changes locally, and then commit it.
-Add features necessary in the Eclipse installation so that you can use
any Eclipse package to develop Trace Compass. For example, you can
select Eclipse for C/C++ and it will still install PDE, etc.
Change-Id: I06a2700a79b724ade54f5c961f64835ddc5a8dd0 Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64815 Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Hudson CI
Matthew Khouzam [Sat, 23 Jan 2016 03:34:50 +0000 (22:34 -0500)]
Make some inner classes static
These classes are inner classes, but they do not use its embedded
reference to the object which created them. This reference makes
the instances of the class larger, and may keep the reference to
the creator object alive longer than necessary.
The classes should be static.
Change-Id: I76982a42e10fa89ea7e18524914605d60016fbf3 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/65036 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Matthew Khouzam [Fri, 22 Jan 2016 04:15:36 +0000 (23:15 -0500)]
vm: change private method to take a List instead of ArrayList
Declarations should use Java collection interfaces such as "List"
rather than specific implementation classes such as "LinkedList"
The purpose of the Java Collections API is to provide a well defined
hierarchy of interfaces in order to hide implementation details.
Implementing classes must be used to instantiate new collections,
but the result of an instantiation should ideally be stored in a
variable whose type is a Java Collection interface.
Change-Id: I380287ab4b425167e6378f1b0c4d9aa1af4a8b02 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64943 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Matthew Khouzam [Mon, 18 Jan 2016 22:49:31 +0000 (17:49 -0500)]
documentation: Add documentation for Latency views
Change-Id: If3c4366e4e2f0c8aa876833ae85467a98e71ca3a Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64610 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
Bernd Hufmann [Tue, 12 Jan 2016 17:53:59 +0000 (12:53 -0500)]
analysis: support for sorting of control flow view columns
Each column in the control flow view can be now sorted by clicking on
the column header. By default, it's sorted by birth time. For an
experiment the traces are sorted independently. The tree hierarchy is
kept, i.e. tree level is sorted separately.
An API has been added to support sorting of time graph entries
(ITimeGraphEntry) generically.
Change-Id: I05631ca69ea5cd57cdd97b3815cc263e7de9e43e Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64403 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
rcp: Add profile to build only one rcp (one environment)
When running validation builds (Gerrit trigger), we don't need
to build all environments. A failure to assemble the product on
only one platform is highly unlikely and would be caught by the
nightly build, at worse.
This patch adds a profile so that only one environment is built
(Linux 64).
lttng: VirtualMachineView: extract some methods to simplify the class
This fixes some sonar warnings that methods were too complex. Some
repeated code was also extracted to a method so that both thread and CPU
entries can make use of it.
Change-Id: I18af32bfb2d16d63ee80e0bb1aba0664728ca633 Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/64617 Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Hudson CI
Matthew Khouzam [Thu, 14 Jan 2016 22:02:29 +0000 (17:02 -0500)]
ctf: Introduce IEventDefinition
This interface is extracted from EventDefinition. It allows all of
IEventDeclaration to return only the interface and leave the internals
in the internal folder.
This should improve the maintainability of the CTF plugin without impacting
performance or testability.
Change-Id: I398c4440c67738eaa80a2e63e6d562352d0d64a8 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64412 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Matthew Khouzam [Wed, 20 Jan 2016 01:36:36 +0000 (20:36 -0500)]
tmf.ui: Fix dead store in TimeAlignmentSynchronizer
The algorithm in getReferenceView should pick the view with left-most
time-axis position (to maximize viewing area). It was written like
that originally but a break statement snuck in.
Change-Id: I177c512d9b6553fb553d8eda6e2ab833aa3867c9 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64716 Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Reviewed-by: Hudson CI
Matthew Khouzam [Mon, 18 Jan 2016 22:35:16 +0000 (17:35 -0500)]
Fix typo in System call density vs time title
Change-Id: I587a9af2bc01d6b5a74e69c42c53fbd4d8f88bb1 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64608 Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com> Reviewed-by: Hudson CI
Now, a 'Not' condition "Not X" will create a subcondition using its
first children instead of itself; which was actually creating the
condition "X".
Also, this patch update TmfXmlConditionTest to validate the fix.
Change-Id: I5b14d345c652a8eb553728c56ba6933b87a56ddd Signed-off-by: Jean-Christian Kouame <jean-christian.kouame@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64309 Reviewed-by: Hudson CI Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com> Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Exclude more Sonar rules that are not working with jdt.annotation
A recent update to the Sonarqube server introduced a few new rules
that are not working with jdt.annotation. This is similar to the
previous ones that were disabled. See
https://git.eclipse.org/r/#/c/61292/
and
http://sourceforge.net/p/findbugs/bugs/1425/
Change-Id: I983d1656d667f8c8fd48489273d33f49761f22f1 Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/64427 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Mohamad Gebai [Thu, 4 Dec 2014 02:52:33 +0000 (21:52 -0500)]
LTTng: Add a virtual CPU view for the virtual machine analysis
This view shows for each guest the status of its virtual CPUs (running or
preempted) as well as a modified view of the threads running on them to
highlight when it was thought to be running, but was actually preempted on the
host.
Change-Id: Id260abc6d43e868ba261714de64c5530596de7ff Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca> Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/37602 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Matthew Khouzam [Sat, 29 Aug 2015 19:53:47 +0000 (15:53 -0400)]
ctf: split up IOStructGen into 44 files
IOstructGen is a very large file, it is hard to test and maintain, this patch
splits it into 42 files.
This patch has several benefits. It does the following:
* decreases the complexity of the file IOStructGen.
* improves the modularity of the TSDL parser.
* is very friendly to code navigators as the links of who calls who
are more obvious.
* improve testability of the parser.
* improve navigability in code.
* use a single pattern so each section is drop-in replaceable.
* add null checks at strategic places.
* ridiculously improve javadoc.
* add null annotations
* improve validation of data
Performance is similar.
Change-Id: Ie13ab1673d40b36087e7ce78d81b5379063ea3a1 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/56740 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
tmf: Try expanding a second time when tree expand fails
This will stabilize StandardImportAndReadSmokeTest.
Sometimes in a JFace TreeViewer, it expands to nothing.
It looks like a timing issue with an update job started by the viewer.
This is a work around until we can investigate some more.
Matthew Khouzam [Thu, 7 Jan 2016 20:40:04 +0000 (15:40 -0500)]
analysis: make statistics view use a more legible format
statistics will now display times using units and 3 significant
decimals as opposed to the way they were displayed before (unitless
left-aligned nanoseconds)
Change-Id: I35cfeeb7d038ac2b9f52f3648c3e4337a6ec279c Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/63787 Reviewed-by: Hudson CI Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com> Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Patrick Tasse [Fri, 8 Jan 2016 20:34:19 +0000 (15:34 -0500)]
ss: Bug 485463: Incorrect parent sequence number in HTNode
When creating a new 'latest branch' in HistoryTree.addNewRootNode(), the
new nodes' parent sequence number is incorrectly set to their parent's
parent sequence number instead of their parent's sequence number.
The toString() implementation of HTNode used for debugging purposes is
augmented to show the sequence number of parent and children nodes. This
helps in debugging problems such as this one.
Change-Id: Ie6ec689bb28c72eda612d4279b6d27ead7ecc42c Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com> Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Reviewed-on: https://git.eclipse.org/r/63898 Reviewed-by: Hudson CI
Patrick Tasse [Wed, 6 Jan 2016 18:01:47 +0000 (13:01 -0500)]
tmf: Fix IllegalArgumentException in TimeGraphCombo
Change-Id: I4e2dcba654d1da9b0fa41c7686b0a0095506f28c Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/63663 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tycho 0.24 introduced pom-less builds [1]. With this, we can
remove the pom.xml in any plugin, test or feature plugin that
uses the default configuration.
This bumps the minimum required version of Maven to 3.3.
Some plugins have extra specific configuration in their pom,
like ctf or pcap traces that call maven-antrun-plugin to
download test traces. These will still need their usual pom.xml
file.
For test plugins, the top-level pom defines the configuration
used for *core* tests. UI and SWTBot tests use slightly
different parameters. Instead of repeating this information in
every single plugin, we can define profiles that are only
activated in those plugins.
Using empty files to selectively enable these profiles looks a
bit clunky, but it is the simplest solution I have found.
Suggestions welcome!
TMF: Bug 454283: Initialize all analysis modules before executing them
Analysis modules are first initialized, then automatic ones are executed when
the traceOpened signal is received. This makes sure any dependent module
exists for a trace before the execution takes place.
Change-Id: Ica4d77ca5805b37ec73a42af2b9bc5f15c9e21cd Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/37698 Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Hudson CI
We do not track the API of test plugins so it is not necessary to have
them configured for API tooling. This could lead to errors in the case
where the API baseline contained some test plugins. In Oomph, for
example, the API baseline is just a zip of the complete update site, so
it does contain the test plugins and this triggers errors.
Change-Id: I6bd735c2890ae5eaf329316d4f1bae43348c2281 Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/61839 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
tmf : add of a range selection from other sources for the tmfEventsTable
Only the events within the range will be selected. If there is no event
within the range of the selection, we select the next event outside of
the range. For a single selection, the event at or the next event after
the requested timestamp is selected.
Change-Id: I1294da7e5d653477502ca45f9430a5e5c8583187 Signed-off-by: Jean-Christian Kouame <jean-christian.kouame@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/57526 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
This patch introduces a view to view segment densities. The
view is based on SWTChart's bar graph. Its x axis is NOT
time aligned as it is not on the main timeline. It takes
the liberty to display time in a more "human readable"
form showing a scale and up to 3 decimals max. (1.234 ms)
There is a second part to this view: a selection table.
This table shows the selected segments from a drag operation.
Follow up tasks for this can be to introduce other filters and
improve the tooltips.
An example implementation is provided for the SystemCall analysis.
Change-Id: I238a61dc8eeeefdca0da107424686a64fb63d8c3 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/57573 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
Patrick Tasse [Mon, 4 Jan 2016 23:11:35 +0000 (18:11 -0500)]
tmf: Avoid recursion in AbstractSegmentStoreTableViewer pack listener
In the SWT.SetData listener TableColumn.pack() is called. This requires
all visible items from being filled in order to pack the column. For
each visible item a SWT.SetData event is fired which triggers another
TableColumn.pack().
In Windows, after 12 such iterations in the stack, the table somehow
behaves badly and the OS incorrectly returns an item count of zero,
which causes ArrayIndexOutOfBoundsException and other problems.
Since the intention is to pack the columns only once, the SWT.SetData
listener is removed before the pack instead of after the pack, thus
avoiding the recursive calls.
Change-Id: Id44c54a474ed6e04aa2d79c051d863011f55a8aa Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/63513 Reviewed-by: Hudson CI Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com> Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
tmf: Fix remote.ui test on Windows due to line separators
This can happen when core.autocrlf is set to false in the git config.
The file containing an expected string is then not converted to crlf and
since the generated string in the test contains crlf, the comparison
fails.
To make tests consistent everywhere, I suggest to disable the autocrlf
of git directly in the Git repository using .gitattributes, see
http://git-scm.com/docs/gitattributes
And to fix the test on Windows, we can always convert the generated
String to lf line endings.
Change-Id: Ife8912ace7895ebca4d19adb53c6ba169ca2d003 Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/63080 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
tmf: Fix failure in StandardImportGzipTraceTest related to test ordering
If TmfAlignTimeAxisTest ran before, and the window size was small
enough, it was possible for the test to be running in an "Align 1"
perspective with insufficient height for the events table. Because of
that, the expected content in the table could not be found. The tests in
TmfAlignTimeAxisTest switch to generated perspectives without returning
to a "normal" perspective. It makes sense that the tests "cleanup" by
returning to a more normal perspective like the Tracing perspective.
Also switch to Tracing perspective explicitly in
StandardImportGzipTraceTest which is more consistent with the other
tests and is somewhat less error prone.
Change-Id: I0d28af39266bdcdc81e765b5522c92a4a8085602 Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/63081 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>