Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/gcov
diff options
context:
space:
mode:
authorAndrew Ferrazzutti2014-11-08 06:50:16 +0000
committerAlexander Kurtakov2014-11-10 06:53:36 +0000
commitf0a48395d3e94768ec8f8907eb8c8f12e798ca6a (patch)
tree510a3f42b01ba4cf70ba96f77ce51410817527d6 /gcov
parent7dbc7f5acb2a87299cd2506290fd185f78fda73f (diff)
downloadorg.eclipse.linuxtools-f0a48395d3e94768ec8f8907eb8c8f12e798ca6a.tar.gz
org.eclipse.linuxtools-f0a48395d3e94768ec8f8907eb8c8f12e798ca6a.tar.xz
org.eclipse.linuxtools-f0a48395d3e94768ec8f8907eb8c8f12e798ca6a.zip
Gcov: remove SWTBot from tests.
Convert all GCov UI tests to use Eclipse API instead of SWTBot. This required some features to be modified so they could be testable without relying on UI interaction. Change-Id: I2a20e4edf828a7561d81261829d93c9da6309c7d Signed-off-by: Andrew Ferrazzutti <aferrazz@redhat.com> Reviewed-on: https://git.eclipse.org/r/36181 Tested-by: Hudson CI Reviewed-by: Alexander Kurtakov <akurtako@redhat.com> Tested-by: Alexander Kurtakov <akurtako@redhat.com>
Diffstat (limited to 'gcov')
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/action/OpenGCAction.java28
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/META-INF/MANIFEST.MF13
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/build.properties2
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/file.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/file.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/folder.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/folder.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/function.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/function.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/file.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/file.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/folder.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/folder.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/function.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/function.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/file.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/file.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/folder.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/folder.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/function.csv (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/function.csv)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/content6
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/content4
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/content4
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.cproject42
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.project27
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/Makefile (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/Makefile)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/fact.cpp (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/fact.cpp)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/fact.hpp (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/fact.hpp)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/main.cpp (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/main.cpp)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/mult.cpp (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/mult.cpp)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/mult.hpp (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/mult.hpp)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.cproject42
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.project26
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.settings/language.settings.xml12
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/Makefile (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/Makefile)2
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/fact.c (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/fact.c)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/main.c (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/main.c)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/mult.c (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/mult.c)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.cproject56
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.project26
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/Makefile (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/Makefile)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/fact.c (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/fact.c)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/main.c (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/main.c)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/mult.c (renamed from gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/mult.c)0
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTest.java562
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestC.java42
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCLibrary.java39
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCPP.java42
-rw-r--r--gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/JobsRunning.java50
41 files changed, 515 insertions, 510 deletions
diff --git a/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/action/OpenGCAction.java b/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/action/OpenGCAction.java
index d1d126598e..ef5a4b2c43 100644
--- a/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/action/OpenGCAction.java
+++ b/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/action/OpenGCAction.java
@@ -38,6 +38,29 @@ import org.eclipse.ui.PlatformUI;
*/
public class OpenGCAction implements IEditorLauncher {
+ /**
+ * Helper method to programmatically open a gcda/gcno file.
+ * @param file The path of the file to open.
+ * @param isCompleteCoverageResultWanted Whether or not to return complete coverage.
+ */
+ public void autoOpen(IPath file, boolean isCompleteCoverageResultWanted) {
+ String extension = file.getFileExtension();
+ File gcda;
+ if ("gcno".equals(extension)) { //$NON-NLS-1$
+ gcda = file.removeFileExtension().addFileExtension("gcda").toFile(); //$NON-NLS-1$
+ } else if ("gcda".equals(extension)) { //$NON-NLS-1$
+ gcda = file.toFile();
+ } else {
+ // should never occur
+ return;
+ }
+ if (isCompleteCoverageResultWanted) {
+ CovView.displayCovResults(getDefaultBinary(file), gcda.getAbsolutePath());
+ } else {
+ CovView.displayCovDetailedResult(getDefaultBinary(file), gcda.getAbsolutePath());
+ }
+ }
+
@Override
public void open(IPath file) {
Shell shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
@@ -53,7 +76,7 @@ public class OpenGCAction implements IEditorLauncher {
gcda = file.toFile();
gcno = file2.toFile();
} else {
- // should never occurs
+ // should never occur
return;
}
@@ -68,8 +91,7 @@ public class OpenGCAction implements IEditorLauncher {
return;
}
- String s = getDefaultBinary(file);
- OpenGCDialog d = new OpenGCDialog(shell, s, file);
+ OpenGCDialog d = new OpenGCDialog(shell, getDefaultBinary(file), file);
if (d.open() != Window.OK) {
return;
}
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/META-INF/MANIFEST.MF b/gcov/org.eclipse.linuxtools.gcov.test/META-INF/MANIFEST.MF
index 90cbd1c725..6c5eca23ad 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/META-INF/MANIFEST.MF
+++ b/gcov/org.eclipse.linuxtools.gcov.test/META-INF/MANIFEST.MF
@@ -4,15 +4,12 @@ Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.linuxtools.gcov.test
Bundle-Version: 4.1.1.qualifier
Bundle-Vendor: %bundleProvider
-Require-Bundle:
- org.eclipse.swtbot.eclipse.finder,
- org.eclipse.swtbot.junit4_x,
- org.eclipse.swtbot.forms.finder,
- org.eclipse.swtbot.eclipse.core,
- org.apache.log4j,
- org.eclipse.swtbot.go,
+Require-Bundle: org.junit;bundle-version="4.10.0",
org.eclipse.linuxtools.gcov.launch;bundle-version="1.0.0",
- org.eclipse.cdt.managedbuilder.gnu.ui;bundle-version="8.0.0"
+ org.eclipse.cdt.managedbuilder.gnu.ui;bundle-version="8.0.0",
+ org.eclipse.linuxtools.profiling.tests,
+ org.eclipse.ui.navigator.resources,
+ org.eclipse.ui.navigator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-Localization: plugin
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/build.properties b/gcov/org.eclipse.linuxtools.gcov.test/build.properties
index 4c2e5db007..9de44fbc9f 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/build.properties
+++ b/gcov/org.eclipse.linuxtools.gcov.test/build.properties
@@ -4,5 +4,5 @@ bin.includes = META-INF/,\
.,\
plugin.properties,\
about.html,\
- resource/
+ resources/
src.includes = about.html
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/file.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/file.csv
index 318472c847..318472c847 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/file.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/file.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/folder.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/folder.csv
index a6df2557ea..a6df2557ea 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/folder.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/folder.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/function.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/function.csv
index b091f54c6a..b091f54c6a 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/function.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_CPP_test/function.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/file.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/file.csv
index b0278d02c9..b0278d02c9 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/file.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/file.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/folder.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/folder.csv
index de1d5fdf47..de1d5fdf47 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/folder.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/folder.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/function.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/function.csv
index 663b280c5c..663b280c5c 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/function.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_library_test/function.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/file.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/file.csv
index 2dc8ff6d24..2dc8ff6d24 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/file.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/file.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/folder.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/folder.csv
index 2f8156b321..2f8156b321 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/folder.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/folder.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/function.csv b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/function.csv
index c24b61658c..c24b61658c 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/function.csv
+++ b/gcov/org.eclipse.linuxtools.gcov.test/csv/Gcov_C_test/function.csv
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/content b/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/content
deleted file mode 100644
index 334d078cca..0000000000
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/content
+++ /dev/null
@@ -1,6 +0,0 @@
-fact.cpp
-mult.cpp
-main.cpp
-fact.hpp
-mult.hpp
-Makefile \ No newline at end of file
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/content b/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/content
deleted file mode 100644
index c4e898defa..0000000000
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/content
+++ /dev/null
@@ -1,4 +0,0 @@
-fact.c
-mult.c
-main.c
-Makefile \ No newline at end of file
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/content b/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/content
deleted file mode 100644
index c4e898defa..0000000000
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/content
+++ /dev/null
@@ -1,4 +0,0 @@
-fact.c
-mult.c
-main.c
-Makefile \ No newline at end of file
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.cproject b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.cproject
new file mode 100644
index 0000000000..e4be09f888
--- /dev/null
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.cproject
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="cdt.managedbuild.toolchain.gnu.base.103434864">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.103434864" moduleId="org.eclipse.cdt.core.settings" name="Default">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildProperties="" id="cdt.managedbuild.toolchain.gnu.base.103434864" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
+ <folderInfo id="cdt.managedbuild.toolchain.gnu.base.103434864.1952517159" name="/" resourcePath="">
+ <toolChain id="cdt.managedbuild.toolchain.gnu.base.1234746015" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.1020111448" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
+ <builder id="cdt.managedbuild.target.gnu.builder.base.2040993415" managedBuildOn="false" name="Gnu Make Builder.Default" superClass="cdt.managedbuild.target.gnu.builder.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1456672570" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.48022536" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1589276019" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.base.1769369383" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1898241980" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.assembler.base.273810169" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base"/>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="Gcov_CPP_test.null.810872838" name="Gcov_CPP_test"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+</cproject>
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.project b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.project
new file mode 100644
index 0000000000..2dd233b59b
--- /dev/null
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/.project
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Gcov_CPP_test</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+</projectDescription>
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/Makefile b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/Makefile
index e3c2b86045..e3c2b86045 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/Makefile
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/Makefile
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/fact.cpp b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/fact.cpp
index cb1e7c803c..cb1e7c803c 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/fact.cpp
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/fact.cpp
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/fact.hpp b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/fact.hpp
index 32a9296041..32a9296041 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/fact.hpp
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/fact.hpp
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/main.cpp b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/main.cpp
index d3c4e21788..d3c4e21788 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/main.cpp
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/main.cpp
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/mult.cpp b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/mult.cpp
index bd55274fa2..bd55274fa2 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/mult.cpp
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/mult.cpp
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/mult.hpp b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/mult.hpp
index 3d3f147356..3d3f147356 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_CPP_test/mult.hpp
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_CPP_test/mult.hpp
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.cproject b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.cproject
new file mode 100644
index 0000000000..eeed1188f5
--- /dev/null
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.cproject
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="cdt.managedbuild.toolchain.gnu.base.1735280156">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.1735280156" moduleId="org.eclipse.cdt.core.settings" name="Default">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildProperties="" id="cdt.managedbuild.toolchain.gnu.base.1735280156" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
+ <folderInfo id="cdt.managedbuild.toolchain.gnu.base.1735280156.1895219230" name="/" resourcePath="">
+ <toolChain id="cdt.managedbuild.toolchain.gnu.base.519661002" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.2064814556" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
+ <builder id="cdt.managedbuild.target.gnu.builder.base.1778701109" managedBuildOn="false" name="Gnu Make Builder.Default" superClass="cdt.managedbuild.target.gnu.builder.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1776003622" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1537812183" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1334759289" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.base.1714616939" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1298537479" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.assembler.base.145802110" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base"/>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="Gcov_C_library_test.null.1201845313" name="Gcov_C_library_test"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+</cproject>
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.project b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.project
new file mode 100644
index 0000000000..bdd3d69917
--- /dev/null
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.project
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Gcov_C_library_test</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+</projectDescription>
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.settings/language.settings.xml b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.settings/language.settings.xml
new file mode 100644
index 0000000000..53cbbea446
--- /dev/null
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/.settings/language.settings.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project>
+ <configuration id="cdt.managedbuild.toolchain.gnu.base.1735280156" name="Default">
+ <extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
+ <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
+ <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
+ <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="(gcc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/>
+ <provider-reference id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" ref="shared-provider"/>
+ <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
+ </extension>
+ </configuration>
+</project>
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/Makefile b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/Makefile
index b4ffd23809..43b8b3305f 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/Makefile
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/Makefile
@@ -8,4 +8,4 @@ all: a.out
LD_LIBRARY_PATH=. ./$< 1 2 3 4 5 6
clean:
- rm -f *.o a.out *.gcno *.gcda
+ rm -f *.o a.out *.gcno *.gcda *.so
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/fact.c b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/fact.c
index f37737a19b..f37737a19b 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/fact.c
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/fact.c
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/main.c b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/main.c
index 6065d93cd4..6065d93cd4 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/main.c
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/main.c
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/mult.c b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/mult.c
index 62abaa9230..62abaa9230 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_library_test/mult.c
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_library_test/mult.c
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.cproject b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.cproject
new file mode 100644
index 0000000000..9460d29fdd
--- /dev/null
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.cproject
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="cdt.managedbuild.toolchain.gnu.base.343930917">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.343930917" moduleId="org.eclipse.cdt.core.settings" name="Default">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.343930917" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
+ <folderInfo id="cdt.managedbuild.toolchain.gnu.base.343930917.1872909544" name="/" resourcePath="">
+ <toolChain id="cdt.managedbuild.toolchain.gnu.base.1648098269" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.1650358547" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
+ <builder id="cdt.managedbuild.target.gnu.builder.base.257295285" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1660124747" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.380581072" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.base.2020779934" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.187375363" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.base.1234624047" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base">
+ <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1582079037" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.516979158" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
+ <tool id="cdt.managedbuild.tool.gnu.assembler.base.1179002434" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1674687404" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="Gcov_C_test.null.1319449749" name="Gcov_C_test"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+ <storageModule moduleId="refreshScope" versionNumber="2">
+ <configuration configurationName="Default">
+ <resource resourceType="PROJECT" workspacePath="/Gcov_C_test"/>
+ </configuration>
+ </storageModule>
+</cproject>
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.project b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.project
new file mode 100644
index 0000000000..f82703cb58
--- /dev/null
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/.project
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Gcov_C_test</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+</projectDescription>
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/Makefile b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/Makefile
index 9771c05d92..9771c05d92 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/Makefile
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/Makefile
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/fact.c b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/fact.c
index f37737a19b..f37737a19b 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/fact.c
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/fact.c
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/main.c b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/main.c
index 6065d93cd4..6065d93cd4 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/main.c
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/main.c
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/mult.c b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/mult.c
index 62abaa9230..62abaa9230 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/resource/Gcov_C_test/mult.c
+++ b/gcov/org.eclipse.linuxtools.gcov.test/resources/Gcov_C_test/mult.c
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTest.java b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTest.java
index 54a1d19589..f22b93fd64 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTest.java
+++ b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTest.java
@@ -10,420 +10,298 @@
*******************************************************************************/
package org.eclipse.linuxtools.internal.gcov.test;
-import static org.eclipse.swtbot.swt.finder.finders.ContextMenuHelper.contextMenu;
-import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withText;
-import static org.eclipse.swtbot.swt.finder.waits.Conditions.waitForWidget;
-import static org.eclipse.swtbot.swt.finder.waits.Conditions.widgetIsEnabled;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
import java.io.File;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import java.util.TreeSet;
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Logger;
-import org.apache.log4j.SimpleLayout;
+import org.eclipse.cdt.core.CCProjectNature;
+import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.ui.actions.ContextualLaunchAction;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.linuxtools.dataviewers.actions.STExportToCSVAction;
-import org.eclipse.swt.SWT;
+import org.eclipse.linuxtools.internal.gcov.action.OpenGCAction;
+import org.eclipse.linuxtools.profiling.tests.AbstractTest;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
-import org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory;
-import org.eclipse.swtbot.swt.finder.results.VoidResult;
-import org.eclipse.swtbot.swt.finder.waits.Conditions;
-import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotRadio;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
-import org.hamcrest.Matcher;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.resources.ProjectExplorer;
import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
import org.osgi.framework.FrameworkUtil;
-public abstract class GcovTest {
- private static final String PROJECT_EXPLORER = "Project Explorer";
- private static SWTBotView projectExplorer;
- private static SWTBotShell mainShell;
+public abstract class GcovTest extends AbstractTest {
+ private static IProject project = null;
+ private static boolean isCppProject;
+ private static IWorkbenchWindow window;
+ private static Display display;
- private static final Logger fLogger = Logger.getRootLogger();
- private static SWTWorkbenchBot bot;
- private static String testProjectName;
- private static String testProjectType;
+ private static TreeSet<String> gcovFiles;
- public static SWTWorkbenchBot init(String projectName, String projectType)
- throws Exception {
- fLogger.addAppender(new ConsoleAppender(new SimpleLayout(), ConsoleAppender.SYSTEM_OUT));
- bot = new SWTWorkbenchBot();
- testProjectName = projectName;
- testProjectType = projectType;
- bot.captureScreenshot(projectName + ".beforeClass.1.jpg");
- try {
- bot.viewByTitle("Welcome").close();
- // hide Subclipse Usage stats popup if present/installed
- bot.shell("Subclipse Usage").activate();
- bot.button("Cancel").click();
- } catch (WidgetNotFoundException e) {
- // ignore
- }
+ abstract protected String getTestProjectName();
+ abstract protected String getBinName();
+ abstract protected boolean getTestProducedReference();
- bot.perspectiveByLabel("C/C++").activate();
- for (SWTBotShell sh : bot.shells()) {
- if (sh.getText().startsWith("C/C++")) {
- sh.activate();
- mainShell = sh;
- break;
+ @BeforeClass
+ public static void init() {
+ display = Display.getDefault();
+ display.syncExec(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ ResourcesPlugin.getWorkspace().getRoot();
+ window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPart part = window.getActivePage().getActivePart();
+ if (part.getTitle().equals("Welcome")) {
+ part.dispose();
+ }
+ PlatformUI.getWorkbench().showPerspective(CUIPlugin.ID_CPERSPECTIVE, window);
+ } catch (WorkbenchException e) {
+ Assert.fail("Couldn't open C/C++ perspective.");
+ }
}
- }
+ });
+ }
- bot.captureScreenshot(projectName + ".beforeClass.2.jpg");
- // Turn off automatic building by default
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IWorkspaceDescription desc = workspace.getDescription();
- boolean isAutoBuilding = desc.isAutoBuilding();
- if (isAutoBuilding) {
- desc.setAutoBuilding(false);
- workspace.setDescription(desc);
+ @Before
+ public void setUp() throws Exception {
+ if (project == null) {
+ project = createProjectAndBuild(FrameworkUtil.getBundle(this.getClass()), getTestProjectName()).getProject();
+ isCppProject = project.getNature(CCProjectNature.CC_NATURE_ID) != null;
+
+ gcovFiles = new TreeSet<>();
+ for (IResource r : project.members()) {
+ if (r.getType() == IResource.FILE && r.exists()) {
+ String fileName = r.getName();
+ if (fileName.endsWith(".gcda") || fileName.endsWith(".gcno")) {
+ gcovFiles.add(fileName);
+ }
+ }
+ }
}
-
-
- // define & repopulate project explorer
- projectExplorer = bot.viewByTitle(PROJECT_EXPLORER);
- createProject();
- populateProject();
- compileProject();
- return bot;
}
@After
public void cleanUp() {
- SWTWorkbenchBot bot = new SWTWorkbenchBot();
- SWTBotShell[] shells = bot.shells();
- for (final SWTBotShell shell : shells) {
- String shellTitle = shell.getText();
- if (shellTitle.length() > 0
- && !shellTitle.startsWith("SystemTap IDE")
- && !shellTitle.startsWith("Quick Access")) {
- UIThreadRunnable.syncExec(new VoidResult() {
- @Override
- public void run() {
- if (shell.widget.getParent() != null) {
- shell.close();
- }
+ display.syncExec(new Runnable() {
+ @Override
+ public void run() {
+ Shell[] shells = Display.getCurrent().getShells();
+ for (final Shell shell : shells) {
+ String shellTitle = shell.getText();
+ if (!shellTitle.isEmpty() && !shellTitle.startsWith("Quick Access")
+ && shell.getParent() != null) {
+ shell.close();
}
- });
+ }
}
- }
- bot.closeAllEditors();
+ });
}
- public static void cleanup(SWTWorkbenchBot bot) {
- // clear project explorer
- exitProjectFolder(bot);
- IProject project = ResourcesPlugin.getWorkspace().getRoot()
- .getProject(testProjectName);
+ @AfterClass
+ public static void finalCleanUp() {
try {
- project.delete(true, new ProgressMonitor());
+ project.delete(true, new NullProgressMonitor());
} catch (CoreException e) {
- fail("Project deletion failed");
+ Assert.fail("Project deletion failed");
}
+ project = null;
}
- /**
- * Enter the project folder so as to avoid expanding trees later
- */
- private static SWTBotView enterProjectFolder(SWTWorkbenchBot bot, String projectName) {
- projectExplorer.bot().tree().select(projectName).
- contextMenu("Go Into").click();
- bot.waitUntil(waitForWidget(WidgetMatcherFactory.withText(
- projectName), projectExplorer.getWidget()));
- return projectExplorer;
- }
-
- /**
- * Exit from the project tree.
- */
- private static void exitProjectFolder(SWTWorkbenchBot bot) {
- try {
- SWTBotToolbarButton forwardButton = projectExplorer.toolbarPushButton("Forward");
- projectExplorer.toolbarPushButton("Back to Workspace").click();
- bot.waitUntil(widgetIsEnabled(forwardButton));
- } catch (WidgetNotFoundException e) {
- // Already exited from project folder
+ @Test
+ public void testOpenGcovFileDetails() {
+ for (String string : gcovFiles) {
+ testGcovFileDetails(string);
}
}
- public static void createProject() {
- mainShell.activate();
- SWTBotMenu fileMenu = bot.menu("File");
- SWTBotMenu newMenu = fileMenu.menu("New");
- SWTBotMenu projectMenu = newMenu.menu(testProjectType);
- projectMenu.click();
-
- SWTBotShell shell = bot.shell(testProjectType);
- shell.activate();
-
- bot.tree().expandNode("Makefile project").select("Empty Project");
- bot.textWithLabel("Project name:").setText(testProjectName);
- bot.table().select("Linux GCC");
-
- bot.button("Next >").click();
- bot.button("Finish").click();
- bot.waitUntil(Conditions.shellCloses(shell));
- }
-
- public static void populateProject() throws Exception {
- IProject project = ResourcesPlugin.getWorkspace().getRoot()
- .getProject(testProjectName);
- try (InputStream is = FileLocator.openStream(
- FrameworkUtil.getBundle(GcovTest.class), new Path("resource/"
- + testProjectName + "/content"), false);
- LineNumberReader lnr = new LineNumberReader(
- new InputStreamReader(is))) {
- String filename;
- while (null != (filename = lnr.readLine())) {
- final ProgressMonitor pm = new ProgressMonitor();
- final IFile ifile = project.getFile(filename);
- InputStream fis = FileLocator.openStream(FrameworkUtil
- .getBundle(GcovTest.class), new Path("resource/"
- + testProjectName + "/" + filename), false);
- ifile.create(fis, true, pm);
- bot.waitUntil(new DefaultCondition() {
-
- @Override
- public boolean test() {
- return pm.isDone();
- }
-
- @Override
- public String getFailureMessage() {
- return ifile + " not yet created after 6000ms";
+ private void testGcovFileDetails(final String filename) {
+ display.syncExec(new Runnable() {
+ @Override
+ public void run() {
+ openGcovResult(project.getFile(filename), false);
+
+ final IWorkbenchPage page = window.getActivePage();
+ final IEditorPart editorPart = page.getActiveEditor();
+ final IFile openedFile = project.getFile(editorPart.getEditorInput().getName());
+ final IFile targetFile = project.getFile(
+ new Path(filename).removeFileExtension().addFileExtension(
+ isCppProject ? "cpp" : "c"));
+ if (!targetFile.equals(openedFile)) {
+ System.err.println("WARNING: editor for " + targetFile
+ + " is not in focus.");
+ for (IEditorReference ref : page.getEditorReferences()) {
+ if (targetFile.equals(project.getFile(ref.getName()))) {
+ return;
+ }
}
- }, 6000);
+ Assert.fail("Editor for file " + targetFile + " was not opened,"
+ + " instead opened " + openedFile + ".");
+ }
}
- }
+ });
}
- public static void compileProject() {
- SWTBotTree treeBot = projectExplorer.bot().tree();
- treeBot.setFocus();
- treeBot = treeBot.select(testProjectName);
- bot.waitUntil(Conditions.treeHasRows(treeBot, 1));
- mainShell.activate();
- SWTBotMenu menu = bot.menu("Build Project");
- menu.click();
- bot.waitUntil(new JobsRunning(ResourcesPlugin.FAMILY_MANUAL_BUILD), 30000);
+ @Test
+ public void testOpenGcovSummary() {
+ for (String string : gcovFiles) {
+ testGcovSummary(string, getBinName(), getTestProducedReference());
+ }
}
- private static TreeSet<String> getGcovFiles(SWTWorkbenchBot bot, String projectName) throws Exception {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
- TreeSet<String> ret = new TreeSet<>();
- for (IResource r : project.members()) {
- if (r.getType() == IResource.FILE && r.exists()) {
- if (r.getName().endsWith(".gcda") || r.getName().endsWith(".gcno")) {
- ret.add(r.getFullPath().toOSString());
- }
+ private void testGcovSummary(final String filename, String binName,
+ final boolean testProducedReference) {
+ openGcovResult(project.getFile(filename), true);
+ IViewPart vp = window.getActivePage().findView("org.eclipse.linuxtools.gcov.view");
+
+ // No IDs on toolbar items, so explicitly check each one for tooltip texts
+ List<String> sortTypes = new ArrayList<>(Arrays.asList("function", "file", "folder"));
+ IContributionItem[] items = vp.getViewSite().getActionBars().getToolBarManager().getItems();
+ STExportToCSVAction csvAction = null;
+ for (IContributionItem item : items) {
+ if (item instanceof ActionContributionItem && ((ActionContributionItem) item).getAction() instanceof STExportToCSVAction) {
+ csvAction = (STExportToCSVAction) ((ActionContributionItem) item).getAction();
}
}
- return ret;
- }
-
- private static void testGcovSummary(SWTWorkbenchBot bot, String projectName, String filename, String binName,
- boolean testProducedReference) throws Exception {
- IPath filePath = new Path(filename);
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
- String binPath = file.getProject().getFile(binName).getLocation().toOSString();
-
- openResource(bot, file.getName());
- Matcher<Shell> withText = withText("Gcov - Open coverage results...");
- bot.waitUntil(Conditions.waitForShell(withText));
-
- SWTBotShell shell = bot.shell("Gcov - Open coverage results...");
- shell.activate();
- bot.textInGroup("Binary File", 0).setText(binPath);
- bot.button("OK").click();
- bot.waitUntil(Conditions.shellCloses(shell));
-
- SWTBotView botView = bot.viewByTitle("gcov");
- // The following cannot be tested on 4.2 because the SWTBot implementation of toolbarButton()
- // is broken there because it relies PartPane having a method getPane() which is no longer true.
- botView.toolbarButton("Sort coverage per function").click();
- dumpCSV(botView, "function", testProducedReference);
- botView.toolbarButton("Sort coverage per file").click();
- dumpCSV(botView, "file", testProducedReference);
- botView.toolbarButton("Sort coverage per folder").click();
- dumpCSV(botView, "folder", testProducedReference);
- botView.close();
- }
-
- private static void openResource(SWTWorkbenchBot bot, String fileName) {
- mainShell.activate();
- bot.menu("Navigate").menu("Open Resource...").click();
- SWTBotShell shell = bot.shell("Open Resource").activate();
- bot.text().setText(fileName);
- bot.button("Open").click();
- bot.waitUntil(Conditions.shellCloses(shell));
- }
-
- private static void testGcovFileDetails(SWTWorkbenchBot bot, String projectName, String filename, String binName) throws Exception {
- IPath filePath = new Path(filename);
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
- String binPath = file.getProject().getFile(binName).getLocation().toOSString();
-
- openResource(bot, file.getName());
- Matcher<Shell> withText = withText("Gcov - Open coverage results...");
- bot.waitUntil(Conditions.waitForShell(withText));
-
- SWTBotShell shell = bot.shell("Gcov - Open coverage results...");
- shell.activate();
- bot.textInGroup("Binary File", 0).setText(binPath);
- SWTBotRadio button = bot.radioInGroup("Coverage result", 0);
- button.click();
- bot.button("OK").click();
- bot.waitUntil(Conditions.shellCloses(shell));
-
- SWTBotEditor editor = bot.activeEditor();
- SWTBotEclipseEditor edt = editor.toTextEditor(); /* just to verify that the correct file was found */
- edt.close();
- }
-
- private static void testGcovLaunchSummary(SWTWorkbenchBot bot, String projectName, String binName) {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
- String binLocation = project.getFile(binName).getLocation().toOSString();
- IPath binPath = new Path(binLocation);
- IFile binFile = ResourcesPlugin.getWorkspace().getRoot().getFile(binPath);
-
- SWTBot viewBot = projectExplorer.bot();
-
- SWTBotTree treeBot = viewBot.tree();
- treeBot.setFocus();
- // We need to select the binary, but in the tree, it may have additional info appended to the
- // name such as [x86_64/le]. So, we look at all nodes of the project and look for the one that
- // starts with our binary file name. We can then select the node.
- enterProjectFolder(bot, projectName);
- bot.waitUntil(Conditions.waitForWidget(withText(projectName), projectExplorer.getWidget()));
-
- SWTBotTreeItem[] nodes = treeBot.getAllItems();
- String binNodeName = binFile.getName();
- for (SWTBotTreeItem node : nodes) {
- if (node.getText().startsWith(binNodeName)) {
- node.select();
- break;
+ Assert.assertNotNull("CSV-Export toolbar button does not exist.", csvAction);
+
+ for (IContributionItem item : items) {
+ if (item instanceof ActionContributionItem) {
+ final IAction action = ((ActionContributionItem) item).getAction();
+ for (int i = 0, n = sortTypes.size(); i < n; i++) {
+ String sortType = sortTypes.get(i);
+ if (action.getText().equals("Sort coverage per " + sortType)) {
+ dumpCSV(action, csvAction, sortType, testProducedReference);
+ if (sortTypes.size() == 1) {
+ return;
+ }
+ sortTypes.remove(i);
+ break;
+ }
+ }
}
}
- assertNotEquals(treeBot.selectionCount(), 0);
- String menuItem = "Profiling Tools";
- String subMenuItem = "1 Profile Code Coverage";
- click(contextMenu(treeBot, menuItem, subMenuItem));
-
- final boolean result[] = new boolean[1];
- Display.getDefault().syncExec(new Runnable() {
+ }
+ private void dumpCSV(final IAction sortAction, final STExportToCSVAction csvAction, String type, boolean testProducedReference) {
+ display.asyncExec(new Runnable() {
@Override
public void run() {
- try {
- PlatformUI.getWorkbench().getActiveWorkbenchWindow()
- .getActivePage()
- .showView("org.eclipse.linuxtools.gcov.view");
- result[0] = true;
- } catch (PartInitException e) {
- result[0] = false;
- }
+ sortAction.run();
}
});
- assertTrue(result[0]);
- SWTBotView botView = bot.viewByTitle("gcov");
-
- botView.close();
- }
- private static void dumpCSV(SWTBotView botView, String type, boolean testProducedReference) {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(testProjectName);
- botView.toolbarButton("Export to CSV").click();
- SWTBotShell shell = bot.shell("Export to CSV");
- shell.activate();
String s = project.getLocation() + "/" + type + "-dump.csv";
new File(s).delete();
- bot.text().setText(s);
- bot.button("OK").click();
- bot.waitUntil(new JobsRunning(STExportToCSVAction.EXPORT_TO_CSV_JOB_FAMILY), 5000);
+ csvAction.getExporter().setFilePath(s);
+ csvAction.export();
+
+ while (true) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {}
+ if (Job.getJobManager().find(STExportToCSVAction.EXPORT_TO_CSV_JOB_FAMILY).length == 0) {
+ break;
+ }
+ }
+
if (testProducedReference) {
- String ref = STJunitUtils.getAbsolutePath(FrameworkUtil.getBundle(GcovTest.class).getSymbolicName(), "resource/" + testProjectName + "/" + type + ".csv");
+ String ref = STJunitUtils.getAbsolutePath(FrameworkUtil.getBundle(GcovTest.class).getSymbolicName(), "csv/" + project.getName() + "/" + type + ".csv");
STJunitUtils.compareIgnoreEOL(project.getLocation() + "/" + type + "-dump.csv", ref, false);
}
}
- public static void openGcovFileDetails(SWTWorkbenchBot bot, String projectName) throws Exception {
- openGcovFileDetails(bot, projectName, "a.out");
- }
-
- public static void openGcovSummary(SWTWorkbenchBot bot, String projectName, boolean testProducedReference)
- throws Exception {
- openGcovSummary(bot, projectName, "a.out", testProducedReference);
+ private void openGcovResult(final IFile file, final boolean isCompleteCoverageResultWanted) {
+ display.syncExec(new Runnable() {
+ @Override
+ public void run() {
+ new OpenGCAction().autoOpen(file.getLocation(), isCompleteCoverageResultWanted);
+ }
+ });
}
- public static void openGcovSummary(SWTWorkbenchBot bot, String projectName, String binName,
- boolean testProducedReference) throws Exception {
- TreeSet<String> ts = getGcovFiles(bot, projectName);
- for (String string : ts) {
- testGcovSummary(bot, projectName, string, binName, testProducedReference);
+ private class ProfileContextualLaunchAction extends ContextualLaunchAction {
+ public ProfileContextualLaunchAction(Menu menu) {
+ super("linuxtools");
+ fillMenu(menu);
}
}
- public static void openGcovFileDetails(SWTWorkbenchBot bot,
- String projectName, String binName) throws Exception {
- TreeSet<String> ts = getGcovFiles(bot, projectName);
- for (String string : ts) {
- testGcovFileDetails(bot, projectName, string, binName);
+ @Test
+ public void testGcovSummaryByLaunch() {
+ display.syncExec(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ CommonNavigator vc = (CommonNavigator) window.getActivePage().showView(ProjectExplorer.VIEW_ID);
+ vc.selectReveal(new StructuredSelection(project.getFile(getBinName())));
+ Menu menu = new MenuManager().createContextMenu(vc.getCommonViewer().getControl());
+ new ProfileContextualLaunchAction(menu);
+ for (MenuItem item : menu.getItems()) {
+ if (item.getText().endsWith("Profile Code Coverage")) {
+ ((ActionContributionItem) item.getData()).getAction().run();
+ break;
+ }
+ }
+ } catch (PartInitException e) {
+ Assert.fail("Cannot show Project Explorer.");
+ }
+ try {
+ window.getActivePage().showView("org.eclipse.linuxtools.gcov.view");
+ } catch (PartInitException e) {
+ Assert.fail("Cannot show GCov View.");
+ }
+ }
+ });
+
+ // Wait for the build job to finish (note: DebugUIPlugin doesn't put launch jobs in a family)
+ Job[] jobs = Job.getJobManager().find(null);
+ for (Job job : jobs) {
+ if (job.getName().contains("Gcov")) {
+ try {
+ job.join();
+ } catch (InterruptedException e) {}
+ break;
+ }
}
}
- public static void openGcovSummaryByLaunch(SWTWorkbenchBot bot,
- String projectName) {
- testGcovLaunchSummary(bot, projectName, "a.out");
+ @Override
+ protected ILaunchConfigurationType getLaunchConfigType() {
+ return null;
}
- /**
- * Click on the specified MenuItem.
- * @param menuItem MenuItem item to click
- */
- private static void click(final MenuItem menuItem) {
- final Event event = new Event();
- event.time = (int) System.currentTimeMillis();
- event.widget = menuItem;
- event.display = menuItem.getDisplay();
- event.type = SWT.Selection;
-
- UIThreadRunnable.asyncExec(menuItem.getDisplay(), new VoidResult() {
- @Override
- public void run() {
- menuItem.notifyListeners(SWT.Selection, event);
- }
- });
+ @Override
+ protected void setProfileAttributes(ILaunchConfigurationWorkingCopy wc) {
}
}
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestC.java b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestC.java
index 8781150311..41162c09bc 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestC.java
+++ b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestC.java
@@ -10,43 +10,21 @@
*******************************************************************************/
package org.eclipse.linuxtools.internal.gcov.test;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+public class GcovTestC extends GcovTest {
-@RunWith(SWTBotJunit4ClassRunner.class)
-public class GcovTestC {
-
- private static SWTWorkbenchBot bot;
-
- private static final String PROJECT_NAME = "Gcov_C_test";
- private static final String PROJECT_TYPE = "C Project";
-
- @BeforeClass
- public static void beforeClass() throws Exception {
- bot = GcovTest.init(PROJECT_NAME, PROJECT_TYPE);
+ @Override
+ protected String getTestProjectName() {
+ return "Gcov_C_test";
}
- @AfterClass
- public static void afterClass() {
- GcovTest.cleanup(bot);
+ @Override
+ protected String getBinName() {
+ return "a.out";
}
- @Test
- public void openGcovFileDetails() throws Exception {
- GcovTest.openGcovFileDetails(bot, PROJECT_NAME);
+ @Override
+ protected boolean getTestProducedReference() {
+ return true;
}
- @Test
- public void openGcovSummary() throws Exception {
- GcovTest.openGcovSummary(bot, PROJECT_NAME, true);
- }
-
- @Test
- public void testGcovSummaryByLaunch() {
- GcovTest.openGcovSummaryByLaunch(bot, PROJECT_NAME);
- }
}
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCLibrary.java b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCLibrary.java
index 624d34dc9a..f8946a7ca3 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCLibrary.java
+++ b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCLibrary.java
@@ -10,40 +10,25 @@
*******************************************************************************/
package org.eclipse.linuxtools.internal.gcov.test;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+public class GcovTestCLibrary extends GcovTest {
-@RunWith(SWTBotJunit4ClassRunner.class)
-public class GcovTestCLibrary {
-
- private static SWTWorkbenchBot bot;
-
- private static final String PROJECT_NAME = "Gcov_C_library_test";
- private static final String PROJECT_TYPE = "C Project";
- private static final String BIN_NAME = "libtestgcovlib.so";
-
- @BeforeClass
- public static void beforeClass() throws Exception {
- bot = GcovTest.init(PROJECT_NAME, PROJECT_TYPE);
+ @Override
+ protected String getTestProjectName() {
+ return "Gcov_C_library_test";
}
- @AfterClass
- public static void afterClass() {
- GcovTest.cleanup(bot);
+ @Override
+ protected String getBinName() {
+ return "libtestgcovlib.so";
}
- @Test
- public void openGcovFileDetails() throws Exception {
- GcovTest.openGcovFileDetails(bot, PROJECT_NAME, BIN_NAME);
+ @Override
+ protected boolean getTestProducedReference() {
+ return true;
}
- @Test
- public void openGcovSummary() throws Exception {
- GcovTest.openGcovSummary(bot, PROJECT_NAME, BIN_NAME, true);
+ @Override
+ public void testGcovSummaryByLaunch() {
}
}
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCPP.java b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCPP.java
index 60923d866e..51d1dec40a 100644
--- a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCPP.java
+++ b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/GcovTestCPP.java
@@ -10,43 +10,21 @@
*******************************************************************************/
package org.eclipse.linuxtools.internal.gcov.test;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+public class GcovTestCPP extends GcovTest {
-@RunWith(SWTBotJunit4ClassRunner.class)
-public class GcovTestCPP {
-
- private static SWTWorkbenchBot bot;
-
- private static final String PROJECT_NAME = "Gcov_CPP_test";
- private static final String PROJECT_TYPE = "C++ Project";
-
- @BeforeClass
- public static void beforeClass() throws Exception {
- bot = GcovTest.init(PROJECT_NAME, PROJECT_TYPE);
+ @Override
+ protected String getTestProjectName() {
+ return "Gcov_CPP_test";
}
- @AfterClass
- public static void afterClass() {
- GcovTest.cleanup(bot);
+ @Override
+ protected String getBinName() {
+ return "a.out";
}
- @Test
- public void openGcovFileDetails() throws Exception {
- GcovTest.openGcovFileDetails(bot, PROJECT_NAME);
+ @Override
+ protected boolean getTestProducedReference() {
+ return false;
}
- @Test
- public void openGcovSummary() throws Exception {
- GcovTest.openGcovSummary(bot, PROJECT_NAME, false);
- }
-
- @Test
- public void testGcovSummaryByLaunch() {
- GcovTest.openGcovSummaryByLaunch(bot, PROJECT_NAME);
- }
}
diff --git a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/JobsRunning.java b/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/JobsRunning.java
deleted file mode 100644
index d2e6fa8e77..0000000000
--- a/gcov/org.eclipse.linuxtools.gcov.test/src/org/eclipse/linuxtools/internal/gcov/test/JobsRunning.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 STMicroelectronics.
- * 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:
- * Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation
- *******************************************************************************/
-package org.eclipse.linuxtools.internal.gcov.test;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.waits.ICondition;
-
-public class JobsRunning implements ICondition {
-
- private final Object family;
- private Job[] allJobs;
-
- public JobsRunning(Object family) {
- this.family = family;
- }
-
- @Override
- public boolean test() {
- this.allJobs = Job.getJobManager().find(family);
- return allJobs.length == 0;
- }
-
- @Override
- public void init(SWTBot bot) {
-
- }
-
- @Override
- public String getFailureMessage() {
- String message = "---JOB RUN ERROR---";
- if (allJobs != null) {
- message += "\nJobs in family \"" + family + "\" still running at time of last test:";
- for (Job job : allJobs) {
- message += "\n\"" + job.getName() + "\" with state " + job.getState();
- }
- } else {
- message += "\nTimeout happened before first test.";
- }
- return message;
- }
-}

Back to the top