From 1a3c38811f0d780fee530835059206e760587b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Mon, 4 Dec 2023 12:06:04 +0100 Subject: [PATCH 01/91] Update partially to Java 8. --- runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/.classpath | 2 +- .../org.eclipse.rcptt.tesla.swt.aspects/META-INF/MANIFEST.MF | 4 ++-- runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/.classpath | 2 +- .../org.eclipse.rcptt.tesla.swt.e4x/META-INF/MANIFEST.MF | 2 +- runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/.classpath | 2 +- .../org.eclipse.rcptt.tesla.swt.fragment/META-INF/MANIFEST.MF | 2 +- runtime/tesla/org.eclipse.rcptt.tesla.swt/.classpath | 2 +- .../tesla/org.eclipse.rcptt.tesla.swt/META-INF/MANIFEST.MF | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/.classpath b/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/.classpath index 121e527a9..22f30643c 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/.classpath +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/.classpath @@ -1,7 +1,7 @@ - + diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/META-INF/MANIFEST.MF b/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/META-INF/MANIFEST.MF index e90c46003..c2c88a262 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/META-INF/MANIFEST.MF +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt.aspects/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Require-Bundle: org.aspectj.runtime;visibility:=reexport, org.eclipse.rcptt.watson.core;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.util;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.tesla.ecl -onEnvironment: JavaSE-1.6 +onEnvironment: JavaSE-1.8 Import-Package: org.osgi.framework Eclipse-SupplementBundle: org.eclipse.swt Bundle-ActivationPolicy: lazy @@ -23,5 +23,5 @@ Export-Package: org.eclipse.rcptt.tesla.swt.aspects, org.eclipse.rcptt.tesla.swt.handles, org.eclipse.rcptt.tesla.swt.images, org.eclipse.rcptt.tesla.swt.profiling -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Activator: org.eclipse.rcptt.tesla.swt.aspects.SWTAspectActivator diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/.classpath b/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/.classpath index ad32c83a7..eca7bdba8 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/.classpath +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/.classpath @@ -1,6 +1,6 @@ - + diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/META-INF/MANIFEST.MF b/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/META-INF/MANIFEST.MF index 1c290bc10..416ae223b 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/META-INF/MANIFEST.MF +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt.e4x/META-INF/MANIFEST.MF @@ -18,5 +18,5 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.103.0", org.eclipse.e4.ui.services, org.eclipse.rcptt.util;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.tesla.swt.aspects;bundle-version="[2.5.5,3.0.0)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/.classpath b/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/.classpath index ad32c83a7..eca7bdba8 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/.classpath +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/.classpath @@ -1,6 +1,6 @@ - + diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/META-INF/MANIFEST.MF b/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/META-INF/MANIFEST.MF index b8e491f21..647db5094 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/META-INF/MANIFEST.MF +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt.fragment/META-INF/MANIFEST.MF @@ -6,6 +6,6 @@ Bundle-Version: 2.5.5.qualifier Bundle-Vendor: Eclipse RCP Testing Tool Project Bundle-Localization: plugin Fragment-Host: org.eclipse.swt -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Export-Package: org.eclipse.swt.dnd Automatic-Module-Name: org.eclipse.rcptt.tesla.swt.fragment diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt/.classpath b/runtime/tesla/org.eclipse.rcptt.tesla.swt/.classpath index 098194ca4..eca7bdba8 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt/.classpath +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt/.classpath @@ -1,6 +1,6 @@ - + diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt/META-INF/MANIFEST.MF b/runtime/tesla/org.eclipse.rcptt.tesla.swt/META-INF/MANIFEST.MF index fd2348dbe..118d4e591 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt/META-INF/MANIFEST.MF +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt/META-INF/MANIFEST.MF @@ -24,7 +24,7 @@ Require-Bundle: org.eclipse.ui;visibility:=reexport, org.eclipse.rcptt.tesla.recording.core;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.watson.aspects.jobs;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.watson.aspects.swt;bundle-version="[2.5.5,3.0.0)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Export-Package: org.eclipse.rcptt.tesla.internal.ui, org.eclipse.rcptt.tesla.internal.ui.player, From c6c29ffb334a7c4ae528540c79fb98642347c890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Tue, 5 Dec 2023 11:48:19 +0100 Subject: [PATCH 02/91] Update to latest Tycho minor release. --- releng/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releng/pom.xml b/releng/pom.xml index 83679b5f0..f97e322ae 100644 --- a/releng/pom.xml +++ b/releng/pom.xml @@ -16,7 +16,7 @@ 2.5.5-SNAPSHOT pom - 2.7.1 + 2.7.5 org.eclipse.tycho UTF-8 http://download.eclipse.org/tools/ajdt/43/update/ From dfa5d3c06f8050a41f9e4db4572e2aaf4a42c57f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Mon, 19 Jun 2023 16:38:51 +0200 Subject: [PATCH 03/91] Update to Eclipse 2023-06 --- devenv/launches/RCPTT IDE AUT.launch | 3 +- devenv/launches/RCPTT IDE Self AUT.launch | 2 +- devenv/launches/RCPTT IDE.launch | 3 +- .../eclipse/rcptt/launching/ext/ide.target | 29 ++++++----- .../META-INF/MANIFEST.MF | 4 +- .../META-INF/MANIFEST.MF | 4 +- .../rcptt/search/Q7SearchResultPage.java | 5 +- releng/ide/pom.xml | 8 +-- releng/target-platforms/2023-06/ide.target | 49 +++++++++++++++++++ repository/full/org.eclipse.rcptt.product | 8 +-- .../feature.xml | 10 +--- .../META-INF/MANIFEST.MF | 6 +-- runner/product/rcptt.runner.product | 19 ++++--- 13 files changed, 94 insertions(+), 56 deletions(-) create mode 100644 releng/target-platforms/2023-06/ide.target diff --git a/devenv/launches/RCPTT IDE AUT.launch b/devenv/launches/RCPTT IDE AUT.launch index 9a423c018..6b2d197f6 100644 --- a/devenv/launches/RCPTT IDE AUT.launch +++ b/devenv/launches/RCPTT IDE AUT.launch @@ -322,8 +322,7 @@ - - + diff --git a/devenv/launches/RCPTT IDE Self AUT.launch b/devenv/launches/RCPTT IDE Self AUT.launch index 4d3354f29..366e76b39 100644 --- a/devenv/launches/RCPTT IDE Self AUT.launch +++ b/devenv/launches/RCPTT IDE Self AUT.launch @@ -23,7 +23,7 @@ - + diff --git a/devenv/launches/RCPTT IDE.launch b/devenv/launches/RCPTT IDE.launch index 0a0d5bf45..4810266a5 100644 --- a/devenv/launches/RCPTT IDE.launch +++ b/devenv/launches/RCPTT IDE.launch @@ -326,8 +326,7 @@ - - + diff --git a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/ide.target b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/ide.target index 9c06f123b..3cd069cdb 100644 --- a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/ide.target +++ b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/ext/ide.target @@ -1,6 +1,6 @@ - + @@ -8,11 +8,13 @@ - - + + + + @@ -20,20 +22,17 @@ - + - - + + + + + + - - - - - - - @@ -43,8 +42,8 @@ - - + + \ No newline at end of file diff --git a/modules/testrail/plugins/org.eclipse.rcptt.testrail/META-INF/MANIFEST.MF b/modules/testrail/plugins/org.eclipse.rcptt.testrail/META-INF/MANIFEST.MF index 8d32fe12d..fc78d9cb3 100644 --- a/modules/testrail/plugins/org.eclipse.rcptt.testrail/META-INF/MANIFEST.MF +++ b/modules/testrail/plugins/org.eclipse.rcptt.testrail/META-INF/MANIFEST.MF @@ -7,8 +7,8 @@ Require-Bundle: org.eclipse.core.resources, org.eclipse.core.runtime, org.eclipse.rcptt.core;bundle-version="2.5.5", org.eclipse.rcptt.reporting;bundle-version="2.5.5", - org.apache.httpcomponents.httpcore;bundle-version="4.3.3", - org.apache.httpcomponents.httpclient;bundle-version="4.3.6", + org.apache.httpcomponents.httpcore;bundle-version="4.4.14", + org.apache.httpcomponents.httpclient;bundle-version="4.5.13", com.google.gson;bundle-version="2.2.4", org.eclipse.rcptt.reporting.util;bundle-version="2.5.5", org.eclipse.debug.core, diff --git a/modules/zephyr/plugins/org.eclipse.rcptt.zephyr/META-INF/MANIFEST.MF b/modules/zephyr/plugins/org.eclipse.rcptt.zephyr/META-INF/MANIFEST.MF index 487a59f53..a3f50ad67 100644 --- a/modules/zephyr/plugins/org.eclipse.rcptt.zephyr/META-INF/MANIFEST.MF +++ b/modules/zephyr/plugins/org.eclipse.rcptt.zephyr/META-INF/MANIFEST.MF @@ -13,8 +13,8 @@ Require-Bundle: org.eclipse.core.resources, org.eclipse.equinox.security, org.eclipse.rcptt.util, org.eclipse.rcptt.launching;bundle-version="2.5.5", - org.apache.httpcomponents.httpclient, - org.apache.httpcomponents.httpcore, + org.apache.httpcomponents.httpclient;bundle-version="4.5.13", + org.apache.httpcomponents.httpcore;bundle-version="4.4.14", org.apache.commons.lang3 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Export-Package: org.eclipse.rcptt.internal.zephyr, diff --git a/rcp/org.eclipse.rcptt.search/src/org/eclipse/rcptt/search/Q7SearchResultPage.java b/rcp/org.eclipse.rcptt.search/src/org/eclipse/rcptt/search/Q7SearchResultPage.java index 7d6493aa1..9c6f42526 100644 --- a/rcp/org.eclipse.rcptt.search/src/org/eclipse/rcptt/search/Q7SearchResultPage.java +++ b/rcp/org.eclipse.rcptt.search/src/org/eclipse/rcptt/search/Q7SearchResultPage.java @@ -62,7 +62,7 @@ import org.eclipse.ui.part.IShowInTargetList; import org.eclipse.ui.part.ResourceTransfer; import org.eclipse.ui.part.ShowInContext; -import org.eclipse.ui.views.navigator.NavigatorDragAdapter; +import org.eclipse.search.internal.ui.text.NavigatorDragAdapter; import org.eclipse.rcptt.search.utils.ScenarioTableContentProvider; import org.eclipse.rcptt.search.utils.ScenarioTreeContentProvider; @@ -129,8 +129,7 @@ public int compare(Viewer viewer, Object e1, Object e2) { private SortAction fSortByNameAction; private SortAction fSortByPathAction; - @SuppressWarnings("deprecation") - private static final String[] SHOW_IN_TARGETS = new String[] { IPageLayout.ID_RES_NAV }; + private static final String[] SHOW_IN_TARGETS = new String[] { IPageLayout.ID_PROJECT_EXPLORER }; private static final IShowInTargetList SHOW_IN_TARGET_LIST = new IShowInTargetList() { public String[] getShowInTargetIds() { return SHOW_IN_TARGETS; diff --git a/releng/ide/pom.xml b/releng/ide/pom.xml index 5123764fb..393ae5672 100644 --- a/releng/ide/pom.xml +++ b/releng/ide/pom.xml @@ -42,14 +42,14 @@ - 2020-03-updates + 2023-06-updates p2 - http://download.eclipse.org/eclipse/updates/4.15 + https://download.eclipse.org/eclipse/updates/4.28/ - 2020-09 + 2023-06 p2 - http://download.eclipse.org/releases/2022-09 + http://download.eclipse.org/releases/2023-06 orbit diff --git a/releng/target-platforms/2023-06/ide.target b/releng/target-platforms/2023-06/ide.target new file mode 100644 index 000000000..94421413e --- /dev/null +++ b/releng/target-platforms/2023-06/ide.target @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repository/full/org.eclipse.rcptt.product b/repository/full/org.eclipse.rcptt.product index 037d6893c..074650339 100644 --- a/repository/full/org.eclipse.rcptt.product +++ b/repository/full/org.eclipse.rcptt.product @@ -1,11 +1,13 @@ - + - %productBlurb + + %productBlurb + @@ -305,7 +307,6 @@ - @@ -323,6 +324,7 @@ + diff --git a/runner/features/org.eclipse.rcptt.runner.runner-feature/feature.xml b/runner/features/org.eclipse.rcptt.runner.runner-feature/feature.xml index 6375423c1..2b34bcd3b 100644 --- a/runner/features/org.eclipse.rcptt.runner.runner-feature/feature.xml +++ b/runner/features/org.eclipse.rcptt.runner.runner-feature/feature.xml @@ -111,15 +111,7 @@ unpack="false"/> - - - + @@ -30,6 +30,8 @@ + + @@ -56,10 +58,8 @@ - + - - @@ -73,7 +73,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -159,9 +159,8 @@ - - + @@ -282,7 +281,7 @@ - + From 4a86a3c69e4daa96c80f45a7f314ccb4c370a62c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 7 Feb 2024 10:49:13 +0100 Subject: [PATCH 04/91] org.eclipse.core.net.linux.x86_64 was removed. --- devenv/launches/RCPTT IDE Self AUT.launch | 2 +- runner/product/rcptt.runner.product | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/devenv/launches/RCPTT IDE Self AUT.launch b/devenv/launches/RCPTT IDE Self AUT.launch index 366e76b39..2646ba905 100644 --- a/devenv/launches/RCPTT IDE Self AUT.launch +++ b/devenv/launches/RCPTT IDE Self AUT.launch @@ -23,7 +23,7 @@ - + diff --git a/runner/product/rcptt.runner.product b/runner/product/rcptt.runner.product index a088c0bfd..ecc46245e 100644 --- a/runner/product/rcptt.runner.product +++ b/runner/product/rcptt.runner.product @@ -78,7 +78,6 @@ - From 3f7e8a750e5451425d1cce9a2a95982ac2eb136c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 7 Feb 2024 12:18:47 +0100 Subject: [PATCH 05/91] org.eclipse.jetty.continuation was removed in Eclipse 4.20 --- runner/product/rcptt.runner.product | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/product/rcptt.runner.product b/runner/product/rcptt.runner.product index ecc46245e..3f75156e8 100644 --- a/runner/product/rcptt.runner.product +++ b/runner/product/rcptt.runner.product @@ -169,7 +169,6 @@ - From 35bc47de26ec461241325720be2cb2db604f43f6 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 13 Mar 2024 18:32:24 +0400 Subject: [PATCH 06/91] Add missing dependencies of org.eclipse.pde.core #21 --- runner/product/rcptt.runner.product | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/product/rcptt.runner.product b/runner/product/rcptt.runner.product index 3f75156e8..7e7db833f 100644 --- a/runner/product/rcptt.runner.product +++ b/runner/product/rcptt.runner.product @@ -1,7 +1,7 @@ - + @@ -32,6 +32,8 @@ + + @@ -294,6 +296,7 @@ + From b9593b0982ae2adff6f4a0f2c2b1c7e0ffee5dcc Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 14 Mar 2024 13:42:59 +0400 Subject: [PATCH 07/91] Ignore Tycho volatiles --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index f7202e261..73a2da79a 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,6 @@ maven-plugin/rcptt-maven-util/rcptt-maven-util.iml maven-plugin/rcptt-maven-plugin/rcptt-maven-plugin.iml maven-plugin/rcptt-maven-modules.iml .idea +.tycho-consumer-pom.xml +tycho*secure_storage +tycho_reactor_agent*/ From 694b81779f4c6b7f010287a8b3349fa69b2d8077 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 14 Mar 2024 13:49:24 +0400 Subject: [PATCH 08/91] Build aarch64 product for macos --- releng/ide/pom.xml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/releng/ide/pom.xml b/releng/ide/pom.xml index 393ae5672..224b7a3ee 100644 --- a/releng/ide/pom.xml +++ b/releng/ide/pom.xml @@ -31,6 +31,35 @@ + + ${tycho-groupid} + target-platform-configuration + + p2 + + + win32 + win32 + x86_64 + + + linux + gtk + x86_64 + + + macosx + cocoa + x86_64 + + + macosx + cocoa + aarch64 + + + + From 1cba0c50e61c5784eff6023dfbec534b3daf55c2 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 14 Mar 2024 16:09:22 +0400 Subject: [PATCH 09/91] Fix OOM error by increasing heap size The error: [INFO] !ENTRY org.eclipse.core.jobs 4 2 2024-03-14 12:01:21.230 [INFO] !MESSAGE An internal error occurred during: "Debug Event Dispatch". [INFO] !STACK 0 [INFO] java.lang.OutOfMemoryError: Java heap space [INFO] at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1476) [INFO] at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1297) [INFO] at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1259) [INFO] at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:707) [INFO] at java.base/java.util.zip.ZipFile.(ZipFile.java:241) [INFO] at java.base/java.util.zip.ZipFile.(ZipFile.java:172) [INFO] at org.eclipse.pde.internal.core.util.ManifestUtils.loadManifest(ManifestUtils.java:108) [INFO] at org.eclipse.pde.internal.core.MinimalState.addBundle(MinimalState.java:179) [INFO] at org.eclipse.pde.internal.core.PDEState.createNewTargetState(PDEState.java:97) [INFO] at org.eclipse.pde.internal.core.PDEState.(PDEState.java:64) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate.getModels(Q7ExternalLaunchDelegate.java:889) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate.access$0(Q7ExternalLaunchDelegate.java:888) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate$BundlesToLaunchCollector.addPluginBundle(Q7ExternalLaunchDelegate.java:690) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate$BundlesToLaunchCollector.access$1(Q7ExternalLaunchDelegate.java:689) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate.collectBundles(Q7ExternalLaunchDelegate.java:824) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate.collectBundlesCheck(Q7ExternalLaunchDelegate.java:800) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate.preLaunchCheck(Q7ExternalLaunchDelegate.java:635) [INFO] at org.eclipse.pde.launching.AbstractPDELaunchConfiguration.launch(AbstractPDELaunchConfiguration.java:140) [INFO] at org.eclipse.rcptt.launching.ext.Q7ExternalLaunchDelegate.launch(Q7ExternalLaunchDelegate.java:127) [INFO] at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:806) [INFO] at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:717) [INFO] at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:712) [INFO] at org.eclipse.rcptt.internal.launching.aut.BaseAutLaunch.restart(BaseAutLaunch.java:454) [INFO] at org.eclipse.rcptt.internal.launching.aut.BaseAutLaunch.terminateProcess(BaseAutLaunch.java:518) [INFO] at org.eclipse.rcptt.internal.launching.aut.BaseAutManager.handleDebugEvents(BaseAutManager.java:248) [INFO] at org.eclipse.debug.core.DebugPlugin$EventNotifier.run(DebugPlugin.java:1226) [INFO] at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) [INFO] at org.eclipse.debug.core.DebugPlugin$EventNotifier.dispatch(DebugPlugin.java:1260) [INFO] at org.eclipse.debug.core.DebugPlugin$EventDispatchJob.run(DebugPlugin.java:492) [INFO] at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) --- repository/full/org.eclipse.rcptt.product | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/full/org.eclipse.rcptt.product b/repository/full/org.eclipse.rcptt.product index 074650339..291b2014b 100644 --- a/repository/full/org.eclipse.rcptt.product +++ b/repository/full/org.eclipse.rcptt.product @@ -17,7 +17,7 @@ -showsplash org.eclipse.rcptt.platform -Xms200m --Xmx1G +-Xmx2G --add-modules=ALL-SYSTEM -XstartOnFirstThread From 5dde14bfcfb6c1ab1d30b3b103f72a0993887277 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 15 Mar 2024 15:13:52 +0400 Subject: [PATCH 10/91] Adapt test to menus change in 2023-06 --- .../ECL_IDE_module/selfAUTTests/q7commands/GetMenu.test | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/GetMenu.test b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/GetMenu.test index 756243fc3..7f60b4fd2 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/GetMenu.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/GetMenu.test @@ -5,15 +5,15 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _76u9cK8lEee2w7lxIxf6bQ -Runtime-Version: 2.3.0.qualifier -Save-Time: 10/12/17 3:19 PM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/15/24, 3:12 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac Content-Type: text/ecl Entry-Name: .content -get-view "Test Explorer" | get-tree | get-menu -path "New/.*" -index 2 | click +get-view "Test Explorer" | get-tree | get-menu -path "New/.*" -index 1 | click get-window "New Project" | close verify-error { From e0ec0b0a2211fe113ea64841a8ded7d39606d20e Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 16 Mar 2024 00:57:38 +0400 Subject: [PATCH 11/91] Fix AUT launch New Aspectj and --add-opens argument are required --- devenv/launches/RCPTT IDE AUT.launch | 106 +++------------------ releng/target-platforms/2023-06/ide.target | 2 +- 2 files changed, 16 insertions(+), 92 deletions(-) diff --git a/devenv/launches/RCPTT IDE AUT.launch b/devenv/launches/RCPTT IDE AUT.launch index 6b2d197f6..f0fd5ffda 100644 --- a/devenv/launches/RCPTT IDE AUT.launch +++ b/devenv/launches/RCPTT IDE AUT.launch @@ -3,6 +3,7 @@ + @@ -14,16 +15,17 @@ + - + - + @@ -31,7 +33,6 @@ - @@ -40,9 +41,7 @@ - - @@ -53,63 +52,42 @@ - - - - - - + + - + - - + - - + - - - - + + - - - - - - - - - - - - - @@ -120,19 +98,15 @@ - - - - @@ -142,8 +116,6 @@ - - @@ -153,7 +125,6 @@ - @@ -162,7 +133,6 @@ - @@ -202,10 +172,6 @@ - - - - @@ -233,7 +199,6 @@ - @@ -265,14 +230,12 @@ - - @@ -317,8 +280,6 @@ - - @@ -370,19 +331,11 @@ - - - - - - - - @@ -393,7 +346,7 @@ - + @@ -403,7 +356,6 @@ - @@ -425,7 +377,6 @@ - @@ -437,18 +388,6 @@ - - - - - - - - - - - - @@ -465,22 +404,20 @@ + + + - - - - - @@ -514,27 +451,19 @@ - - - - - - - - @@ -600,7 +529,6 @@ - @@ -611,8 +539,6 @@ - - @@ -620,7 +546,6 @@ - @@ -648,7 +573,6 @@ - diff --git a/releng/target-platforms/2023-06/ide.target b/releng/target-platforms/2023-06/ide.target index 94421413e..16c597c36 100644 --- a/releng/target-platforms/2023-06/ide.target +++ b/releng/target-platforms/2023-06/ide.target @@ -39,7 +39,7 @@ - + From a4990c97e982230b514ef0e5b40c8355c0e1fbb9 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 18 Mar 2024 13:19:04 +0400 Subject: [PATCH 12/91] Ensure no workign set is selected before searching the workspace in tests --- .../SearchReplace/SearchTestInDescription.test | 11 +++++++++-- .../SearchReplace/SearchTextInContexts.test | 11 +++++++++-- .../SearchReplace/SearchTextInScript.test | 11 +++++++++-- .../SearchReplace/SearchTextInTags.test | 11 +++++++++-- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test b/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test index 9aa5a3562..7c7d57bcf 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _ju6WoO51EeCWFp5-_cxtIw -Runtime-Version: 2.5.2.202204240826 -Save-Time: 4/26/22, 5:40 PM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/18/24, 1:18 PM Tags: SearchReplace, Description Testcase-Type: ecl @@ -36,6 +36,13 @@ TEST STEPS: Content-Type: text/ecl Entry-Name: .content +with [get-view "Test Explorer"] { + with [get-menu -path "Deselect Working Set"] { + try -command { + click + } -catch {} + } +} get-button Search | click -arrow get-menu "1 RCPTT Search" | click with [get-window Search] { diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test b/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test index 063cdd9c3..946e813a9 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _fJBUIO52EeCWFp5-_cxtIw -Runtime-Version: 2.5.2.202204240826 -Save-Time: 4/27/22, 7:59 PM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/18/24, 1:17 PM Tags: SearchReplace, Context Testcase-Type: ecl @@ -36,6 +36,13 @@ TEST STEPS: Content-Type: text/ecl Entry-Name: .content +with [get-view "Test Explorer"] { + with [get-menu -path "Deselect Working Set"] { + try -command { + click + } -catch {} + } +} get-button Search | click -arrow get-menu "1 RCPTT Search" | click with [get-window Search] { diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test b/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test index 8e89f6243..7a01bc039 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _30eMIO50EeCWFp5-_cxtIw -Runtime-Version: 2.5.2.202204240826 -Save-Time: 4/27/22, 6:41 PM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/18/24, 1:18 PM Tags: SearchReplace, TestCase Testcase-Type: ecl @@ -37,6 +37,13 @@ TEST STEPS: Content-Type: text/ecl Entry-Name: .content +with [get-view "Test Explorer"] { + with [get-menu -path "Deselect Working Set"] { + try -command { + click + } -catch {} + } +} get-button Search | click -arrow get-menu "1 RCPTT Search" | click with [get-window Search] { diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test b/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test index f819fc448..238039a3e 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _FuR_IO52EeCWFp5-_cxtIw -Runtime-Version: 2.5.2.202204240826 -Save-Time: 4/27/22, 6:42 PM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/18/24, 1:18 PM Tags: SearchReplace, Tags Testcase-Type: ecl @@ -36,6 +36,13 @@ TEST STEPS: Content-Type: text/ecl Entry-Name: .content +with [get-view "Test Explorer"] { + with [get-menu -path "Deselect Working Set"] { + try -command { + click + } -catch {} + } +} get-button Search | click -arrow get-menu "1 RCPTT Search" | click with [get-window Search] { From 900702247730a1d1b74428212d83a1ac20c8c21a Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 18 Mar 2024 18:56:50 +0400 Subject: [PATCH 13/91] TP draft 2024-03 --- releng/target-platforms/2024-03/ide.target | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 releng/target-platforms/2024-03/ide.target diff --git a/releng/target-platforms/2024-03/ide.target b/releng/target-platforms/2024-03/ide.target new file mode 100644 index 000000000..38ed6ef1d --- /dev/null +++ b/releng/target-platforms/2024-03/ide.target @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 998eb1ff9fa137c284a8c00ae3a817282d397775 Mon Sep 17 00:00:00 2001 From: Ulyana Skorokhodova Date: Wed, 20 Mar 2024 16:04:00 +0700 Subject: [PATCH 14/91] fix search rcptt tests --- .../platform_tests/SearchReplace/SearchTestInDescription.test | 1 + .../platform_tests/SearchReplace/SearchTextInContexts.test | 1 + rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test | 1 + rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test | 1 + 4 files changed, 4 insertions(+) diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test b/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test index 5e157c3fe..a53b674df 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTestInDescription.test @@ -48,6 +48,7 @@ get-menu "1 RCPTT Search" | click with [get-window Search] { get-combo -after [get-label "Containing text:"] | set-text key get-group "Search in" | get-button Description | click + get-group Scope | get-button Workspace | click get-button Search | click } get-view Search | get-button "Expand All" | click diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test b/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test index 26e60df57..c1c8889cd 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTextInContexts.test @@ -49,6 +49,7 @@ with [get-window Search] { get-combo -after [get-label "Containing text:"] | set-text key get-group "Search in" | get-button Contexts | click + get-group Scope | get-button Workspace | click get-button Search | click } get-view Search | get-button "Expand All" | click diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test b/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test index d9ba1ee45..923c34171 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTextInScript.test @@ -53,6 +53,7 @@ with [get-window Search] { key-type "ARROW_DOWN" } get-group "Search in" | get-button Script | click + get-group Scope | get-button Workspace | click get-button Search | click } get-view Search | get-button "Expand All" | click diff --git a/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test b/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test index 7470d7102..687d19fa8 100644 --- a/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test +++ b/rcpttTests/platform_tests/SearchReplace/SearchTextInTags.test @@ -49,6 +49,7 @@ with [get-window Search] { get-combo -after [get-label "Containing text:"] | set-text key get-group "Search in" | get-button Tags | click + get-group Scope | get-button Workspace | click get-button Search | click } get-view Search | get-button "Expand All" | click From 39ee8c3d931bed7483b176c9cf4c63760556dcb7 Mon Sep 17 00:00:00 2001 From: Ulyana Skorokhodova Date: Wed, 20 Mar 2024 17:58:15 +0700 Subject: [PATCH 15/91] disable verify icons rcptt test --- .../verifications/TableTree/Verify_Not Verify Icons.test | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/TableTree/Verify_Not Verify Icons.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/TableTree/Verify_Not Verify Icons.test index 6adc3d380..4e7195b29 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/TableTree/Verify_Not Verify Icons.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/TableTree/Verify_Not Verify Icons.test @@ -6,14 +6,17 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _BKzUsBZtEeWfXuiNKOMhqw -Runtime-Version: 2.2.0.qualifier -Save-Time: 5/22/17 11:48 AM +Runtime-Version: 2.5.5.202403161845 +Save-Time: 3/20/24, 5:56 PM +Tags: skipExecution Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa Content-Type: text/plain Entry-Name: .description +Disabled because of https://bugs.eclipse.org/bugs/show_bug.cgi?id=579775 + Copyright (c) 2009, 2019 Xored Software Inc and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 From 735d7adb19121c34d951494eec984c6680aff438 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 20 Mar 2024 15:27:17 +0400 Subject: [PATCH 16/91] Do not use index to identify rows in an unsorted table --- .../ScenarioEditor/TasksInScriptEditor/ShowInTask.test | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test index 778b8ed5b..f3f145b71 100644 --- a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test +++ b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _7lhuwF0IEeGDGrudSYLu8w -Runtime-Version: 2.5.0.201910180844 -Save-Time: 10/21/19 3:20 AM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/20/24, 3:25 PM Tags: ECL_IDE_module, TestCase, Task Testcase-Type: ecl @@ -71,7 +71,7 @@ with [get-view "Test Explorer"] { with [get-view "Test Explorer" | get-tree] { get-item "MyProject/TestFolder/WorkspaceIsEmpty" | get-property selected | equals false | verify-true } -get-view Tasks | get-tree | select [get-item "" -index 1] | get-menu "Show In/Test Explorer" | click +get-view Tasks | get-tree | select [get-item -path "\\/\\/ New verification should be added" -column Description ] | get-menu "Show In/Test Explorer" | click with [get-view "Test Explorer" | get-tree] { get-item "MyProject/TestFolder/WorkspaceIsEmpty" | get-property caption | equals WorkspaceIsEmpty | verify-true get-item "MyProject/TestFolder/WorkspaceIsEmpty" | get-property selected | equals true | verify-true @@ -88,7 +88,7 @@ get-editor CreateJavaProject | get-section Script | get-editbox | get-property t + "get-view \"Package Explorer\" | get-tree | get-property itemCount | equals 1 | verify-true\n" + "get-view \"Package Explorer\" | get-tree | get-item TestProject | get-property caption | equals TestProject | verify-true" | verify-true -get-view Tasks | get-tree | select [get-item "" -index 2] | get-menu "Show In/Properties" | click +get-view Tasks | get-tree | select [get-item "\\/\\/ TODO: Add new asserion after fixing of bug" -column Description] | get-menu "Show In/Properties" | click get-tab-folder -index 3 | get-property pages -index 4 | equals Properties | verify-true with [get-view Properties | get-tree] { get-property itemCount | equals 1 | verify-true From 7c166bd60e2bc3efdc60f119670ea6b654d4818e Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 20 Mar 2024 16:22:11 +0400 Subject: [PATCH 17/91] Fix changed units in target definition --- releng/target-platforms/2024-03/ide.target | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releng/target-platforms/2024-03/ide.target b/releng/target-platforms/2024-03/ide.target index 38ed6ef1d..25cab0e6e 100644 --- a/releng/target-platforms/2024-03/ide.target +++ b/releng/target-platforms/2024-03/ide.target @@ -24,14 +24,14 @@ - + - + From 4da1028b0223abe47aaeaa5e0e7ced71f75dc6ec Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 20 Mar 2024 16:59:37 +0400 Subject: [PATCH 18/91] Fix compilation errors #28 --- .../org.eclipse.rcptt.launching.p2utils/META-INF/MANIFEST.MF | 2 +- .../src/org/eclipse/rcptt/launching/p2utils/P2Utils.java | 2 +- releng/ide/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/launching/org.eclipse.rcptt.launching.p2utils/META-INF/MANIFEST.MF b/launching/org.eclipse.rcptt.launching.p2utils/META-INF/MANIFEST.MF index 04c7c7262..3f269875f 100644 --- a/launching/org.eclipse.rcptt.launching.p2utils/META-INF/MANIFEST.MF +++ b/launching/org.eclipse.rcptt.launching.p2utils/META-INF/MANIFEST.MF @@ -17,7 +17,7 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.rcptt.launching.injection;bundle-version="[2.5.5,3.0.0)", org.eclipse.pde.core, org.eclipse.equinox.p2.repository.tools, - org.eclipse.equinox.p2.director, + org.eclipse.equinox.p2.director;bundle-version="2.6.200", org.eclipse.rcptt.util;bundle-version="[2.5.5,3.0.0)" Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-ActivationPolicy: lazy diff --git a/launching/org.eclipse.rcptt.launching.p2utils/src/org/eclipse/rcptt/launching/p2utils/P2Utils.java b/launching/org.eclipse.rcptt.launching.p2utils/src/org/eclipse/rcptt/launching/p2utils/P2Utils.java index b344561d5..049c12656 100644 --- a/launching/org.eclipse.rcptt.launching.p2utils/src/org/eclipse/rcptt/launching/p2utils/P2Utils.java +++ b/launching/org.eclipse.rcptt.launching.p2utils/src/org/eclipse/rcptt/launching/p2utils/P2Utils.java @@ -392,7 +392,7 @@ public static void expandFeatures(IProgressMonitor monitor, IMetadataRepository false); // slicingOptions.followOnlyFilteredRequirements()); IQueryable slice = slicer - .slice(availableUnits.toArray(new IInstallableUnit[availableUnits.size()]), monitor); + .slice(availableUnits, monitor); availableUnits.addAll(slice.query(QueryUtil.ALL_UNITS, monitor).toSet()); } } diff --git a/releng/ide/pom.xml b/releng/ide/pom.xml index 6b686f0e0..74b907f56 100644 --- a/releng/ide/pom.xml +++ b/releng/ide/pom.xml @@ -78,7 +78,7 @@ 2023-06 p2 - http://download.eclipse.org/releases/2023-06 + http://download.eclipse.org/releases/2024-03 orbit From b96f0e58d0e8fc547ccf64261cbbf5e674384d65 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 20 Mar 2024 21:08:18 +0400 Subject: [PATCH 19/91] more test stabilization --- ...int In Proc_Step Into_Check Variables.test | 4 ++-- .../debugging/SetBreakpointToCommentLine.test | 22 +++++++++++-------- .../RefreshControlStateInAssertionMode.test | 16 ++++++++------ 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Check Variables.test b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Check Variables.test index 8b5a135e5..c46b27bea 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Check Variables.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Check Variables.test @@ -7,7 +7,7 @@ Element-Version: 3.0 External-Reference: Id: _P7DxkSWhEeOQ58zpl-lVdg Runtime-Version: 2.5.5.202403150112 -Save-Time: 3/19/24, 10:27 PM +Save-Time: 3/20/24, 8:52 PM Tags: selfAUT Testcase-Type: ecl @@ -38,7 +38,7 @@ with [get-editor "New Java Class Procs" | get-section Script | get-left-ruler] { get-menu "Toggle Breakpoint" | click } -set-q7-option jobHangTimeout 100 +set-q7-option jobHangTimeout 1000 get-view "Test Explorer" | get-tree | select "MyProject/Dummy" | get-menu "Debug As/1 Test Cases" | click try { diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointToCommentLine.test b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointToCommentLine.test index 5a96277e1..4df5cc287 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointToCommentLine.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointToCommentLine.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _u_S3IHM6EeGsLtfm1BUmHg -Runtime-Version: 2.2.0.qualifier -Save-Time: 5/22/17 11:41 AM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/20/24, 8:58 PM Tags: feature/debug, selfAUT Testcase-Type: ecl @@ -54,15 +54,19 @@ with [get-editor CreateJavaProject | get-section Script] { //get-window -from "Information Window" | get-control Browser | get-property text // | matches "^.*Line Breakpoint: CreateJavaProject\.test \[line: 8].*$" | verify-true get-menu "Run/Debug As/.* Test Cases" | click +set-q7-option jobHangTimeout 1000 get-window "Save Resource" | get-button Save | click -get-view Debug | get-tree - | get-item "CreateJavaProject \\[RCPTT Test Suite\\]/CreateJavaProject/ECL Thread/get-view \\(CreateJavaProject: 1\\)" - | get-property caption | equals "get-view (CreateJavaProject: 1)" | verify-true +try -times 10 -delay 1000 -command { + get-view Debug | get-tree + | get-item "CreateJavaProject \\[RCPTT Test Suite\\]/CreateJavaProject/ECL Thread/get-view \\(CreateJavaProject: 1\\)" + | get-property caption | equals "get-view (CreateJavaProject: 1)" | verify-true +} get-view Debug | get-tree | key-type F8 -wait 2000 -get-view Debug | get-tree - | get-item "CreateJavaProject \\[RCPTT Test Suite\\]/CreateJavaProject/ECL Thread" - | get-property caption | equals "ECL Thread" | verify-true +try -times 10 -delay 1000 -command { + get-view Debug | get-tree + | get-item "CreateJavaProject \\[RCPTT Test Suite\\]/CreateJavaProject/ECL Thread" + | get-property caption | equals "ECL Thread" | verify-true +} get-button "RCPTT perspective" | click with [get-view "Execution View"] { get-tree | get-item "CreateJavaProject.*" | get-property caption diff --git a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test index 13ab3e1d3..d274e3c92 100644 --- a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test +++ b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _k6AFUGWjEeSAaoCk3UVcKg -Runtime-Version: 1.5.6.201504052309 -Save-Time: 4/28/15 3:12 PM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/20/24, 9:03 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -23,11 +23,13 @@ try -command {get-view "Execution View" | get-label "1/1"} -times 1000 -delay 10 get-button "Record a Snippet" | click -get-aut selfQ7 | eval { - get-view "Test Explorer" | get-tree | select "Test/Waiting" | get-menu Open | click - get-view Console | get-button "Clear Console" | click - exec-with-options -disableJobWaiting -command { - get-editor Waiting | get-button Replay | click +try -times 10 -delay 1000 -command { + get-aut selfQ7 | eval { + get-view "Test Explorer" | get-tree | select "Test/Waiting" | get-menu Open | click + get-view Console | get-button "Clear Console" | click + exec-with-options -disableJobWaiting -command { + get-editor Waiting | get-button Replay | click + } } } From cf9f64858f9373c1bc99bff281eb75bbf23c9fe8 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 20 Mar 2024 21:14:29 +0400 Subject: [PATCH 20/91] Dispose leaked resource --- .../src/org/eclipse/rcptt/ui/panels/MenuToolbar.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/MenuToolbar.java b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/MenuToolbar.java index 282aef06f..fa9b0826f 100644 --- a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/MenuToolbar.java +++ b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/MenuToolbar.java @@ -14,6 +14,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Composite; @@ -29,8 +30,10 @@ public Control create(Composite parent) { final ToolBar toolbar = new ToolBar(parent, SWT.FLAT | SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolbar, SWT.NONE); - item.setImage(Images.getImageDescriptor(Images.PANEL_MENU) - .createImage()); + Image image = Images.getImageDescriptor(Images.PANEL_MENU) + .createImage(); + item.addDisposeListener(event -> image.dispose()); + item.setImage(image); final MenuManager manager = new MenuManager(); fill(manager); From 7e1bab74e9eed23e928a5ab37d84cd7c83571705 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 20 Mar 2024 21:22:07 +0400 Subject: [PATCH 21/91] Stabilize more tests --- ...eProjectWithoutDeleteFromDiskByHotKey.test | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test b/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test index ca30dc09f..18aab3568 100644 --- a/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test +++ b/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _6UOKUILYEeGVWel_bIqsJQ -Runtime-Version: 2.4.1.qualifier -Save-Time: 4/2/19 12:33 PM +Runtime-Version: 2.5.5.202403150112 +Save-Time: 3/20/24, 9:21 PM Tags: Project, Delete, UndoRedo Testcase-Type: ecl Verifications: _UnfUID8XEeSyDoCDFnaFCg @@ -64,12 +64,13 @@ with [get-view "Test Explorer" | get-tree] { } get-view "Test Explorer" | get-tree | key-type [get-by-os -win "M1+y" -default "M1+M2+z"] -wait 200 -with [get-view "Test Explorer" | get-tree] { - get-property itemCount | equals 2 | verify-true - get-item p1 | get-property caption | equals p1 | verify-true - get-item p1 | get-property childCount | equals 4 | verify-true - get-item p2 | get-property caption | equals p2 | verify-true - get-item p2 | get-property childCount | equals 3 | verify-true -} +try -times 1000 -delay 1000 -command { + with [get-view "Test Explorer" | get-tree] { + get-property itemCount | equals 2 | verify-true + get-item p1 | get-property caption | equals p1 | verify-true + get-item p1 | get-property childCount | equals 4 | verify-true + get-item p2 | get-property caption | equals p2 | verify-true + get-item p2 | get-property childCount | equals 3 | verify-true + } +} ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From fe9a7754f3a07a240aad24445ef208a3925d5fd6 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 21 Mar 2024 15:22:17 +0400 Subject: [PATCH 22/91] Do not leak resources --- ecl/plugins/org.eclipse.rcptt.ecl.core/.project | 11 +++++++++++ .../ui/panels/assertion/AssertionPanelWindow.java | 8 ++++---- runtime/ecl/org.eclipse.rcptt.tesla.ecl.impl/.project | 11 +++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/.project b/ecl/plugins/org.eclipse.rcptt.ecl.core/.project index 01e597459..37e3a55e9 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/.project +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/.project @@ -25,4 +25,15 @@ org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1711017410074 + + 10 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-true-false-target + + + diff --git a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/assertion/AssertionPanelWindow.java b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/assertion/AssertionPanelWindow.java index d6bc7ddd8..05488bf2f 100644 --- a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/assertion/AssertionPanelWindow.java +++ b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/panels/assertion/AssertionPanelWindow.java @@ -560,7 +560,7 @@ public void keyPressed(KeyEvent e) { final ToolBar filterToolBar = new ToolBar(filterComposite, SWT.FLAT); filterToolBar.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); final ToolItem filterItem = new ToolItem(filterToolBar, SWT.FLAT | SWT.PUSH); - filterItem.setImage(Images.getImageDescriptor(Images.PANEL_FILTER).createImage()); + filterItem.setImage(Images.getImage(Images.PANEL_FILTER)); filterItem.setToolTipText(Messages.AssertionPanelWindow_FilterToolTip); filterItem.addSelectionListener(new SelectionListener() { @Override @@ -714,7 +714,7 @@ protected Control createButtonPanel(Composite parent) { final Button widgetInfo = new Button(composite, SWT.NONE); GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(widgetInfo); widgetInfo.setText("Widget details..."); - widgetInfo.setImage(Images.getImageDescriptor(Images.PANEL_NEW_IMAGE_WIDGET_DETAILS).createImage()); + widgetInfo.setImage(Images.getImage(Images.PANEL_NEW_IMAGE_WIDGET_DETAILS)); widgetInfo.addSelectionListener(new SelectionAdapter() { @Override @@ -742,8 +742,8 @@ public void widgetSelected(SelectionEvent e) { GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).grab(true, false).hint(120, SWT.DEFAULT) .applyTo(appendButton); - appendButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_ADD) - .createImage()); + + appendButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD)); appendButton.setText(Messages.AssertionPanelWindow_AddAssertButton); appendButton.addSelectionListener(new SelectionAdapter() { @Override diff --git a/runtime/ecl/org.eclipse.rcptt.tesla.ecl.impl/.project b/runtime/ecl/org.eclipse.rcptt.tesla.ecl.impl/.project index f4ab69fd6..4b42ef521 100644 --- a/runtime/ecl/org.eclipse.rcptt.tesla.ecl.impl/.project +++ b/runtime/ecl/org.eclipse.rcptt.tesla.ecl.impl/.project @@ -25,4 +25,15 @@ org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1711017666208 + + 10 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-true-false-target + + + From 0bc3542bfd7c3809c51530021f7cad51c84a4267 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 21 Mar 2024 16:45:41 +0400 Subject: [PATCH 23/91] Stabilize more tests --- ...NEGATIVE Case Required Entry Not Found (Entry Type).test | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Entry Type).test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Entry Type).test index ca5ebcc09..44075ae1b 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Entry Type).test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Entry Type).test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _qIjK4H0REeO5CYdzFmGe7Q -Runtime-Version: 1.5.0.201407012005 -Save-Time: 7/2/14 8:32 AM +Runtime-Version: 2.5.5.202403201809 +Save-Time: 3/21/24, 4:44 PM Tags: verification/Error Log, selfAUT Testcase-Type: ecl @@ -63,9 +63,11 @@ with [get-editor ErrorLogVerification | get-section Require | get-table] { get-editor ErrorLogVerification | get-section Require | get-table | key-type "M1+s" get-view "Test Explorer" | get-tree | select "MyProject/TestCase" | double-click get-editor TestCase | get-button Replay | click +try -times 10 -delay 1000 -command { get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals "Error log verification \'ErrorLogVerification\' failed:\n" + "Required \n" + "ERROR, plugin: org.eclipse.ui, message: Info Entry\n" + "not found" | verify-true +} ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 3467716fc7dbe602aebb216a73cb7030bdc878ca Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 21 Mar 2024 19:22:41 +0400 Subject: [PATCH 24/91] Restore sensible wait time #55 --- .../UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test b/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test index 18aab3568..7d05b0593 100644 --- a/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test +++ b/rcpttTests/platform_tests/Editing/ProjectAndFolder/UndoRedo/UndoDeleteProjectWithoutDeleteFromDiskByHotKey.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _6UOKUILYEeGVWel_bIqsJQ -Runtime-Version: 2.5.5.202403150112 -Save-Time: 3/20/24, 9:21 PM +Runtime-Version: 2.5.5.202403201809 +Save-Time: 3/21/24, 7:21 PM Tags: Project, Delete, UndoRedo Testcase-Type: ecl Verifications: _UnfUID8XEeSyDoCDFnaFCg @@ -64,7 +64,7 @@ with [get-view "Test Explorer" | get-tree] { } get-view "Test Explorer" | get-tree | key-type [get-by-os -win "M1+y" -default "M1+M2+z"] -try -times 1000 -delay 1000 -command { +try -times 10 -delay 1000 -command { with [get-view "Test Explorer" | get-tree] { get-property itemCount | equals 2 | verify-true get-item p1 | get-property caption | equals p1 | verify-true From e590d18705749a53b82f05df820059b2c39ff0c9 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 13:26:36 +0400 Subject: [PATCH 25/91] Fix tests Tycho needs javax.annotation, but fails to add it to TP --- launching/tests/pom.xml | 48 ++++++++++++++++------ releng/ide/pom.xml | 2 +- releng/target-platforms/2024-03/ide.target | 2 +- runtime/tests/pom.xml | 19 +++++++++ 4 files changed, 56 insertions(+), 15 deletions(-) diff --git a/launching/tests/pom.xml b/launching/tests/pom.xml index 4a58adfb7..8ab020abf 100644 --- a/launching/tests/pom.xml +++ b/launching/tests/pom.xml @@ -10,17 +10,39 @@ Xored Software Inc - initial API and implementation and/or initial documentation --> - 4.0.0 - - rcptt.launching - org.eclipse.rcptt - 2.5.5-SNAPSHOT - - launching.tests - pom - - org.eclipse.rcptt.launching.ext.tests - org.eclipse.rcptt.launching.tests - org.eclipse.rcptt.reporting.html.tests - + 4.0.0 + + rcptt.launching + org.eclipse.rcptt + 2.5.5-SNAPSHOT + + launching.tests + pom + + org.eclipse.rcptt.launching.ext.tests + org.eclipse.rcptt.launching.tests + org.eclipse.rcptt.reporting.html.tests + + + + + + org.eclipse.tycho + target-platform-configuration + + + + + + eclipse-plugin + javax.annotation + 1.3.5 + + + + + + + + \ No newline at end of file diff --git a/releng/ide/pom.xml b/releng/ide/pom.xml index 74b907f56..3fe618de5 100644 --- a/releng/ide/pom.xml +++ b/releng/ide/pom.xml @@ -73,7 +73,7 @@ 2023-06-updates p2 - https://download.eclipse.org/eclipse/updates/4.28/ + https://download.eclipse.org/eclipse/updates/4.31/ 2023-06 diff --git a/releng/target-platforms/2024-03/ide.target b/releng/target-platforms/2024-03/ide.target index 25cab0e6e..eb0f96a3e 100644 --- a/releng/target-platforms/2024-03/ide.target +++ b/releng/target-platforms/2024-03/ide.target @@ -22,7 +22,7 @@ - + diff --git a/runtime/tests/pom.xml b/runtime/tests/pom.xml index bbd23150c..f867140f6 100644 --- a/runtime/tests/pom.xml +++ b/runtime/tests/pom.xml @@ -68,6 +68,25 @@ + + aarch64 + + + aarch64 + + + + + + tycho-surefire-plugin + org.eclipse.tycho + + true + + + + + runtime4x From d8c684a12577d59f2ebf87647944e109e2b64ed6 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 13:35:16 +0400 Subject: [PATCH 26/91] Do not use Eclipse Neon, as the oldest AUT we support in 2019-03 2019-03 is already read by ecl/pom.xml parent --- releng/runtime/pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/releng/runtime/pom.xml b/releng/runtime/pom.xml index 85cb8f6f4..d077b71e8 100644 --- a/releng/runtime/pom.xml +++ b/releng/runtime/pom.xml @@ -49,11 +49,6 @@ ../../repository/e4x - - neon - p2 - http://download.eclipse.org/releases/neon - ajdt48 p2 From 7f6dc4fe743e4e2b8987fc01aeb970aa3eb4457b Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 13:43:37 +0400 Subject: [PATCH 27/91] Stop selQ7 AUT from interfering with a mockup test --- .../Job error is captured by Error Log Verification.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test b/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test index dd03b41cd..f8d66ccf3 100644 --- a/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test +++ b/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test @@ -1,6 +1,6 @@ --- RCPTT testcase --- Format-Version: 1.0 -Contexts: _cQEZwD2QEeSxD9UFwnFS6w,_Gf3gUJwYEe22OJx9wPMPmQ +Contexts: _V0104D8TEeSV5L6atfY6Ug,_cQEZwD2QEeSxD9UFwnFS6w,_Gf3gUJwYEe22OJx9wPMPmQ Element-Name: Job error is captured by Error Log Verification Element-Type: testcase Element-Version: 3.0 From 913c5f79d48d43e0e07b818f50664e72099a3d2d Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 14:39:28 +0400 Subject: [PATCH 28/91] Fix RAP build in context of 2024-03 --- modules/rap/bundles/runtime/pom.xml | 80 +++++++++---------- .../feature.xml | 26 +----- releng/rap/pom.xml | 2 +- 3 files changed, 41 insertions(+), 67 deletions(-) diff --git a/modules/rap/bundles/runtime/pom.xml b/modules/rap/bundles/runtime/pom.xml index 9f76f7a9f..ceb2d501c 100644 --- a/modules/rap/bundles/runtime/pom.xml +++ b/modules/rap/bundles/runtime/pom.xml @@ -9,49 +9,41 @@ Contributors: Xored Software Inc - initial API and implementation and/or initial documentation --> - - 4.0.0 - - bundles - org.eclipse.rcptt.module.rap - 2.5.5-SNAPSHOT - ../pom.xml - - - runtime - pom - - - - - - core - - true - - - contexts - ecl - org.eclipse.rcptt.core.ecl.debug.rap - org.eclipse.rcptt.forms.impl.rap - org.eclipse.rcptt.runtime.ui.rap - org.eclipse.rcptt.util.swt.rap - org.eclipse.rcptt.rap.aspects - tesla - verifications - watson - - - - - ide - - updates - - - - - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + bundles + org.eclipse.rcptt.module.rap + 2.5.5-SNAPSHOT + ../pom.xml + + runtime + pom + + + core + + true + + + contexts + ecl + org.eclipse.rcptt.core.ecl.debug.rap + org.eclipse.rcptt.forms.impl.rap + org.eclipse.rcptt.runtime.ui.rap + org.eclipse.rcptt.util.swt.rap + org.eclipse.rcptt.rap.aspects + tesla + verifications + watson + + + + ide + + updates + + + diff --git a/modules/rap/features/org.eclipse.rcptt.runtime-feature.rap/feature.xml b/modules/rap/features/org.eclipse.rcptt.runtime-feature.rap/feature.xml index b50f64808..fa04f314d 100644 --- a/modules/rap/features/org.eclipse.rcptt.runtime-feature.rap/feature.xml +++ b/modules/rap/features/org.eclipse.rcptt.runtime-feature.rap/feature.xml @@ -38,9 +38,12 @@ - + + + + - - - - - - diff --git a/releng/rap/pom.xml b/releng/rap/pom.xml index 6c4cd7038..f798a1396 100644 --- a/releng/rap/pom.xml +++ b/releng/rap/pom.xml @@ -51,7 +51,7 @@ file:/${user.dir} ${buildUrl}/ ${buildUrl}/repository/full/target/repository/ - http://download.eclipse.org/rt/rap/3.1 + http://download.eclipse.org/rt/rap/3.8 ${buildUrl}/repository/dependencies/target/repository From 332f28c4dbbe1c76445bc32407c33eb2d4adf129 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 15:25:27 +0400 Subject: [PATCH 29/91] Fix runner dependencies for 2024-03 --- releng/target-platforms/2024-03/ide.target | 1 + runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/releng/target-platforms/2024-03/ide.target b/releng/target-platforms/2024-03/ide.target index eb0f96a3e..b72a45bdc 100644 --- a/releng/target-platforms/2024-03/ide.target +++ b/releng/target-platforms/2024-03/ide.target @@ -33,6 +33,7 @@ + diff --git a/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF b/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF index 0a770bc8b..586043b17 100644 --- a/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF +++ b/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF @@ -35,7 +35,7 @@ Require-Bundle: org.eclipse.rcptt.core, org.eclipse.rcptt.reporting.util;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.launching.rap;bundle-version="[2.5.5,3.0.0)", org.eclipse.swt, - org.slf4j.api;bundle-version="1.7.30", + slf4j.api;bundle-version="2.0.12", jakarta.servlet-api;bundle-version="4.0.0", bcpg;bundle-version="1.73.0", bcprov;bundle-version="1.73.0" From 39311cb8632753bf45ba9bbeeb8db213f3c6e68d Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 15:30:34 +0400 Subject: [PATCH 30/91] Wait for AUT startup --- .../Assertion/AssertionGroupping.test | 76 +++++++------------ 1 file changed, 27 insertions(+), 49 deletions(-) diff --git a/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test b/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test index 075071222..21a448c75 100644 --- a/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test +++ b/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test @@ -1,12 +1,13 @@ --- RCPTT testcase --- Format-Version: 1.0 +Contexts: _ZQYygK2sEeCqBbDEJWufvQ Element-Name: AssertionGroupping Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _GLGj8FFQEeqyG-160wAoew -Runtime-Version: 2.5.2.qualifier -Save-Time: 3/10/20 6:11 PM +Runtime-Version: 2.5.5.202403201809 +Save-Time: 3/22/24, 3:28 PM Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa @@ -51,34 +52,20 @@ with [get-window "New Test Case"] { get-button Finish | click } with [get-editor t2 | get-section Script | get-text-viewer] { - set-text "get-button \"Open Perspective\" | click\n" + - "get-window \"Open Perspective\" | get-table | select Debug | double-click\n" + - "with [get-view Expressions] {\n" + - "click\n" + - "with [get-tree] {\n" + - "select \"Add new expression\" | activate-cell-edit -type MouseClickSelection\n" + - "with [get-editbox] {\n" + - "set-text 123\n" + - "key-type Enter\n" + - "}\n" + - "apply-cell-edit -deactivate\n" + - "select \"Add new expression\" | activate-cell-edit -type MouseClickSelection\n" + - "with [get-editbox] {\n" + - "set-text 456\n" + - "key-type Enter\n" + - "}\n" + - "apply-cell-edit -deactivate\n" + - "}\n" + - "}\n" + set-text "get-button \"Open Perspective\" | click\nget-window \"Open Perspective\" | get-table | select Debug | d" + + "ouble-click\nwith [get-view Expressions] {\nclick\nwith [get-tree] {\nselect \"Add new expression\" | activa" + + "te-cell-edit -type MouseClickSelection\nwith [get-editbox] {\nset-text 123\nkey-type Enter\n}\napply-cell-ed" + + "it -deactivate\nselect \"Add new expression\" | activate-cell-edit -type MouseClickSelection\nwith [get-edit" + + "box] {\nset-text 456\nkey-type Enter\n}\napply-cell-edit -deactivate\n}\n}\n" } get-editor t2 | get-button Record | click - -with [get-window "Control Panel - t2 (test) - selfQ7 [Recording]"] { - get-button "Switch to Recording Mode" | click - get-button "Switch to Assertion Mode" | click +try -times 10 -delay 1000 -command { + with [get-window "Control Panel - t2 (test) - selfQ7 [Recording]"] { + get-button "Switch to Recording Mode" | click + get-button "Switch to Assertion Mode" | click + } } - get-aut selfQ7 | eval { with [get-view Expressions | get-tree] { get-item -path "\"123\"" | click @@ -107,19 +94,12 @@ with [get-window "Control Panel - t2 (test) - selfQ7 [Asserting]"] { } } - with [get-window "Control Panel - t2 (test) - selfQ7 [Asserting]"] { - get-text-viewer | get-property text - | contains "with [get-view Expressions | get-tree] {\n" - + " with [get-item -path \"\\\"123\\\"\"] {\n" - + " get-property \"columns[0]\" | equals \"\\\"123\\\"\" | verify-true\n" - + " get-property \"columns[1]\" | equals \"\" | verify-true\n" - + " }\n" - + " with [get-item -path \"\\\"456\\\"\"] {\n" - + " get-property \"columns[0]\" | equals \"\\\"456\\\"\" | verify-true\n" - + " get-property \"columns[1]\" | equals \"\" | verify-true\n" - + " }\n" - + "}" | verify-true + get-text-viewer | get-property text | contains "with [get-view Expressions | get-tree] {\n with [get-item -pat" + + "h \"\\\"123\\\"\"] {\n get-property \"columns[0]\" | equals \"\\\"123\\\"\" | verify-true\n ge" + + "t-property \"columns[1]\" | equals \"\" | verify-true\n }\n with [get-item -path \"\\\"456\\\"\"] {\n " + + " get-property \"columns[0]\" | equals \"\\\"456\\\"\" | verify-true\n get-property \"columns[1]" + + "\" | equals \"\" | verify-true\n }\n}" | verify-true get-button "Switch to Recording Mode" | click } @@ -134,23 +114,21 @@ with [get-window "Control Panel - t2 (test) - selfQ7 [Recording]"] { } get-aut selfQ7 | eval { - get-menu -path "Edit" | click + get-menu -path Edit | click } with [get-window "Control Panel - t2 (test) - selfQ7 [Asserting]" | get-window "Assertion and Verification"] { - get-tree | get-item -path "MenuItem \\(Basic Properties\\)/caption" | check - get-button Add | click + get-tree | get-item -path "MenuItem \\(Basic Properties\\)/caption" | check + get-button Add | click } get-aut selfQ7 | eval { - get-menu -path "Edit" | click + get-menu -path Edit | click } with [get-window "Control Panel - t2 (test) - selfQ7 [Asserting]" | get-window "Assertion and Verification"] { - get-tree | get-item -path "MenuItem \\(Basic Properties\\)/index" | check - get-button Add | click + get-tree | get-item -path "MenuItem \\(Basic Properties\\)/index" | check + get-button Add | click } -get-window "Control Panel - t2 (test) - selfQ7 [Asserting]" | get-text-viewer | get-property text - | contains "with [get-menu -path Edit] {\n" - + " get-property caption | equals \"&Edit\" | verify-true\n" - + " get-property index | equals 1 | verify-true\n" - + "}" | verify-true +get-window "Control Panel - t2 (test) - selfQ7 [Asserting]" | get-text-viewer | get-property text | contains "with [g" + + "et-menu -path Edit] {\n get-property caption | equals \"&Edit\" | verify-true\n get-property index | equal" + + "s 1 | verify-true\n}" | verify-true ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From bbce5e62a39a4861b3946c55dcd0c1f129f762bc Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 15:45:16 +0400 Subject: [PATCH 31/91] Deprecate RAP support #56 --- .../rcptt/internal/launching/rap/ui/AUTLocationBlock.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java b/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java index 3219449af..7243dde6e 100644 --- a/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java +++ b/modules/rap/bundles/launching/org.eclipse.rcptt.launching.rap.ui/src/org/eclipse/rcptt/internal/launching/rap/ui/AUTLocationBlock.java @@ -93,6 +93,8 @@ public void updateInfo() { IStatus status = PDELocationUtils.validateProductLocation(location); if (!status.isOK()) { setStatus(status); + } else { + setStatus(Status.warning("RCPTT RAP supoprt will be removed in a following release. See https://github.com/eclipse/org.eclipse.rcptt/issues/56")); } if (needUpdate && status.isOK()) { From 0a4a89bda7016d70ebf2b93949a39abbddf622ff Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 17:40:58 +0400 Subject: [PATCH 32/91] Fix package dependencies in Runner --- devenv/launches/RCPTT IDE.launch | 63 +++++----------------- rcpttTests/pom-base.xml | 2 +- releng/target-platforms/2024-03/ide.target | 1 + runner/product/rcptt.runner.product | 32 +++++------ 4 files changed, 30 insertions(+), 68 deletions(-) diff --git a/devenv/launches/RCPTT IDE.launch b/devenv/launches/RCPTT IDE.launch index 4810266a5..5ab0f2b9f 100644 --- a/devenv/launches/RCPTT IDE.launch +++ b/devenv/launches/RCPTT IDE.launch @@ -3,6 +3,7 @@ + @@ -12,7 +13,7 @@ - + @@ -32,22 +33,17 @@ + - - - - - - @@ -70,35 +66,25 @@ - - - - - - + + - + - - + - - + - - - - + + - - @@ -106,13 +92,9 @@ - - - - @@ -150,8 +132,6 @@ - - @@ -238,7 +218,6 @@ - @@ -276,7 +255,6 @@ - @@ -321,8 +299,6 @@ - - @@ -347,8 +323,6 @@ - - @@ -365,7 +339,6 @@ - @@ -381,13 +354,6 @@ - - - - - - - @@ -408,7 +374,6 @@ - @@ -436,11 +401,11 @@ + - @@ -468,12 +433,7 @@ - - - - - @@ -533,6 +493,7 @@ + diff --git a/rcpttTests/pom-base.xml b/rcpttTests/pom-base.xml index 27cd65e89..9301bd29f 100644 --- a/rcpttTests/pom-base.xml +++ b/rcpttTests/pom-base.xml @@ -21,7 +21,7 @@ rcptt-releases RCPTT Maven repository Releases - http://repo.eclipse.org/content/repositories/rcptt-releases/ + https://repo.eclipse.org/content/repositories/rcptt-releases/ rcptt-snapshots diff --git a/releng/target-platforms/2024-03/ide.target b/releng/target-platforms/2024-03/ide.target index b72a45bdc..fcc9334d3 100644 --- a/releng/target-platforms/2024-03/ide.target +++ b/releng/target-platforms/2024-03/ide.target @@ -34,6 +34,7 @@ + diff --git a/runner/product/rcptt.runner.product b/runner/product/rcptt.runner.product index 7e7db833f..2ed6538b8 100644 --- a/runner/product/rcptt.runner.product +++ b/runner/product/rcptt.runner.product @@ -40,6 +40,9 @@ + + + @@ -49,7 +52,9 @@ + + @@ -57,6 +62,9 @@ + + + @@ -116,11 +124,9 @@ - + - - @@ -162,21 +168,13 @@ - - - - - - - - - + @@ -189,9 +187,7 @@ - - @@ -205,8 +201,6 @@ - - @@ -286,15 +280,20 @@ + + + + + @@ -307,6 +306,7 @@ + From 43521157cd2cf1fe9e95517dd52b66450f5c352a Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 19:32:44 +0400 Subject: [PATCH 33/91] Ensure no selfQ7 AUT left --- rcpttTests/contexts/SetupAUTMockup.ctx | 25 ++++++++++++------- .../Assertion/AssertionGroupping.test | 4 +-- ...is captured by Error Log Verification.test | 7 ++++-- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/rcpttTests/contexts/SetupAUTMockup.ctx b/rcpttTests/contexts/SetupAUTMockup.ctx index 3d2288023..198481876 100644 --- a/rcpttTests/contexts/SetupAUTMockup.ctx +++ b/rcpttTests/contexts/SetupAUTMockup.ctx @@ -5,8 +5,8 @@ Element-Name: SetupAUTMockup Element-Type: context Element-Version: 2.0 Id: _cQEZwD2QEeSxD9UFwnFS6w -Runtime-Version: 2.5.0.qualifier -Save-Time: 10/16/19 4:16 PM +Runtime-Version: 2.5.5.202403201809 +Save-Time: 3/22/24, 7:13 PM ------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998 Content-Type: text/ecl @@ -21,18 +21,16 @@ proc "has-property" [val control -input] [val property] { } } -//invoke-AUT selfQ7Mockups -args "-nosplash" -vmargs "-Xmx512m -XX:MaxPermSize=256m" -invoke-AUT mockupsQ7 -inject [site-injection "https://ci.eclipse.org/rcptt/job/mockups/lastSuccessfulBuild/artifact/repository/target/repository/"] - -args "-nosplash" -vmargs "-Xmx512m" - +// invoke-AUT selfQ7Mockups -args "-nosplash" -vmargs "-Xmx512m -XX:MaxPermSize=256m" +invoke-AUT mockupsQ7 -inject [site-injection "https://ci.eclipse.org/rcptt/job/mockups/lastSuccessfulBuild/artifact/r" + + "epository/target/repository/"] -args "-nosplash" -vmargs "-Xmx512m" loop [val count 0] { if [$count | lt 10] { - if [get-view Applications | get-tree | get-item mockupsQ7 | has-property - "image.decorations[0].path"] { + if [get-view Applications | get-tree | get-item mockupsQ7 | has-property "image.decorations[0].path"] { try { get-aut mockupsQ7 | eval { - clean-self-AUT + clean-self-AUT } } -catch { wait 5000 @@ -42,6 +40,15 @@ loop [val count 0] { wait 5000 recur [$count | plus 1] } + get-aut mockupsQ7 | eval { + get-menu -path "Window/Perspective/Open Perspective/Other..." | click + with [get-window "Open Perspective"] { + get-table | select "Q7 Quality" + get-button Open | click + } + get-menu -path "Window/Perspective/Reset Perspective..." | click + get-window "Reset Perspective" | get-button "Reset Perspective" | click + } } -else { assert-true [bool false] "mockupsQ7 is not available" } diff --git a/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test b/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test index 21a448c75..d305fdda3 100644 --- a/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test +++ b/rcpttTests/platform_tests/selfAUTTests/Assertion/AssertionGroupping.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _GLGj8FFQEeqyG-160wAoew -Runtime-Version: 2.5.5.202403201809 -Save-Time: 3/22/24, 3:28 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/22/24, 7:30 PM Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa diff --git a/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test b/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test index f8d66ccf3..1dcdbbf3d 100644 --- a/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test +++ b/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test @@ -6,18 +6,21 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _fkfQ0JwXEe22OJx9wPMPmQ -Runtime-Version: 2.5.5.202403141550 -Save-Time: 3/14/24, 8:52 PM +Runtime-Version: 2.5.5.202403201809 +Save-Time: 3/22/24, 7:00 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac Content-Type: text/ecl Entry-Name: .content +get-view Applications | get-tree | get-property itemCount | equals 1 | verify-true +get-view Applications | get-tree | get-item -path mockupsQ7 get-view "Test Explorer" | get-tree | select "jobtest/Job error capturing with Error Log verification" | double-click get-editor "Job error capturing with Error Log verification" | get-button Replay | click try { get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals "Error log verification 'NoErrorsOrWarnings' failed:\nLog entry\nStatus ERROR: com.xored.q7.quality.mockups.platform code=0 Job error\nis denied by predicate\nERROR, WARNING" | verify-true } -times 10 -delay 100 + ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 56a01cfeda65d9052d6d0a317981d256cb25d320 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 21:33:53 +0400 Subject: [PATCH 34/91] Fix Cut/Copy/Paste editor action labels --- .../ecl/EclEditorPluginResources.properties | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/ecl/EclEditorPluginResources.properties b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/ecl/EclEditorPluginResources.properties index 906af046c..1df72351d 100644 --- a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/ecl/EclEditorPluginResources.properties +++ b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/ecl/EclEditorPluginResources.properties @@ -20,4 +20,19 @@ ContentAssistTip.tooltip=Content Tip ContentAssistTip.image= ContentAssistTip.description=Content Tip Editor.Undo.label=Undo -Editor.Redo.label=Redo \ No newline at end of file +Editor.Redo.label=Redo + +Editor.Cut.label=Cu&t +Editor.Cut.tooltip=Cut +Editor.Cut.image= +Editor.Cut.description=Cut + +Editor.Copy.label=&Copy +Editor.Copy.tooltip=Copy +Editor.Copy.image= +Editor.Copy.description=Copy + +Editor.Paste.label=&Paste +Editor.Paste.tooltip=Paste +Editor.Paste.image= +Editor.Paste.description=Paste From 27bd464d86da387fe8dbeb59bdd42b60e463a556 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 21:47:30 +0400 Subject: [PATCH 35/91] Stabilize more tests --- .../Contexts/Folder Context/FolderContextWithVariable.test | 6 +++--- .../Job error is captured by Error Log Verification.test | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/rcpttTests/platform_tests/Contexts/Folder Context/FolderContextWithVariable.test b/rcpttTests/platform_tests/Contexts/Folder Context/FolderContextWithVariable.test index 96a58bca3..4e0489570 100644 --- a/rcpttTests/platform_tests/Contexts/Folder Context/FolderContextWithVariable.test +++ b/rcpttTests/platform_tests/Contexts/Folder Context/FolderContextWithVariable.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _4m2t4CzhEeS3Uc85AOuQ3g -Runtime-Version: 2.0.0.201505131625 -Save-Time: 5/14/15 3:30 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/22/24, 9:36 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -15,7 +15,7 @@ Content-Type: text/ecl Entry-Name: .content with [get-view "Test Explorer" | get-tree] { - //select TestQ7Prj | key-type F5 + select TestQ7Prj get-menu Refresh | click select "TestQ7Prj/folder/dummy.txt" } diff --git a/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test b/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test index 1dcdbbf3d..d4f982c70 100644 --- a/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test +++ b/rcpttTests/platform_tests/selfAUTTests/Verifications/Job error is captured by Error Log Verification.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _fkfQ0JwXEe22OJx9wPMPmQ -Runtime-Version: 2.5.5.202403201809 -Save-Time: 3/22/24, 7:00 PM +Runtime-Version: 2.5.5.202403221346 +Save-Time: 3/22/24, 9:43 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -21,6 +21,5 @@ get-editor "Job error capturing with Error Log verification" | get-button Replay try { get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals "Error log verification 'NoErrorsOrWarnings' failed:\nLog entry\nStatus ERROR: com.xored.q7.quality.mockups.platform code=0 Job error\nis denied by predicate\nERROR, WARNING" | verify-true -} -times 10 -delay 100 - +} -times 10 -delay 1000 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 1e69e44fd656aa1f456018b4206b5e720e0e754c Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 21:56:35 +0400 Subject: [PATCH 36/91] Adapt to increased memory requirements of Eclipse Platform 2024-03 --- .../src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java index 5bf366f67..7a85e399b 100644 --- a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java +++ b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java @@ -84,7 +84,7 @@ public class ExecuteMojo extends AbstractRCPTTMojo { private static final String ENABLE_SOFTWARE_INSTALLATION = "-enableSoftwareInstallation"; private static int shutdownListenerPort; - private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms128m", "-Xmx256m", + private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms256m", "-Xmx512m", "-Dorg.eclipse.rcptt.runner.returnTestFailure=true" }; // TODO: Replace this random number with carefully thought one From 32336f863211e1e15e062aafda74139a5185503c Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 23 Mar 2024 14:20:13 +0400 Subject: [PATCH 37/91] Skip a test for unstable uncheck command #58 --- ...ion_Add New Entry in Error Log Verification.test | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test index 10c0a25a6..ba5df3c72 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test @@ -1,15 +1,14 @@ --- RCPTT testcase --- Format-Version: 1.0 -Q7-vendor: www.xored.com/q7 -Contexts: _B01ToH0KEeO5CYdzFmGe7Q,_4zI9AWpgEeCzId1Gnkds9A,_ZQYygK2sEeCqBbDEJWufvQ +Contexts: _B01ToH0KEeO5CYdzFmGe7Q,_4zI9AWpgEeCzId1Gnkds9A Element-Name: ErrLogVerification_Add New Entry in Error Log Verification Element-Type: testcase Element-Version: 3.0 -External-Reference: +External-Reference: https://github.com/eclipse/org.eclipse.rcptt/issues/58 Id: _3LV9sH0PEeO5CYdzFmGe7Q -Q7-Runtime-Version: 1.5.0.201406131029 -Save-Time: 6/13/14 7:04 PM -Tags: verification, verification/Error Log, selfAUT +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/23/24, 2:19 PM +Tags: verification, verification/Error Log, SkipExecution Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa @@ -25,6 +24,8 @@ https://www.eclipse.org/legal/epl-v20.html Contributors: Xored Software Inc - initial creation and/or initial documentation -------------------------------------------------------------------------------- + +The test is skipped due to instability of uncheck command. https://github.com/eclipse/org.eclipse.rcptt/issues/58 ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa-- ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac Content-Type: text/ecl From 1bef24d14727bc025818feee6456200f7c06c483 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 23 Mar 2024 14:23:37 +0400 Subject: [PATCH 38/91] Add more delays --- ...EGATIVE Case Required Entry Not Found (Plugin Code).test | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Code).test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Code).test index 22f66d6ce..256d8fd0a 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Code).test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Code).test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _8C8T4H0REeO5CYdzFmGe7Q -Runtime-Version: 1.5.0.201407012005 -Save-Time: 7/2/14 8:32 AM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/23/24, 2:22 PM Tags: verification/Error Log, selfAUT Testcase-Type: ecl @@ -60,9 +60,11 @@ with [get-editor ErrorLogVerification] { } get-view "Test Explorer" | get-tree | select "MyProject/TestCase" | double-click get-editor TestCase | get-button Replay | click +try -times 10 -delay 1000 -command { get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals "Error log verification \'ErrorLogVerification'\ failed:\n" + "Required \n" + "INFOcode: 5, plugin: org.eclipse.ui, message: Info Entry\n" + "not found" | verify-true +} ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 91f46e3f430c5aead2e678f7ef45b2edd859b419 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 25 Mar 2024 15:12:26 +0400 Subject: [PATCH 39/91] Add more delays --- ...ired Entry Not Found (Plugin Pattern).test | 70 +++++++++---------- .../rename/RenameTestCaseInTestSuite.test | 62 ++++++++-------- 2 files changed, 65 insertions(+), 67 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test index 464062625..b23b46003 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _e6IKoH0REeO5CYdzFmGe7Q -Runtime-Version: 1.5.0.201407012005 -Save-Time: 7/2/14 8:21 AM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 3:11 PM Tags: verification/Error Log, selfAUT Testcase-Type: ecl @@ -31,40 +31,40 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "MyProject/ErrorLogVerification" | double-click with [get-editor ErrorLogVerification] { - with [get-section Allow | get-table] { - select "org.eclipse.ui" -column "Plugin Pattern" | activate-cell-edit -column 3 - drag-start 122 20 - drag-enter 120 5 -detail move - drag-over 120 5 -detail move - drag-exit - } - with [get-section Require | get-table] { - drag-enter 117 141 -detail move - drag-over 113 97 -detail move - drag-exit - drag-accept 113 97 -detail move - } - get-section Allow | get-table | drag-set-data - get-section Require | get-table | drop 113 97 -detail move - with [get-section Allow | get-table] { - drag-end -detail move - cancel-cell-edit - deactivate-cell-edit - } - with [get-section Require | get-table] { - select "org.eclipse.ui" -column "Plugin Pattern" | activate-cell-edit -column 3 - with [get-editbox] { - set-text "org.eclipse.ui2" - key-type "M1+s" - } - apply-cell-edit -deactivate - } + with [get-section Allow | get-table] { + select "org.eclipse.ui" -column "Plugin Pattern" | activate-cell-edit -column 3 + drag-start 122 20 + drag-enter 120 5 -detail move + drag-over 120 5 -detail move + drag-exit + } + with [get-section Require | get-table] { + drag-enter 117 141 -detail move + drag-over 113 97 -detail move + drag-exit + drag-accept 113 97 -detail move + } + get-section Allow | get-table | drag-set-data + get-section Require | get-table | drop 113 97 -detail move + with [get-section Allow | get-table] { + drag-end -detail move + cancel-cell-edit + deactivate-cell-edit + } + with [get-section Require | get-table] { + select "org.eclipse.ui" -column "Plugin Pattern" | activate-cell-edit -column 3 + with [get-editbox] { + set-text "org.eclipse.ui2" + key-type "M1+s" + } + apply-cell-edit -deactivate + } } get-view "Test Explorer" | get-tree | select "MyProject/TestCase" | double-click get-editor TestCase | get-button Replay | click -get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text - | equals "Error log verification \'ErrorLogVerification\' failed:\n" - + "Required \n" - + "INFO, plugin: org.eclipse.ui2, message: Info Entry\n" - + "not found" | verify-true +try -times 10 -delay 1000 -command { + get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals "Error log ver" + + "ification 'ErrorLogVerification' failed:\nRequired \nINFO, plugin: org.eclipse.ui2, message: Info Entry\nnot" + + " found" | verify-true +} ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- diff --git a/rcpttTests/platform_tests/selfAUTTests/editing/testcase/rename/RenameTestCaseInTestSuite.test b/rcpttTests/platform_tests/selfAUTTests/editing/testcase/rename/RenameTestCaseInTestSuite.test index d9702dd57..6d0ce0561 100644 --- a/rcpttTests/platform_tests/selfAUTTests/editing/testcase/rename/RenameTestCaseInTestSuite.test +++ b/rcpttTests/platform_tests/selfAUTTests/editing/testcase/rename/RenameTestCaseInTestSuite.test @@ -1,14 +1,13 @@ --- RCPTT testcase --- Format-Version: 1.0 -Q7-vendor: www.xored.com/q7 Contexts: _ymiyse5IEeCU6db9MgIBkA,_ZQYygK2sEeCqBbDEJWufvQ,_Z-6cEEVwEeGf87sdqO61AA Element-Name: RenameTestCaseInTestSuite Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _9OC_IEV3EeGf87sdqO61AA -Q7-Runtime-Version: 1.5.0.201406131029 -Save-Time: 6/13/14 7:04 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 3:13 PM Tags: selfAUT, TestCase, Rename, TestSuite Testcase-Type: ecl @@ -39,44 +38,43 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "MyProject/TestSuite" | double-click -nowait with [get-editor TestSuite | get-section "Test Cases" | get-table] { - get-property itemCount | equals 3 | verify-true - get-item "TestWithContexts \\(MyProject\\)" | get-property caption | equals "TestWithContexts (MyProject)" - | verify-true - get-item "CreateJavaProject \\(MyProject\\)" | get-property caption | equals "CreateJavaProject (MyProject)" - | verify-true - get-item "WorkspaceIsEmpty \\(MyProject\\)" | get-property caption | equals "WorkspaceIsEmpty (MyProject)" - | verify-true + get-property itemCount | equals 3 | verify-true + get-item "TestWithContexts \\(MyProject\\)" | get-property caption | equals "TestWithContexts (MyProject)" + | verify-true + get-item "CreateJavaProject \\(MyProject\\)" | get-property caption | equals "CreateJavaProject (MyProject)" + | verify-true + get-item "WorkspaceIsEmpty \\(MyProject\\)" | get-property caption | equals "WorkspaceIsEmpty (MyProject)" + | verify-true } get-editor TestSuite | close with [get-view "Test Explorer"] { - click - get-tree | select "MyProject/CreateJavaProject" | get-menu "Rename..." | click + click + get-tree | select "MyProject/CreateJavaProject" | get-menu "Rename..." | click } with [get-window "Rename Resource"] { - get-editbox -after [get-label "New name:"] | set-text CreateJavaProjectTest - get-button OK | click + get-editbox -after [get-label "New name:"] | set-text CreateJavaProjectTest + get-button OK | click } get-view "Test Explorer" | get-tree | select "MyProject/TestSuite" | double-click -nowait with [get-editor TestSuite | get-section "Test Cases" | get-table] { - get-property itemCount | equals 3 | verify-true - get-item "TestWithContexts \\(MyProject\\)" | get-property caption | equals "TestWithContexts (MyProject)" - | verify-true - get-item "CreateJavaProjectTest \\(MyProject\\)" | get-property caption - | equals "CreateJavaProjectTest (MyProject)" | verify-true - get-item "WorkspaceIsEmpty \\(MyProject\\)" | get-property caption | equals "WorkspaceIsEmpty (MyProject)" - | verify-true + get-property itemCount | equals 3 | verify-true + get-item "TestWithContexts \\(MyProject\\)" | get-property caption | equals "TestWithContexts (MyProject)" + | verify-true + get-item "CreateJavaProjectTest \\(MyProject\\)" | get-property caption | equals "CreateJavaProjectTest (MyProject)" + | verify-true + get-item "WorkspaceIsEmpty \\(MyProject\\)" | get-property caption | equals "WorkspaceIsEmpty (MyProject)" + | verify-true } get-editor TestSuite | get-button Execute | click -wait 5000 -with [get-view "Execution View" | get-tree] { - get-property itemCount | equals 1 | verify-true - get-item "TestSuite.*" | get-property caption | equals "TestSuite.*" | verify-true - get-item "TestSuite.*" | get-property childCount | equals 3 | verify-true - get-item "TestSuite.*/TestWithContexts.*" | get-property caption - | equals "TestWithContexts.*" | verify-true - get-item "TestSuite.*/CreateJavaProjectTest.*" | get-property caption - | equals "CreateJavaProjectTest.*" | verify-true - get-item "TestSuite.*/WorkspaceIsEmpty.*" | get-property caption - | equals "WorkspaceIsEmpty.*" | verify-true +try -times 10 -delay 1000 -command { + with [get-view "Execution View" | get-tree] { + get-property itemCount | equals 1 | verify-true + get-item "TestSuite.*" | get-property caption | equals "TestSuite.*" | verify-true + get-item "TestSuite.*" | get-property childCount | equals 3 | verify-true + get-item "TestSuite.*/TestWithContexts.*" | get-property caption | equals "TestWithContexts.*" | verify-true + get-item "TestSuite.*/CreateJavaProjectTest.*" | get-property caption | equals "CreateJavaProjectTest.*" + | verify-true + get-item "TestSuite.*/WorkspaceIsEmpty.*" | get-property caption | equals "WorkspaceIsEmpty.*" | verify-true + } } ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From fd50ba041523237abb3e6d304879c33704ccd79e Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 25 Mar 2024 18:23:49 +0400 Subject: [PATCH 40/91] Stabilize more tests --- .../ScenarioEditor/TasksInScriptEditor/ShowInTask.test | 6 +++--- .../debugging/SetBreakpointInTestWithRestarting.test | 6 +++--- .../selfAUTTests/q7commands/ListPlugins.test | 6 +++--- ...ification_Add New Entry in Error Log Verification.test | 4 ++-- ...rrLogVerification_NEGATIVE Case Denied Entry_Info.test | 8 ++++---- .../Contexts/DefaultContext/Edit/UndoAfterClear.test | 7 +++---- .../Edit/UndoRedoDescriptionInDefaultContext.test | 6 +++--- .../QS-2734_Q7 can't handle File_Restart.test | 7 +++---- 8 files changed, 24 insertions(+), 26 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test index f3f145b71..980e5cd01 100644 --- a/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test +++ b/rcpttTests/ECL_IDE_module/editors/ScenarioEditor/TasksInScriptEditor/ShowInTask.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _7lhuwF0IEeGDGrudSYLu8w -Runtime-Version: 2.5.5.202403150112 -Save-Time: 3/20/24, 3:25 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 6:09 PM Tags: ECL_IDE_module, TestCase, Task Testcase-Type: ecl @@ -76,7 +76,7 @@ with [get-view "Test Explorer" | get-tree] { get-item "MyProject/TestFolder/WorkspaceIsEmpty" | get-property caption | equals WorkspaceIsEmpty | verify-true get-item "MyProject/TestFolder/WorkspaceIsEmpty" | get-property selected | equals true | verify-true } -get-view Tasks | get-tree | select "" | get-menu "Go to Resource" | click +get-view Tasks | get-tree | select "\\/\\/ FIXME.*" -column "Description" | get-menu "Go to Resource" | click get-editor "CreateJavaProject" | get-property active -raw | equals true | verify-true //get-tab-folder | get-property pages -index 0 | equals CreateJavaProject | verify-true get-editor CreateJavaProject | get-section Script | get-editbox | get-property text diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointInTestWithRestarting.test b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointInTestWithRestarting.test index ea6b5c194..1bc1ee22c 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointInTestWithRestarting.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/SetBreakpointInTestWithRestarting.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-1712 Id: _wFfUMDwFEeGWcueqnS9xrA -Runtime-Version: 2.5.0.201907142359 -Save-Time: 7/18/19 4:00 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 5:25 PM Tags: selfAUT, Debug Testcase-Type: ecl @@ -51,7 +51,7 @@ exec-with-options -disableJobWaiting -command { | get-property caption | equals "get-view (CreateJavaProject: 1)" | verify-true get-button "Resume (F8)" | click } - try -times 25 -delay 5000 -command { + try -times 10 -delay 20000 -command { get-button "Resume (F8)" | click } } diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListPlugins.test b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListPlugins.test index be4a5ce40..abaefc2ce 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListPlugins.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListPlugins.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _E1wokYJEEeKn_ZM6yFZIHw -Runtime-Version: 2.5.2.202204240826 -Save-Time: 4/27/22, 7:13 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 5:24 PM Tags: selfAUT, q7commands Testcase-Type: ecl @@ -44,7 +44,7 @@ with [get-editor test] { get-button Replay | click } -try -times 30 -delay 1000 -command{ +try -times 10 -delay 10000 -command{ get-view "Execution View" | get-label "1/1" -after [get-label "Runs:"] } diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test index ba5df3c72..290883dd4 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_Add New Entry in Error Log Verification.test @@ -7,8 +7,8 @@ Element-Version: 3.0 External-Reference: https://github.com/eclipse/org.eclipse.rcptt/issues/58 Id: _3LV9sH0PEeO5CYdzFmGe7Q Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/23/24, 2:19 PM -Tags: verification, verification/Error Log, SkipExecution +Save-Time: 3/25/24, 5:20 PM +Tags: verification, verification/Error Log, skipExecution Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Info.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Info.test index c27f2ff4e..bed966260 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Info.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Info.test @@ -6,9 +6,9 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _nGOiAH0UEeO5CYdzFmGe7Q -Runtime-Version: 2.5.2.202204181530 -Save-Time: 4/19/22, 6:19 PM -Tags: verification/Error Log, selfAUT +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 5:20 PM +Tags: verification/Error Log, selfAUT, skipExecution Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa @@ -58,5 +58,5 @@ get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-prop + "Log entry\n" + "Status INFO: org.eclipse.ui code=0 Info Entry.*\n" + "is denied by predicate\n" - + "INFO" | verify-true + + "INFO" | verify-true ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- diff --git a/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoAfterClear.test b/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoAfterClear.test index 54a89c855..90a69358c 100644 --- a/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoAfterClear.test +++ b/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoAfterClear.test @@ -1,15 +1,14 @@ --- RCPTT testcase --- Format-Version: 1.0 -Q7-vendor: www.xored.com/q7 Contexts: _ymiyse5IEeCU6db9MgIBkA,_OKTjMYxiEeK4jYsIiM8Vnw Element-Name: UndoAfterClear Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-2552 Id: _o4zGcKc6EeKrROxZiK-kmQ -Q7-Runtime-Version: 1.5.0.201406131029 -Save-Time: 6/13/14 7:04 PM -Tags: Context, DefaultContext, SkipExecution +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 5:20 PM +Tags: Context, DefaultContext, skipExecution Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa diff --git a/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoRedoDescriptionInDefaultContext.test b/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoRedoDescriptionInDefaultContext.test index 671768eac..b8ea14463 100644 --- a/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoRedoDescriptionInDefaultContext.test +++ b/rcpttTests/platform_tests/Contexts/DefaultContext/Edit/UndoRedoDescriptionInDefaultContext.test @@ -6,9 +6,9 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-2537 Id: _KV_x8IrfEeKe4NooVEYS9Q -Runtime-Version: 2.2.0.qualifier -Save-Time: 5/22/17 11:47 AM -Tags: Context, DefaultContext, SkipExecution +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 5:20 PM +Tags: Context, DefaultContext, skipExecution Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa diff --git a/rcpttTests/platform_tests/selfAUTTests/QS-2734_Q7 can't handle File_Restart.test b/rcpttTests/platform_tests/selfAUTTests/QS-2734_Q7 can't handle File_Restart.test index 0597fb42d..ccaa71126 100644 --- a/rcpttTests/platform_tests/selfAUTTests/QS-2734_Q7 can't handle File_Restart.test +++ b/rcpttTests/platform_tests/selfAUTTests/QS-2734_Q7 can't handle File_Restart.test @@ -1,14 +1,13 @@ --- RCPTT testcase --- Format-Version: 1.0 -Q7-vendor: www.xored.com/q7 Contexts: _ymiyse5IEeCU6db9MgIBkA,_NBWagUKJEeKFe_1s8hcGwg Element-Name: QS-2734_Q7 can't handle File/Restart Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _zsfyEOqwEeKdFoGwzg1egA -Q7-Runtime-Version: 1.5.0.201406131029 -Save-Time: 6/13/14 7:04 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 5:29 PM Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa @@ -31,5 +30,5 @@ Entry-Name: .content get-menu "File/Restart" | click wait-until-eclipse-is-ready -get-view "Test Explorer" | get-tree | get-menu Refresh | click +get-view "Test Explorer" | get-tree ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From ba6f64fb7c99e90514b60375d47496d9e4a98e8e Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 25 Mar 2024 22:35:44 +0400 Subject: [PATCH 41/91] Precreate .settings so that its automatic creation does not break Undo --- .../Undo_Redo in Control Panel.test | 7 +- .../contexts/3ProjectsWith1Requirement.ctx | 240 +++++++++++------- 2 files changed, 155 insertions(+), 92 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test b/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test index bee0e6df6..d229adcf5 100644 --- a/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test +++ b/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-1330 Id: _ok65YPMBEeCE19s6EOk3LA -Runtime-Version: 2.4.0.201901310013 -Save-Time: 2/4/19 8:41 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 10:26 PM Tags: selfAUT, ControlPanel, UndoRedo Testcase-Type: ecl @@ -47,8 +47,9 @@ with [get-editor "Test scenario"] { } get-button Record | click } +// EOL in the rawValue depends on windowing system! Rich Ubuntu and MacOS do not add an extra EOL get-window "Control Panel.*" | get-editbox | get-property rawValue - | equals "wait 200" | verify-true + | equals "wait 200\n" | verify-true with [get-window "Control Panel.*"] { get-editbox | set-text-offset 8 0 get-button Stop | click diff --git a/rcpttTests/contexts/3ProjectsWith1Requirement.ctx b/rcpttTests/contexts/3ProjectsWith1Requirement.ctx index 7699aca52..92698f0aa 100644 --- a/rcpttTests/contexts/3ProjectsWith1Requirement.ctx +++ b/rcpttTests/contexts/3ProjectsWith1Requirement.ctx @@ -1,13 +1,12 @@ --- RCPTT testcase --- Format-Version: 1.0 -Q7-vendor: www.xored.com/q7 Context-Type: org.eclipse.rcptt.ctx.workspace Element-Name: 3ProjectsWith1Requirement Element-Type: context Element-Version: 2.0 Id: _vp_JkIHtEeC8fpRZXBpN8g -Q7-Runtime-Version: 1.5.0.qualifier -Save-Time: 5/14/14 6:44 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/25/24, 10:34 PM ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa Content-Type: text/plain @@ -23,125 +22,188 @@ Contributors: Xored Software Inc - initial creation and/or initial documentation -------------------------------------------------------------------------------- ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa-- -------=_contents/p1/scenario1.scenario-2f9cf311-eb69-30a6-b614-871bd9f34731 +------=_contents/p3/rcptt.properties-0939cb8e-fe12-31e6-9316-e9612846fad9 Content-Type: q7/binary -Entry-Name: contents/p1/scenario1.scenario +Entry-Name: contents/p3/rcptt.properties -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRtj0EKwjAQRfeeIszexOpCKaZFRLCK -oAgibkpJYw00SU2jqZ7eKLZu3A3/zX/MTONGlujOTS20ohDgASCumM6FKijc7Lk/gTjqTZmWuNGG5/g6 -xjXjKjNCh/vvgBopwk4yfEu8VtWhzylcrK1CQpxzWMsCa1OQ4yZpV/6au5Kn5EPJdUxaijnzESCVSU6h -TQP4/TF6nyByCmnzPKxcsrwv+Nxs11txupXpbAfIPirf5awEEvVeUEsHCFxf4sK1AAAABgEAAFBLAQIU -ABQACAgIAAAAIQBcX+LCtQAAAAYBAAAIAAAAAAAAAAAAAAAAAAAAAAAuY29udGVudFBLBQYAAAAAAQAB -ADYAAADrAAAAAAA= -------=_contents/p1/scenario1.scenario-2f9cf311-eb69-30a6-b614-871bd9f34731-- +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABNzsEKgkAUBdD9fMX7 +gF6Oo0bNNpSCTFEpWsWgjzAaFX0l/X1GIHGXh3u5iAjZNi0KYBq4NAMBIoqo7a1hPFE/1G2jwV1KET7I +UsN4NJY0pH17p5IhJ+a6uQ0zF+9u4u7HMbGpDJtZ50U1Le4rDddMJbs46c8hrdbjJZLGs+1hFNmz4drS +fyGYoqTypadcuXE3IjcvwqL+3vEcFTjKX4ArtedDGgvxAVBLBwjTiQ9spwAAANsAAABQSwECFAAUAAgI +CAAAACEA04kPbKcAAADbAAAACAAJAAAAAAAAAAAAAAAAAAAALmNvbnRlbnRVVAUAAQAAAABQSwUGAAAA +AAEAAQA/AAAA5gAAAAAA +------=_contents/p3/rcptt.properties-0939cb8e-fe12-31e6-9316-e9612846fad9-- +------=_contents/p3/.settings/org.eclipse.core.resources.prefs-ced62bbe-3183-3974-aabd-095305b05ff1 +Content-Type: q7/binary +Entry-Name: contents/p3/.settings/org.eclipse.core.resources.prefs + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABLTc7JLChO1SsoSk1L +LUrNS04t1itLLSrOzM+zNeQC8vNTMvPS9W0KivKzUpNL7GxDQ9x0LbgAUEsHCA3o3k03AAAANwAAAFBL +AQIUABQACAgIAAAAIQAN6N5NNwAAADcAAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAA +AFBLBQYAAAAAAQABAD8AAAB2AAAAAAA= +------=_contents/p3/.settings/org.eclipse.core.resources.prefs-ced62bbe-3183-3974-aabd-095305b05ff1-- +------=_contents/p1/.settings/org.eclipse.core.resources.prefs-20cfd58f-79cc-3efc-88d2-ad4c0b5c411f +Content-Type: q7/binary +Entry-Name: contents/p1/.settings/org.eclipse.core.resources.prefs + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABLTc7JLChO1SsoSk1L +LUrNS04t1itLLSrOzM+zNeQC8vNTMvPS9W0KivKzUpNL7GxDQ9x0LbgAUEsHCA3o3k03AAAANwAAAFBL +AQIUABQACAgIAAAAIQAN6N5NNwAAADcAAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAA +AFBLBQYAAAAAAQABAD8AAAB2AAAAAAA= +------=_contents/p1/.settings/org.eclipse.core.resources.prefs-20cfd58f-79cc-3efc-88d2-ad4c0b5c411f-- ------=_contents/p2/.project-dd1b0905-0874-3068-a0b1-3e94a49076c6 Content-Type: q7/binary Entry-Name: contents/p2/.project -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRVjkESwiAMRdf2FB32grrRBaUbxwuo -B6iQcXBKoECdHl9A27GrvCT//4S3k+nrN/igLTZkT3ekBpRWaXw25H67bE+kFRV33r5AxjME6bWLSSyq -DcfOgHAHzgqkgbTGAEbB2Uxp+POGzOy/eYy6V1cHsmxWHXZx9JBVM4uUSCfrQdHhSGWCVL+rfL9Icszi -XG6tnv4AUEsHCBKQ/EWUAAAA8QAAAFBLAQIUABQACAgIAAAAIQASkPxFlAAAAPEAAAAIAAAAAAAAAAAA -AAAAAAAAAAAuY29udGVudFBLBQYAAAAAAQABADYAAADKAAAAAAA= +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAAB1UEsOwiAUXNtTNN0L +6kYXtE3UeAH1AJW+NJjy8UGNxxcKNtbE3cxk5s0Aq1+yz5+AVmhVFmuyKnJQXLdCdWVxvZyWu6KuMmZQ +34G7I1iOwjhvrrIFU42EymwYHYEXuJYSlKsY/SAvpqwNmH6T2yD69myAe5LYwcca1QYhndfYEeC9MBYI +cuMc4RqBjG5A8tjuI5pG+GCD3RDabaR0xhn9aUpCGuJb3YAQrRH/2zDCaAntozWcmy5Mz5392xtQSwcI +Yczft70AAAB0AQAAUEsBAhQAFAAICAgAAAAhAGHM37e9AAAAdAEAAAgACQAAAAAAAAAAAAAAAAAAAC5j +b250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAPwAAAAAAA== ------=_contents/p2/.project-dd1b0905-0874-3068-a0b1-3e94a49076c6-- -------=_contents/p3/context3.ctx-3d95f6b3-8ab2-3015-b0f6-336221c1a417 +------=_contents/p3/scenario3.scenario-464173c6-6e7c-3b83-b424-a8e08c7bb557 Content-Type: q7/binary -Entry-Name: contents/p3/context3.ctx +Entry-Name: contents/p3/scenario3.scenario -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnSNj0sLwjAQhO/9FWHvzfo4KKUPpAiK -CPai4kVKGmuwSTRNHz/fqNiTB2/LfLOzO2HSy4q03NRCqwjGdASEK6YLocoIGnvx55DEXsi0pL02vKCP -Ge20udX3nPHg8J1SrSzvLemlCIa0ySvN5as6cHoEV2vvAWLXdVTLkmpT4nG7/lp+nxi20HF8c3zMcOCU -M6cBUbl0XvZ5YwpEFBGc/X12ytardslTs9vsxKmpzosMYo+Q8G1VFl05/LNd7D0BUEsHCAlMr/O+AAAA -LwEAAFBLAQIUABQACAgIAAAAIQAJTK/zvgAAAC8BAAAIAAAAAAAAAAAAAAAAAAAAAAAuY29udGVudFBL -BQYAAAAAAQABADYAAAD0AAAAAAA= -------=_contents/p3/context3.ctx-3d95f6b3-8ab2-3015-b0f6-336221c1a417-- +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABtj8sKwjAQRff9ijB7 +Ex+LSjAtIoJFBB8bcVNKGmugSdo02urXG8Xqxt1wz9zDzCzuVIluwjbSaAYjPAQkNDe51AWDqzsPphBH +wYwbhTtjRY7rEDdc6MxKQw+fAXVK0q9k/JJ4rW6ozxlcnKsoIW3bYqMKbGxBjpukX/lr/pY8JW9K6pD0 +FAvuI0A6U4JBn07g98fkdYLMGaSPxb5KktVtKRZ2u97K07VM5ztA7l75ruAlkCh4AlBLBwhhDEjstgAA +AAYBAABQSwECFAAUAAgICAAAACEAYQxI7LYAAAAGAQAACAAJAAAAAAAAAAAAAAAAAAAALmNvbnRlbnRV +VAUAAQAAAABQSwUGAAAAAAEAAQA/AAAA9QAAAAAA +------=_contents/p3/scenario3.scenario-464173c6-6e7c-3b83-b424-a8e08c7bb557-- ------=_contents/p1/group1.ctx-8864da2b-34b5-348a-8dac-3c53d3377973 Content-Type: q7/binary Entry-Name: contents/p1/group1.ctx -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRtjk0LgkAURff9iuHtm8laGOIoIVFS -Qe6iTYhONuDM03H86N+nQa7a3nPv4frhoErSCdNI1BwcugIidIa51AWH1j6XWwiDhZ+hogMakdPapU0m -dGokegeDbRWhtmKwZFDSm0XrSTSqdeONOYeXtZXHWN/3FFVB0RTsdol/lb/2eTRS9qWsdtmPUpGNERCd -KsGhmI44QGTO4dG/N+ckPnZ7EZnr6SrvbfnYJcCCxQdQSwcI2sTsOq4AAADuAAAAUEsBAhQAFAAICAgA -AAAhANrE7DquAAAA7gAAAAgAAAAAAAAAAAAAAAAAAAAAAC5jb250ZW50UEsFBgAAAAABAAEANgAAAOQA -AAAAAA== +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABtjk0LgkAURff9iuHt +m8laGOIoIVFSQe6iTYhONuDM03H86N+nQa7a3nPv4frhoErSCdNI1BwcugIidIa51AWH1j6XWwiDhZ+h +ogMakdPapU0mdGokegeDbRWhtmKwZFDSm0XrSTSqdeONOYeXtZXHWN/3FFVB0RTsdol/lb/2eTRS9qWs +dtmPUpGNERCdKsGhmI44QGTO4dG/N+ckPnZ7EZnr6SrvbfnYJcCCxQdQSwcI2sTsOq4AAADuAAAAUEsB +AhQAFAAICAgAAAAhANrE7DquAAAA7gAAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAA +UEsFBgAAAAABAAEAPwAAAO0AAAAAAA== ------=_contents/p1/group1.ctx-8864da2b-34b5-348a-8dac-3c53d3377973-- +------=_contents/p2/context2.ctx-27ef2c34-ae61-3b74-98df-a57d27baee05 +Content-Type: q7/binary +Entry-Name: contents/p2/context2.ctx + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACNj0sLwjAQhO/9FWHv +zfo4KKUPRARFBT0pXqSksQZNomk0xV9vrLQnD96W+WZnd+Ksllfy5KYSWiXQpz0gXDFdCFUm8LCncAxZ +GsRMS1prwwt6H1GnzaW65YxHu3aaamV5bUktRdSlDT5pPl9VkdcTOFt7ixCdc1TLkmpT4n69aC2/T3Rb +6Dk2HO8j7DjlzGtAVC69l33fGAARRQLHcDV8ucX8OeNTs1luxOFxPU62kAaExI1VWfTl8M92afAGUEsH +CP4LcU2+AAAALwEAAFBLAQIUABQACAgIAAAAIQD+C3FNvgAAAC8BAAAIAAkAAAAAAAAAAAAAAAAAAAAu +Y29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8AAAD9AAAAAAA= +------=_contents/p2/context2.ctx-27ef2c34-ae61-3b74-98df-a57d27baee05-- +------=_contents/p1/rcptt.properties-a50cbe44-ff0d-3dde-a56c-fe30d1d0175c +Content-Type: q7/binary +Entry-Name: contents/p1/rcptt.properties + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABNzsEKgkAUBdD9fMX7 +gF7OjBrpNhSKLFEpWsWgjzAaFX0l/X1GIHGXh3u5iAjZJi0KYBq4NAMBIoq47a1hPFE/1G0TglpKET3I +UsN4MJZCSPv2TiVDTsx1cxtmLt7dxN2PE2JTGTazzot6WtxWIVwzvVPjsT9HtFqPl1ga17b7UWTPhmtL +/wV/ipbak65WMlCByM2LsKi/d1xH+472FqBk6HqQJkJ8AFBLBwg32dGEpwAAANsAAABQSwECFAAUAAgI +CAAAACEAN9nRhKcAAADbAAAACAAJAAAAAAAAAAAAAAAAAAAALmNvbnRlbnRVVAUAAQAAAABQSwUGAAAA +AAEAAQA/AAAA5gAAAAAA +------=_contents/p1/rcptt.properties-a50cbe44-ff0d-3dde-a56c-fe30d1d0175c-- +------=_contents/p2/.settings/org.eclipse.core.resources.prefs-f4406f6b-efca-3117-9917-ea94aa2fabfa +Content-Type: q7/binary +Entry-Name: contents/p2/.settings/org.eclipse.core.resources.prefs + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABLTc7JLChO1SsoSk1L +LUrNS04t1itLLSrOzM+zNeQC8vNTMvPS9W0KivKzUpNL7GxDQ9x0LbgAUEsHCA3o3k03AAAANwAAAFBL +AQIUABQACAgIAAAAIQAN6N5NNwAAADcAAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAA +AFBLBQYAAAAAAQABAD8AAAB2AAAAAAA= +------=_contents/p2/.settings/org.eclipse.core.resources.prefs-f4406f6b-efca-3117-9917-ea94aa2fabfa-- +------=_contents/p3/context3.ctx-3d95f6b3-8ab2-3015-b0f6-336221c1a417 +Content-Type: q7/binary +Entry-Name: contents/p3/context3.ctx + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACNj0sLwjAQhO/9FWHv +zfo4KKUPpAiKCPai4kVKGmuwSTRNHz/fqNiTB2/LfLOzO2HSy4q03NRCqwjGdASEK6YLocoIGnvx55DE +Xsi0pL02vKCPGe20udX3nPHg8J1SrSzvLemlCIa0ySvN5as6cHoEV2vvAWLXdVTLkmpT4nG7/lp+nxi2 +0HF8c3zMcOCUM6cBUbl0XvZ5YwpEFBGc/X12ytardslTs9vsxKmpzosMYo+Q8G1VFl05/LNd7D0BUEsH +CAlMr/O+AAAALwEAAFBLAQIUABQACAgIAAAAIQAJTK/zvgAAAC8BAAAIAAkAAAAAAAAAAAAAAAAAAAAu +Y29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8AAAD9AAAAAAA= +------=_contents/p3/context3.ctx-3d95f6b3-8ab2-3015-b0f6-336221c1a417-- +------=_contents/p3/.project-274a1498-c154-3c89-9c62-048fd1543b8a +Content-Type: q7/binary +Entry-Name: contents/p3/.project + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAAB1UEsOwiAUXNtTNN0L +Ghe6oG2ixguoB6j0pcGUjw9qPL5QsLEm7mYmM28GWP2Sff4EtEKrsliTVZGD4roVqiuL6+W03BV1lTGD ++g7cHcFyFMZ5c5UtmGokVGbD6Ai8wLWUoFzF6Ad5MWVtwPSb3AbRt2cD3JPEDj7WqDYI6bzGjgDvhbFA +kBvnCNcIZHQDksd2H9E0wgcb7IbQbiOlM87oT1MS0hDf6gaEaI3434YRRktoH63h3HRheu7s395QSwcI +Xb9vhb0AAAB0AQAAUEsBAhQAFAAICAgAAAAhAF2/b4W9AAAAdAEAAAgACQAAAAAAAAAAAAAAAAAAAC5j +b250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAPwAAAAAAA== +------=_contents/p3/.project-274a1498-c154-3c89-9c62-048fd1543b8a-- +------=_contents/p1/scenario1.scenario-2f9cf311-eb69-30a6-b614-871bd9f34731 +Content-Type: q7/binary +Entry-Name: contents/p1/scenario1.scenario + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABtj0EKwjAQRfeeIsze +xOpCKaZFRLCKoAgibkpJYw00SU2jqZ7eKLZu3A3/zX/MTONGlujOTS20ohDgASCumM6FKijc7Lk/gTjq +TZmWuNGG5/g6xjXjKjNCh/vvgBopwk4yfEu8VtWhzylcrK1CQpxzWMsCa1OQ4yZpV/6au5Kn5EPJdUxa +ijnzESCVSU6hTQP4/TF6nyByCmnzPKxcsrwv+Nxs11txupXpbAfIPirf5awEEvVeUEsHCFxf4sK1AAAA +BgEAAFBLAQIUABQACAgIAAAAIQBcX+LCtQAAAAYBAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVU +BQABAAAAAFBLBQYAAAAAAQABAD8AAAD0AAAAAAA= +------=_contents/p1/scenario1.scenario-2f9cf311-eb69-30a6-b614-871bd9f34731-- ------=_contents/p1/context1.ctx-ce1da57e-1615-3985-b38e-222f30d9e727 Content-Type: q7/binary Entry-Name: contents/p1/context1.ctx -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnSNkU1PhDAQhu/8imbudmQvEAJs4sZE -Dmt0o3HjZbNpC6LQslClP98ChewmG+Nt+s47z3w0Xpu6Ij+i7UolE/DpLRAhmeKlLBL41vlNCOvUi5mq -qVGt4PQU0F61X11zZCJ6m6ONkloYTUxdRgttNdAsX3aR1RP40LqJEPu+p6ouqGoL3G+z2XK9xVKFNo9j -Hk8BLnkqmNWAyGNtvWwawwdS8gQO2erAt9mDuRebMG927/u75jEsIPUIiUer1ENsX02rPgXTneM8By+i -00+TCJPHuvKyErOFuhIgjvS6y6zKmTboFH/x4FXE1MWdjtrCP1lD/oyjKm7vPA9zgTpzxjhvNi6Ny9ZD -+K8vTb1fUEsHCHhQoD4MAQAAJAIAAFBLAQIUABQACAgIAAAAIQB4UKA+DAEAACQCAAAIAAAAAAAAAAAA -AAAAAAAAAAAuY29udGVudFBLBQYAAAAAAQABADYAAABCAQAAAAA= +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACNkU1PhDAQhu/8imbu +dmQvEAJs4sZEDmt0o3HjZbNpC6LQslClP98ChewmG+Nt+s47z3w0Xpu6Ij+i7UolE/DpLRAhmeKlLBL4 +1vlNCOvUi5mqqVGt4PQU0F61X11zZCJ6m6ONkloYTUxdRgttNdAsX3aR1RP40LqJEPu+p6ouqGoL3G+z +2XK9xVKFNo9jHk8BLnkqmNWAyGNtvWwawwdS8gQO2erAt9mDuRebMG927/u75jEsIPUIiUer1ENsX02r +PgXTneM8By+i00+TCJPHuvKyErOFuhIgjvS6y6zKmTboFH/x4FXE1MWdjtrCP1lD/oyjKm7vPA9zgTpz +xjhvNi6Ny9ZD+K8vTb1fUEsHCHhQoD4MAQAAJAIAAFBLAQIUABQACAgIAAAAIQB4UKA+DAEAACQCAAAI +AAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8AAABLAQAAAAA= ------=_contents/p1/context1.ctx-ce1da57e-1615-3985-b38e-222f30d9e727-- ------=_contents/p1/.project-0168c939-13f3-36ca-8e56-1457c51a25d3 Content-Type: q7/binary Entry-Name: contents/p1/.project -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRVj00SgjAMhddyCqZ7W3Gji1A2jhdQ -D4Al49ShP7TF4fgGEEZW+ZK8vCRQDabNPxiidrZkBT+wHK1yjbavkj3u1/2ZVTIDH9wbVbpgVEH7RGKZ -7cDWBqUvQExABeWMQZskiIWo+JuNxGsi/RHEwqQRfyJ49rptbh7V1Nlktk59wNlqZkmb+OACNrw7cUVA -cW6Nd02S0WadXHdtnvkCUEsHCD8zDWqdAAAACQEAAFBLAQIUABQACAgIAAAAIQA/Mw1qnQAAAAkBAAAI -AAAAAAAAAAAAAAAAAAAAAAAuY29udGVudFBLBQYAAAAAAQABADYAAADTAAAAAAA= +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAAB1UEEOgjAQPMsrCHdb +8aKHUhI1fkB9AJYNqYG2bovx+ZYWiJh4m5nM7EzLynfXpi9AK7UqspxsshSU0LVUTZHdruf1Pit5wgzq +Bwh3AitQGufNPFkxVXXATc5oAF4QuutAOc7ohLw4Zq3HM+Fmy+iEvYd+mdi9l219MSBCIrCjP1epehDG +Wo0NAdFKY4GgMM4RoRFIcAOS5+4Q0TzOByts+mGVjZQuOKM/TaMwDvGtrkeI1oj/bQgwWob2YB3OzRfm +5y7+8wNQSwcIsR99yMYAAACMAQAAUEsBAhQAFAAICAgAAAAhALEffcjGAAAAjAEAAAgACQAAAAAAAAAA +AAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAAUBAAAAAA== ------=_contents/p1/.project-0168c939-13f3-36ca-8e56-1457c51a25d3-- -------=_contents/p2/context2.ctx-27ef2c34-ae61-3b74-98df-a57d27baee05 -Content-Type: q7/binary -Entry-Name: contents/p2/context2.ctx - -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnSNj0sLwjAQhO/9FWHvzfo4KKUPRARF -BT0pXqSksQZNomk0xV9vrLQnD96W+WZnd+Ksllfy5KYSWiXQpz0gXDFdCFUm8LCncAxZGsRMS1prwwt6 -H1GnzaW65YxHu3aaamV5bUktRdSlDT5pPl9VkdcTOFt7ixCdc1TLkmpT4n69aC2/T3Rb6Dk2HO8j7Djl -zGtAVC69l33fGAARRQLHcDV8ucX8OeNTs1luxOFxPU62kAaExI1VWfTl8M92afAGUEsHCP4LcU2+AAAA -LwEAAFBLAQIUABQACAgIAAAAIQD+C3FNvgAAAC8BAAAIAAAAAAAAAAAAAAAAAAAAAAAuY29udGVudFBL -BQYAAAAAAQABADYAAAD0AAAAAAA= -------=_contents/p2/context2.ctx-27ef2c34-ae61-3b74-98df-a57d27baee05-- ------=_contents/p2/scenario2.scenario-19e12613-d4ee-34b0-8b24-fd468ecdc8e1 Content-Type: q7/binary Entry-Name: contents/p2/scenario2.scenario -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRtj8sKwjAQRfd+RZi9idaFEpoWEaEi -QsWNuCkljTXQJDWtffy9qdi6cTfcM/cw44edKlAjbCWNZrDEC0BCc5NJnTN41ff5BsJg5nOjcGesyPBz -jSsudGqloZfvgDol6STxBonT6oq6nMGjrktKSNu22KgcG5uT6+kwrvw1TyVHyYeS55qMFAvuIkA6VYLB -mHrw+2M1nCAzBknvRZwfomYvdjY+xvL2KpLtGVDdl64reAEkmL0BUEsHCE5AZWG1AAAABgEAAFBLAQIU -ABQACAgIAAAAIQBOQGVhtQAAAAYBAAAIAAAAAAAAAAAAAAAAAAAAAAAuY29udGVudFBLBQYAAAAAAQAB -ADYAAADrAAAAAAA= +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABtj8sKwjAQRfd+RZi9 +idaFEpoWEaEiQsWNuCkljTXQJDWtffy9qdi6cTfcM/cw44edKlAjbCWNZrDEC0BCc5NJnTN41ff5BsJg +5nOjcGesyPBzjSsudGqloZfvgDol6STxBonT6oq6nMGjrktKSNu22KgcG5uT6+kwrvw1TyVHyYeS55qM +FAvuIkA6VYLBmHrw+2M1nCAzBknvRZwfomYvdjY+xvL2KpLtGVDdl64reAEkmL0BUEsHCE5AZWG1AAAA +BgEAAFBLAQIUABQACAgIAAAAIQBOQGVhtQAAAAYBAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVU +BQABAAAAAFBLBQYAAAAAAQABAD8AAAD0AAAAAAA= ------=_contents/p2/scenario2.scenario-19e12613-d4ee-34b0-8b24-fd468ecdc8e1-- -------=_contents/p3/.project-274a1498-c154-3c89-9c62-048fd1543b8a -Content-Type: q7/binary -Entry-Name: contents/p3/.project - -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRVjkEOwiAQRdf2FA17QeNCF5RujBdQ -D1BhYjBloEBNjy+gbexq3sz8/2d4O5m+foMP2mJD9nRHakBplcZnQ+63y/ZEWlFx5+0LZDxDkF67mMSi -2nDsDAh34KxAGkhrDGAUnM2Uhj9vyMz+m8eoe3V1IMtm1WEXRw9ZNbNIiXSyHhQdjlQmSPW7yveLJMcs -zuXW6ukPUEsHCIXlbJqUAAAA8QAAAFBLAQIUABQACAgIAAAAIQCF5WyalAAAAPEAAAAIAAAAAAAAAAAA -AAAAAAAAAAAuY29udGVudFBLBQYAAAAAAQABADYAAADKAAAAAAA= -------=_contents/p3/.project-274a1498-c154-3c89-9c62-048fd1543b8a-- ------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf Content-Type: q7/binary Entry-Name: .q7.content -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnTFlFFrwjAQx9/9FCHvS9ZmD1Jahclg -DjaGMBx7EYmxZrZJlkbbj79kNkWHbl0V9pbe/e9/l/uVxMMqz8CW6YJLkcAAXUPABJULLtIEbszyqg+H -g14sdYoYzbgqGNJUGYOoqVAp9bpQc8qiqT+NpDCsMqDKedTYhs7WNhJFZOMJXBmjIozLskQyT5E1x6+P -Yy/5pVdT7jWu/EuHrQ43OgjEPLdq8qzlO6OmmHKzCibsY8M1y5kwEPBFAmdbNXtYj+/NHRv1l2ry9nqr -nvopHPQAiKm7jTDubL9UbVQbqwDuEja15BnzcVTrIKjLXyZjGz05h5u6VgZNLT5qTXfbDdxGOtm7uuPW -qZYb1dU4/MG4oEzMNZcB8qdOkzfFe11ktrC/mF+7X863UQ5FZbGXjrFHeoJweHHCYTvCYUcQpAWI8BwQ -4f+AIBcHQdqBIB1B3LQAQc4BQbqBONx0jJsXLsZ/feMHvU9QSwcIywAjKGUBAAA+BgAAUEsBAhQAFAAI -CAgAAAAhAMsAIyhlAQAAPgYAAAgAAAAAAAAAAAAAAAAAAAAAAC5jb250ZW50UEsFBgAAAAABAAEANgAA -AJsBAAAAAA== +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAADdlFFrgzAQx9/7KSTv +S6a+FNEWVgbrYGP0pWUvpaSnzapJlsTqx19cjdgyN0b7MPZ25n65/93/JPG0LnLvAEozwRPk41vkAadi +y3iWoNKkN2M0nYxioTIMNGdSA1ZUGoOpqXEl1F7LDYVo6aKZ4AZq49UFi7qyQVPWCnEd2fME7YyRESFV +VWFRZNgWJ6unuUN+0OquO6a5/skRy5GOQx7fFJYOX5R4A2r0kpmdv4D3kikogBvksW2C1ge5ftzPH8w9 +zMapXLyu7uTzOEOTkefFtJmGmya2X7It1BaWPjombCplObhz3HKIfJmmR4f8ZqoBJFOilN8BR1usjgRl +GOgBTFPgG8WEj13UB0W+tQtyTbu2zkRPIQ3G2D9Dd4OfCfZXR4Wy+wMtSkVB22Yh7fdJ2tJDUpXudRIT +5/3AKoJLVhFcz+ng3zsdXuJ0eD2nwz/v9KmVMekek5j89jmdjD4AUEsHCM4tjZNgAQAAqQUAAFBLAQIU +ABQACAgIAAAAIQDOLY2TYAEAAKkFAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBL +BQYAAAAAAQABAD8AAACfAQAAAAA= ------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf-- -------=_contents/p3/scenario3.scenario-464173c6-6e7c-3b83-b424-a8e08c7bb557 +------=_contents/p2/rcptt.properties-45f15ee2-a952-3087-b727-79e97bfe85eb Content-Type: q7/binary -Entry-Name: contents/p3/scenario3.scenario +Entry-Name: contents/p2/rcptt.properties -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRtj8sKwjAQRff9ijB7Ex+LSjAtIoJF -BB8bcVNKGmugSdo02urXG8Xqxt1wz9zDzCzuVIluwjbSaAYjPAQkNDe51AWDqzsPphBHwYwbhTtjRY7r -EDdc6MxKQw+fAXVK0q9k/JJ4rW6ozxlcnKsoIW3bYqMKbGxBjpukX/lr/pY8JW9K6pD0FAvuI0A6U4JB -n07g98fkdYLMGaSPxb5KktVtKRZ2u97K07VM5ztA7l75ruAlkCh4AlBLBwhhDEjstgAAAAYBAABQSwEC -FAAUAAgICAAAACEAYQxI7LYAAAAGAQAACAAAAAAAAAAAAAAAAAAAAAAALmNvbnRlbnRQSwUGAAAAAAEA -AQA2AAAA7AAAAAAA -------=_contents/p3/scenario3.scenario-464173c6-6e7c-3b83-b424-a8e08c7bb557-- +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABNzsEKgkAUBdD9fMX7 +gF7OjBo121AoMkSlaBWDPsJoVPSV9PcZgcRdHu7lIiJk27QogGng0g4EiCjitneW8UT9ULeNAbWUInqQ +o4bxaB0ZSPv2TiVDTsx1cxtmLt7dxN2PE2JbWbazzot6WtxVBq6Z3quR+nNEq/V4iaX1XXsYRfZsuHb0 +XwinaKkD6WslN2ojcvsiLOrvHd/ToaeDBShp/ADSRIgPUEsHCD2s8xamAAAA2wAAAFBLAQIUABQACAgI +AAAAIQA9rPMWpgAAANsAAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBLBQYAAAAA +AQABAD8AAADlAAAAAAA= +------=_contents/p2/rcptt.properties-45f15ee2-a952-3087-b727-79e97bfe85eb-- From ea5cf4e36f1666a66293bde064f588d37c7041f1 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 22 Mar 2024 21:56:35 +0400 Subject: [PATCH 42/91] Adapt to increased memory requirements of Eclipse Platform 2024-03 --- .../src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java index 5bf366f67..7a85e399b 100644 --- a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java +++ b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java @@ -84,7 +84,7 @@ public class ExecuteMojo extends AbstractRCPTTMojo { private static final String ENABLE_SOFTWARE_INSTALLATION = "-enableSoftwareInstallation"; private static int shutdownListenerPort; - private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms128m", "-Xmx256m", + private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms256m", "-Xmx512m", "-Dorg.eclipse.rcptt.runner.returnTestFailure=true" }; // TODO: Replace this random number with carefully thought one From 41ea8ee1048dc08019ebb97453f9cf3094ee3714 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 13:42:20 +0400 Subject: [PATCH 43/91] Log missing error information --- runner/org.eclipse.rcptt.runner/.project | 11 +++++++++++ .../src/org/eclipse/rcptt/runner/HeadlessRunner.java | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/runner/org.eclipse.rcptt.runner/.project b/runner/org.eclipse.rcptt.runner/.project index 5415e4707..572fe3cb8 100644 --- a/runner/org.eclipse.rcptt.runner/.project +++ b/runner/org.eclipse.rcptt.runner/.project @@ -25,4 +25,15 @@ org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + + + 1711445940125 + + 10 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-true-false-target + + + diff --git a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java index 64e8fb004..c1a0d8250 100644 --- a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java +++ b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java @@ -14,6 +14,8 @@ import java.lang.reflect.Method; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.ILog; +import org.eclipse.core.runtime.Platform; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.internal.core.LaunchManager; @@ -27,6 +29,7 @@ @SuppressWarnings("restriction") public class HeadlessRunner { + private final ILog LOG = Platform.getLog(HeadlessRunner.class); public final Reporter reporter = new Reporter(); @@ -49,6 +52,7 @@ public int performCoolThings() throws Exception { try { tpc.initAndCheckTargetPlatform(); } catch(CoreException e) { + LOG.log(e.getStatus()); e.printStackTrace(System.err); throw new TargetPlatformFail(); } From 5bbd973609923544fc3b8ba969015fae9ae4b476 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 14:14:41 +0400 Subject: [PATCH 44/91] Fixed resource leaks --- .../src/org/eclipse/rcptt/internal/ui/Images.java | 4 +--- .../rcptt/ui/controls/TestSuiteButtonsPanel.java | 15 +++++---------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java index c9d832e33..e9b589d88 100644 --- a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java +++ b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java @@ -197,10 +197,8 @@ public synchronized static Image getImage(String key) { ImageRegistry registry = Q7UIPlugin.getDefault().getImageRegistry(); Image image = registry.get(key); if (image == null || image.isDisposed()) { - ImageDescriptor descriptor = getImageDescriptor(key); - image = descriptor.createImage(); registry.remove(key); - registry.put(key, image); + registry.put(key, getImageDescriptor(key)); } return image; } diff --git a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/controls/TestSuiteButtonsPanel.java b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/controls/TestSuiteButtonsPanel.java index ad5f9545b..e3a9212cd 100644 --- a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/controls/TestSuiteButtonsPanel.java +++ b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/controls/TestSuiteButtonsPanel.java @@ -80,30 +80,25 @@ public TestSuiteButtonsPanel(Composite parent, boolean needOrderReset) { private void createButtons(boolean needOrderReset) { addTestCaseBtn = new Button(this, SWT.PUSH); addTestCaseBtn.setText(Messages.ScenariosLaunchTab_AddTestCaseButton); - addTestCaseBtn.setImage(Images.getImageDescriptor(Images.SCENARIO) - .createImage()); + addTestCaseBtn.setImage(Images.getImage(Images.SCENARIO)); addFolderBtn = new Button(this, SWT.PUSH); addFolderBtn.setText(Messages.ScenariosLaunchTab_AddFolderButton); - addFolderBtn.setImage(Images.getImageDescriptor(Images.NEW_FOLDER) - .createImage()); + addFolderBtn.setImage(Images.getImage(Images.NEW_FOLDER)); addTaggedBtn = new Button(this, SWT.PUSH); addTaggedBtn.setText("Add with Tag"); - addTaggedBtn.setImage(Images.getImageDescriptor(Images.TAG) - .createImage()); + addTaggedBtn.setImage(Images.getImage(Images.TAG)); removeBtn = new Button(this, SWT.PUSH); removeBtn.setText(Messages.ScenariosLaunchTab_RemoveButton); removeBtn.setImage(PlatformUI.getWorkbench().getSharedImages() - .getImageDescriptor(ISharedImages.IMG_ETOOL_DELETE) - .createImage()); + .getImage(ISharedImages.IMG_ETOOL_DELETE)); removeAllBtn = new Button(this, SWT.PUSH); removeAllBtn.setText(Messages.ScenariosLaunchTab_RemoveAllButton); removeAllBtn.setImage(PlatformUI.getWorkbench().getSharedImages() - .getImageDescriptor(ISharedImages.IMG_ETOOL_DELETE) - .createImage()); + .getImage(ISharedImages.IMG_ETOOL_DELETE)); new Label(this, SWT.HORIZONTAL | SWT.SEPARATOR); moveUpBtn = new Button(this, SWT.PUSH); From 82e028f1fd0f4f9c64ace6026c2d30f4f5f831bc Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 14:44:11 +0400 Subject: [PATCH 45/91] Split long test into two to deal with 300 second timeout per test --- .../Set AUT in Launch Configuration.test | 48 +++++++-------- .../Unset AUT in Launch Configuration.test | 61 +++++++++++++++++++ 2 files changed, 83 insertions(+), 26 deletions(-) create mode 100644 rcpttTests/platform_tests/selfAUTTests/Unset AUT in Launch Configuration.test diff --git a/rcpttTests/platform_tests/selfAUTTests/Set AUT in Launch Configuration.test b/rcpttTests/platform_tests/selfAUTTests/Set AUT in Launch Configuration.test index 761a74ad5..4dd7207ac 100644 --- a/rcpttTests/platform_tests/selfAUTTests/Set AUT in Launch Configuration.test +++ b/rcpttTests/platform_tests/selfAUTTests/Set AUT in Launch Configuration.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _k9D1gG3_EeOpKr7OsF8P0g -Runtime-Version: 2.0.0.201505142314 -Save-Time: 5/15/15 12:16 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/26/24, 2:43 PM Tags: selfAUT Testcase-Type: ecl @@ -24,6 +24,9 @@ https://www.eclipse.org/legal/epl-v20.html Contributors: Xored Software Inc - initial creation and/or initial documentation -------------------------------------------------------------------------------- + + +Test that tests with specified AUT association do not prompt for AUT selection and successfully launch associated AUT. ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa-- ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac Content-Type: text/ecl @@ -31,37 +34,30 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "Q7Project/Test" | get-menu "Run As/1 Test Cases" | click with [get-view Applications] { - click - get-tree | select "selfQ7.*" - get-button Stop | click + click + get-tree | select "selfQ7.*" + get-button Stop | click + get-button Stop | get-property enablement | equals false | verify-true } get-button "Run.*" -after [get-button "Debug.*"] | click -arrow get-menu "Run Configurations..." | click get-window "Run Configurations" | get-tree | select "RCPTT Test Suite/Test" with [get-window "Run Configurations" | get-combo -after [get-label "AUT:"]] { - get-property "values[0]" | equals "" | verify-true - get-property "values[1]" | equals selfQ7 | verify-true + get-property "values[0]" | equals "" | verify-true + get-property "values[1]" | equals selfQ7 | verify-true } with [get-window "Run Configurations"] { - get-combo -after [get-label "AUT:"] | select selfQ7 - get-button Apply | click - get-button Run | click + get-combo -after [get-label "AUT:"] | select selfQ7 + get-button Apply | click + get-button Run | click } -with [get-view Applications] { - click - get-tree | select "selfQ7.*" - get-button Stop | click -} -get-button "Run.*" -after [get-button "Debug.*"] | click -arrow -get-menu "Run Configurations..." | click -with [get-window "Run Configurations"] { - get-tree | select "RCPTT Test Suite/Test" - get-combo -after [get-label "AUT:"] | select "" - get-button Apply | click - get-button Run | click -} -with [get-window "Select an Application Under Test"] { - get-tree | select "selfQ7.*" - get-button OK | click + +try -times 10 -delay 7000 -command { + with [get-view Applications] { + click + get-tree | select "selfQ7.*" + // check that AUT has indeed started + get-button Stop | get-property enablement | equals true | verify-true + } } ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- diff --git a/rcpttTests/platform_tests/selfAUTTests/Unset AUT in Launch Configuration.test b/rcpttTests/platform_tests/selfAUTTests/Unset AUT in Launch Configuration.test new file mode 100644 index 000000000..ea19173e6 --- /dev/null +++ b/rcpttTests/platform_tests/selfAUTTests/Unset AUT in Launch Configuration.test @@ -0,0 +1,61 @@ +--- RCPTT testcase --- +Format-Version: 1.0 +Contexts: _ymiyse5IEeCU6db9MgIBkA,_ZQYygK2sEeCqBbDEJWufvQ,_zyoccGk6EeOVJ9Fi6d7JYQ +Element-Name: Unset AUT in Launch Configuration +Element-Type: testcase +Element-Version: 3.0 +External-Reference: +Id: _Vei3UOtbEe6bdKuDS2jw1A +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/26/24, 2:43 PM +Tags: selfAUT +Testcase-Type: ecl + +------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa +Content-Type: text/plain +Entry-Name: .description + +Copyright (c) 2009, 2019 Xored Software Inc and others. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v2.0 +which accompanies this distribution, and is available at +https://www.eclipse.org/legal/epl-v20.html + +Contributors: + Xored Software Inc - initial creation and/or initial documentation +-------------------------------------------------------------------------------- + +Test that tests without specified AUT association prompt for AUT selection and successfully launch selected AUT. +------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa-- +------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac +Content-Type: text/ecl +Entry-Name: .content + +get-view "Test Explorer" | get-tree | select "Q7Project/Test" | get-menu "Run As/1 Test Cases" | click +with [get-view Applications] { + click + get-tree | select "selfQ7.*" + get-button Stop | click + get-button Stop | get-property enablement | equals false | verify-true +} + +get-button "Run.*" -after [get-button "Debug.*"] | click -arrow +get-menu "Run Configurations..." | click +with [get-window "Run Configurations"] { + get-tree | select "RCPTT Test Suite/Test" + get-combo -after [get-label "AUT:"] | get-property selection | equals "" | verify-true + get-button Run | click +} +with [get-window "Select an Application Under Test"] { + get-tree | select "selfQ7.*" + get-button OK | click +} +try -times 10 -delay 7000 -command { + with [get-view Applications] { + click + get-tree | select "selfQ7.*" + // check that AUT has indeed started + get-button Stop | get-property enablement | equals true | verify-true + } +} +------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 21fa5b408a1e81931bd017c1efbe0b9645bd229b Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 14:48:48 +0400 Subject: [PATCH 46/91] Relax label matching --- rcpttTests/platform_tests/Switch Workspace.test | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rcpttTests/platform_tests/Switch Workspace.test b/rcpttTests/platform_tests/Switch Workspace.test index 41f4714f7..47d5663a2 100644 --- a/rcpttTests/platform_tests/Switch Workspace.test +++ b/rcpttTests/platform_tests/Switch Workspace.test @@ -5,8 +5,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _3-uE0BZaEeWduqDErBxjvw -Runtime-Version: 2.4.0.qualifier -Save-Time: 11/16/18 9:24 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/26/24, 2:47 PM Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa @@ -29,14 +29,14 @@ Entry-Name: .content get-menu "File/Switch Workspace/Other..." | click set-dialog-result Folder "platform:/resource/new_workspace" -with [get-window "RCP Testing Tool IDE Launcher"] { +with [get-window "(RCP Testing Tool IDE|Eclipse Platform) Launcher"] { get-button "Browse..." | click get-button Launch | click } wait-until-eclipse-is-ready get-menu "Window/Perspective/Open Perspective/Other..." | click with [get-window "Open Perspective"] { - get-table | select Resource + get-table | select "Resource.*" get-button Open | click } ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From ae627c3fce4f5aabad5d7d82d1987a6e4381c045 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 15:02:57 +0400 Subject: [PATCH 47/91] Skip a test incompatible with Linux --- rcpttTests/platform_tests/Switch Workspace.test | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rcpttTests/platform_tests/Switch Workspace.test b/rcpttTests/platform_tests/Switch Workspace.test index 47d5663a2..35fa3ffb7 100644 --- a/rcpttTests/platform_tests/Switch Workspace.test +++ b/rcpttTests/platform_tests/Switch Workspace.test @@ -6,7 +6,8 @@ Element-Version: 3.0 External-Reference: Id: _3-uE0BZaEeWduqDErBxjvw Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/26/24, 2:47 PM +Save-Time: 3/26/24, 3:02 PM +Tags: skipLinux Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa @@ -22,6 +23,8 @@ https://www.eclipse.org/legal/epl-v20.html Contributors: Xored Software Inc - initial creation and/or initial documentation -------------------------------------------------------------------------------- + +Eclipse Platform does not support restart with a different workspace on Linux in development mode. ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa-- ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac Content-Type: text/ecl From ca3ff68aab2f658d52c2fe96141fbe01cc653aa9 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 15:06:57 +0400 Subject: [PATCH 48/91] Record button was not clicked - assumption - the click has happened before button states were updated. Adding a sleep in an attempt to stabilize. --- .../ControlPanel/EnterTestDescriptionInControlPanel.test | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rcpttTests/platform_tests/ControlPanel/EnterTestDescriptionInControlPanel.test b/rcpttTests/platform_tests/ControlPanel/EnterTestDescriptionInControlPanel.test index a5862a778..24e1733db 100644 --- a/rcpttTests/platform_tests/ControlPanel/EnterTestDescriptionInControlPanel.test +++ b/rcpttTests/platform_tests/ControlPanel/EnterTestDescriptionInControlPanel.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _F8k5sO_-EeCXWfaP50PILw -Runtime-Version: 2.4.3.201905141211 -Save-Time: 5/15/19 1:28 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/26/24, 3:05 PM Tags: selfAUT, ControlPanel Testcase-Type: ecl @@ -37,6 +37,7 @@ Content-Type: text/ecl Entry-Name: .content get-view "Test Explorer" | get-tree | select "TestQ7Prj/Test scenario" | double-click +wait 5000 get-editor "Test scenario" | get-button Record | click try -command { take-screenshot From c223383e3a6da042ce4872348b8606ac176d6c05 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 21:56:15 +0400 Subject: [PATCH 49/91] Restart mockupsAUT so that its Console is visible --- .../selfAUTTests/q7commands/ListFeatures.test | 6 +- .../WSWithTestThatUpdateProgress.ctx | 363 +++++++++--------- .../RefreshControlStateInAssertionMode.test | 69 ++-- 3 files changed, 231 insertions(+), 207 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListFeatures.test b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListFeatures.test index 6a63ca28f..bd4fb6bce 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListFeatures.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/ListFeatures.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _nZDtgIGUEeKRQ-O0Mh9igg -Runtime-Version: 2.5.2.202204240826 -Save-Time: 4/26/22, 5:10 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/26/24, 8:28 PM Tags: selfAUT, q7commands Testcase-Type: ecl @@ -55,7 +55,7 @@ with [get-editor test] { } get-button Replay | click } -try -times 30 -delay 1000 -command{ +try -times 10 -delay 10000 -command{ get-view "Execution View" | get-label "1/1" -after [get-label "Runs:"] } get-view "Execution View" | get-button "Details..." | click diff --git a/rcpttTests/contexts/WorkspaceContext/WSWithTestThatUpdateProgress.ctx b/rcpttTests/contexts/WorkspaceContext/WSWithTestThatUpdateProgress.ctx index ca7c7aac9..8fc1100cd 100644 --- a/rcpttTests/contexts/WorkspaceContext/WSWithTestThatUpdateProgress.ctx +++ b/rcpttTests/contexts/WorkspaceContext/WSWithTestThatUpdateProgress.ctx @@ -5,8 +5,8 @@ Element-Name: WSWithTestThatUpdateProgress Element-Type: context Element-Version: 2.0 Id: _w0gTAGWkEeSAaoCk3UVcKg -Runtime-Version: 2.5.5.202403141550 -Save-Time: 3/15/24, 12:41 AM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/26/24, 9:51 PM ------=_contents/Test/.project-c6b405a4-6a99-3240-97c6-44433d607c67 Content-Type: q7/binary @@ -62,25 +62,27 @@ bnRlbnRVVAUAAQAAAABQSwUGAAAAAAEAAQA/AAAA2wIAAAAA Content-Type: q7/binary Entry-Name: contents/Test/Waiting.test -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACdkcFOhDAQhu99imbv -Ay1tRUg8bdCYqFl3yW7WC+nCgCRQDK26+/aCAnp2jv/MfPk6BQC6XW/SlDq0LtcWKQCQ265vtYM99rbu -TEy5x0jSYIvGwZNuMaYHXbvaVEuaXt6GdIYs8UIQI+HssDe6gS2W2KPJhw1yX8Q0ew2u+PXdMUtwd5JR -8HJ4EOb4TLbvxtUt/vVQnvQCxiVngeBSSLLTHwhpPTpx7oc+l1TFTNDNI0knm0kO84YQ+K6bzMs740ZD -psNACs0gVIUAUagSojDioERUIEN1CnVO1tPw/Mqz80daYlx/mQ4yAwlpuoquyrq3jrZora5wRT6Hc1Gu -GGM/bYvDePHb/5fW8FFfUEsHCF5AGh0MAQAAwAEAAFBLAQIUABQACAgIAAAAIQBeQBodDAEAAMABAAAI -AAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8AAABLAQAAAAA= +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACdkVFPgzAQx9/7KZo9 +e1tpYawkPi1oTNRMRlzmC+ngQBIohlbdvr1Fgb17ffvf9ZdfrwBAk+0uTalFY3NlkAIAuev6Vll4xd7U +nY6ot2QkbrBFbeFZtRjRg6ptras5TS8fLp0gczwTxEA4W+y1aiDBEnvUubtBHoqIZu987W3uj1mM+5Mv ++dvhUejjC0k+ta1bvFL4MnCHM+4zwT0mPUn26gshrQcnseLrFfdvqIzEhu6eSDrqjHaYN4TAb91my7zT +dlBkKuS+UAzCoBAgiqAEGUoPAiELZBicQpWT7Tg8PfNsVwMt1ra/jBuZgIQ0XUUXZd0bS1s0RlW4IN9u +X9Rjrv7aBt14ce3/S8v91A9QSwcIr6PuvA4BAADBAQAAUEsBAhQAFAAICAgAAAAhAK+j7rwOAQAAwQEA +AAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAE0BAAAAAA== + ------=_contents/Test/Waiting.test-a083f1a6-741d-3893-808a-85adaf496d15-- ------=_contents/Test/Init.test-2af59f18-bc2c-357f-892f-876c76df80ed Content-Type: q7/binary Entry-Name: contents/Test/Init.test -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABNz9FugjAUxvH7PkUf -wCqdaCJ3DIF0yzaFKgk3pIEj64TiaB2Mp1+XOLPbf/Ll/A4hBCfBjnNsQJtSaMCEEBR1fSsMOUKvZac8 -TOcOCjplYDTaw4U7sY2fXeoQgolVNFbnSm/8WSGlKFicP4aQRgzG6T2rn3Q9Kwan5n6cnW33RRecl4dj -+Wx7uQ/zYfuwt33cbg7RoKJ0PaCwgRaUIa+iBQ8zJc098e+LTX/We75DlxYajgZ6JRqSwAl6UKVdIFZZ -9y44sC7Oc3uvMW/Jh9bZuN6j5KqMbOH/u6u5O/+8ikaeJPQoFV9AuPzVULqgzoK6eOW5a7x7QfxmudGg -bBD6AVBLBwi+MmEJAQEAAFYBAABQSwECFAAUAAgICAAAACEAvjJhCQEBAABWAQAACAAJAAAAAAAAAAAA -AAAAAAAALmNvbnRlbnRVVAUAAQAAAABQSwUGAAAAAAEAAQA/AAAAQAEAAAAA +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABFj91ugkAQRu/3KfYB +XIWFmsIdIpDV1Co/knBDNjhFKiyG3Rbq07tNrM3cncw38x1CCI79fZpiBVJVXAImhKCwHzquyBEG2fTC +xebcQH4vFExKuri0b8zx8msdgH9jJzMSl5N0vFnZNLxkUbEKIAkZTLdzXm9kPStHo069KL9o7vHev1jZ +sdpqvlvlvM62mwC2IZSmfD1X0ah5dQiKcU0Pen9aO1k4ijBZjihooQOhyI534GImGvVE6c9Voz+HJ34K +WFogmBQMgrckhg8YQFQ6gdhJ++z9jPVRUeh/rXqPP6XMp+UBxV9CNR38X6HzFz3UoLZhUdNwTAcl/BtI +2vwWshZ0uaD2DDsutfH+DaWPOo92ULUI3QFQSwcIkSyGsxcBAABxAQAAUEsBAhQAFAAICAgAAAAhAJEs +hrMXAQAAcQEAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAA +AFYBAAAAAA== ------=_contents/Test/Init.test-2af59f18-bc2c-357f-892f-876c76df80ed-- ------=_contents/Test/defaultWB.ctx-01c684b6-6604-3b8f-b798-c5d71e8c473c Content-Type: q7/binary @@ -110,153 +112,172 @@ AAAAAFBLBQYAAAAAAQABAD8AAAD9AwAAAAA= Content-Type: q7/binary Entry-Name: contents/Test/WSWithTestThatUpdateProgress.ctx -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 ------=_contents/Test/WSWithTestThatUpdateProgress.ctx-d9ad0a5b-e983-322d-aef6-dd2dc659a830-- +------=_contents/Test/NoLaunches.ctx-85242a9c-46a4-3a88-aa9f-729a67146dc4 +Content-Type: q7/binary +Entry-Name: contents/Test/NoLaunches.ctx + +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAADFVVtz2jgUfvev0PC0 +O1v5BsY2U9oxty2EshAuZfKSkWXZVmpbjiwDzq9f2STk0vRhtzuzGhDo3HS+cz5JEEJwPVxuNkCQQmBU +EAAhVCaMp0jAHeEFZVkPGKqurGx4IFnAeA8cj0f1xDgJVMxS7d5WhiwT5CTgpspJDzAeqQQnNC+IynEu +hIrFSQ2IX0bKqJ7hHJUZjtcx4wKXYnzCJBdyo6IHHg0WbMAJ+p4zmgkpFbwkF81r5/e15Ek8TkhKMgEX +KJWZPasvinPK+AzgIr0gNyXyadADt4vBNxRtr2ZjcjUht0bhxPjPY1RX5brMBE3Jy2pZqq7elyihISVc +WaMDgRtaJ2BpRkd+QLfX6YDlV0WBzejfyvIUmNOmDNA0uqHjWBgGlmvAtoMJdAgyIemEDvY7QTcM0bnm +FwB19lqeIJop40zw6hHwy7CKdMkrTqNYgN/w78DUdfeDnA0X7OtmgjULxRFxAqYZBigLABOxxKQqXpKA +xq8AnBSEH2TnwSamBcg5izhKG2tpDBCWjMhRVtEsApJChFOUFEodNEWB1B8QTZCfEFBmAeGNjzRKC8DC +ZjE+8wYsSz+hGMwpJplcHuo+HGOK48sWlBTSQ+YQ0EJw6pc1xg9NJlL4vBESSixEXvQ0rebtEzElSbWE +RCjRSJ7Ag6mrsUgTpSlrE43xoqcAOd4pDgQ0o0JCA1jStN643ldj/CIPGC5rJjXKxy7/d+Pf0+aFb3Mg +1aQ5EEKSqIC2YbkoCDrQ6AQ2bHdDCyIfmxC1uwHBRogNh7zh3b2t+TRDvHpFux9CK8p2XIwGg5U39KKp +J8d05b0djXyeLg5+dp342fqhQNr0YTdm60q/fygeloWxrYzRYrX9frdQ1o61rPBpLozt1Wj/ZSN2w0r8 +8Vd1j+8WYsqP7m7l6fvR7pqOdqulYZ12Nx7elcnd7GrtUeFq4bzCvO20v6xd7WqmKyHyyGyv2/NosFof +8XRSCrFNmMxpkNWZSQQDL155E5mpRFGLYm/gc383Q/Xi5ljP0QWO8grc0LrzTUu/+WbpMtBkcLYbeN7Y +W9T/Z0+G/f4vdugnLZbePnGQtJA+2DZhO+zoEBHHhm7HtgxCXPl99145B/hph+v2fvx8ShNwOF+B/ZZ8 +MFqAZJgF8iLot7abCXRanz8pH08p7e2/TkH9e7E2a2vpLx8AKe+36vP6eFxZGjVHVfq0tE/KryD7oS7+ +8xMDLXlIbNP3oaO3fdj2UQDdsOtCO2yboW/jdojeUr8pzYsY79TnpfZ/KtE/BSmr9DdQSwcIoh9Vt8MD +AAAVCAAAUEsBAhQAFAAICAgAAAAhAKIfVbfDAwAAFQgAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50 +VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAAIEAAAAAA== +------=_contents/Test/NoLaunches.ctx-85242a9c-46a4-3a88-aa9f-729a67146dc4-- ------=_contents/Test/WBConsole.ctx-d03e65a3-682f-3276-8049-31c98ad4700e Content-Type: q7/binary Entry-Name: contents/Test/WBConsole.ctx @@ -279,13 +300,13 @@ AAAAUEsFBgAAAAABAAEAPwAAAJQCAAAAAA== Content-Type: q7/binary Entry-Name: .q7.content -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACVUl1rgzAUfe+vkLwv -2cfLEG1pyxhlFAa1c29D4tVmahKS6/TnL2mrlNE59pbknHuunnOiRd/UwRcYK5SMyR29JQFIrnIhy5i0 -WNw8ksV8FilTUuC10Bao4RqRcuxpp0xldcYhTIfTWkmEHoO+EeEoe+9l3SJpQ/cekwOiDhnruo6qpqRO -nL1vNwPlj13j+MDx40ceczw28kggs8ax010q8JCAxeSQ4V7nGcKrUaUBa0kg8ph8dLdlsnxOqyfYLTO1 -rh72b/ylJPNZEETc/5BEf3Y3bdQncLRnba9KTpADC1HDgNAzk7Cr8EYKpOinr+M7wFYv98lW8arV3oBf -iOnKOW5VDVOcCQemxjKBrgZTn5lDkbU1pqsJmVOEzg4NBgXYS5qqc9eRwTIL6Bfa0dEfSpfF4Mq4doBV -reFgnTwUl8rsLH2OjQ25HSNlY6YR+2+x57NvUEsHCD59sPlUAQAAMwMAAFBLAQIUABQACAgIAAAAIQA+ -fbD5VAEAADMDAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8A -AACTAQAAAAA= +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACVks1ugzAQhO95CuR7 +7f5cKgSJkqiqojZVpZDSW4XMAi5gW/ZS8vg1CaCoSql6M+y3s9qdCRaHuvK+wFihZEhu6DXxQHKVCpmH +pMHs6p4s5rNAmZwCr4S2QA3XiJTjgbbKlFYnHPx4eK2VRDigd6iFP8redrJukLS++x+SAlH7jLVtS1Wd +UyfO3rebAflj1tg+MF37kWOOYyNHPJnUjo53scAiAotRkeBepwnCq1G5AWuJJ9KQfLTXebR8jMsH2C0T +tS7v9m/8KSfzmecFvFtIYvd2X9qoT+Boe+1OlZxKrpiJCoYK7UnCLpY3UiDFrvty/UU9J43kBdhu+V+g +HWCjl/toq3jZ6AkwXjlbrKpgipk401RbItBlZWqXFLKkqTBeTcicfHY302BQgD3HVJW6IA13tYDdQDue +/YfSeXq4Mi5CYFVjuLukNpCdK7NeuveWDeYefWej8QH7b/rns29QSwcI4MOTOV8BAABYAwAAUEsBAhQA +FAAICAgAAAAhAODDkzlfAQAAWAMAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsF +BgAAAAABAAEAPwAAAJ4BAAAAAA== ------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf-- diff --git a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test index d274e3c92..7a2b23402 100644 --- a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test +++ b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _k6AFUGWjEeSAaoCk3UVcKg -Runtime-Version: 2.5.5.202403150112 -Save-Time: 3/20/24, 9:03 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/26/24, 9:46 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -17,9 +17,11 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "Test/Init" | get-menu Open | click get-editor Init | get-button Replay | click -//wait 180000 +// wait 180000 -try -command {get-view "Execution View" | get-label "1/1"} -times 1000 -delay 100 +try -command { + get-view "Execution View" | get-label "1/1" +} -times 10 -delay 20000 get-button "Record a Snippet" | click @@ -34,51 +36,52 @@ try -times 10 -delay 1000 -command { } with [get-window "Control Panel - selfQ7 [Recording]"] { - get-button "Switch to Recording Mode" | click - get-button "Switch to Assertion Mode" | click + get-button "Switch to Recording Mode" | click + get-button "Switch to Assertion Mode" | click } get-aut selfQ7 | eval { - get-view Console | get-text-viewer | click + with [get-view Console | get-text-viewer] { + click + try -times 10 -delay 1000 -command { + get-property text | contains "first message" | verify-true + } + } } -wait 2000 - with [get-window "Control Panel - selfQ7 [Asserting]"] { - with [get-window "Assertion and Verification"] { - with [get-tree] { - get-item "Text \\(Basic Properties\\)/text" | check - select "Text \\(Basic Properties\\)/text" - } - get-button Add | click - } + with [get-window "Assertion and Verification"] { + with [get-tree] { + get-item "Text \\(Basic Properties\\)/text" | check + select "Text \\(Basic Properties\\)/text" + } + get-button Add | click + } } -get-window "Control Panel - selfQ7 [Asserting]" | get-text-viewer | get-property text - | contains "first message" | verify-true +get-window "Control Panel - selfQ7 [Asserting]" | get-text-viewer | get-property text | contains "first message" + | verify-true -get-window "Control Panel - selfQ7 [Asserting]" | get-text-viewer | get-property text - | contains "second message" | verify-false +get-window "Control Panel - selfQ7 [Asserting]" | get-text-viewer | get-property text | contains "second message" + | verify-false get-aut selfQ7 | eval { get-view Console | get-text-viewer | mouse hover - wait 15000 + wait 11000 get-view Console | get-text-viewer | click } -wait 2000 - with [get-window "Control Panel - selfQ7 [Asserting]"] { - with [get-window "Assertion and Verification"] { - with [get-tree] { - get-item "Text \\(Basic Properties\\)/text" | check - select "Text \\(Basic Properties\\)/text" - } - get-button Add | click - } + with [get-window "Assertion and Verification"] { + with [get-tree] { + // get-item "Text \\(Basic Properties\\)/text" | get-property "columns[2]" | contains "second message" | verify-true + get-item "Text \\(Basic Properties\\)/text" | check + select "Text \\(Basic Properties\\)/text" + } + get-button Add | click + } } -get-window "Control Panel - selfQ7 [Asserting]" | get-text-viewer | get-property text - | contains "second message" | verify-true - +get-window "Control Panel - selfQ7 [Asserting]" | get-text-viewer | get-property text | contains "second message" + | verify-true ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 8aa9385571cc959e6791979bfb9a81b1e0675210 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 26 Mar 2024 23:43:07 +0400 Subject: [PATCH 50/91] Fix NPE --- .../src/org/eclipse/rcptt/internal/ui/Images.java | 1 + 1 file changed, 1 insertion(+) diff --git a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java index e9b589d88..67698e748 100644 --- a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java +++ b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/internal/ui/Images.java @@ -199,6 +199,7 @@ public synchronized static Image getImage(String key) { if (image == null || image.isDisposed()) { registry.remove(key); registry.put(key, getImageDescriptor(key)); + image = registry.get(key); } return image; } From e4cafd90575228cadbdca97d346563bb864b3cbd Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 27 Mar 2024 15:45:07 +0400 Subject: [PATCH 51/91] Stabilize test --- .../TestNumsAreDisplayedInExecutionView.test | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test b/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test index 0fc982b76..40d4755fd 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test @@ -1,14 +1,13 @@ --- RCPTT testcase --- Format-Version: 1.0 -Q7-vendor: www.xored.com/q7 Contexts: _ymiyse5IEeCU6db9MgIBkA,_bbpo0a2vEeCqpoE1MJ1fFQ,_18rr8K25EeCZfrGRg7GXDg Element-Name: TestNumsAreDisplayedInExecutionView Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _Jr67MPMdEeCE19s6EOk3LA -Q7-Runtime-Version: 1.5.0.201406131029 -Save-Time: 6/13/14 7:04 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/27/24, 3:40 PM Tags: selfAUT, Runtime, ExecutionView Testcase-Type: ecl @@ -39,10 +38,12 @@ with [get-view "Test Explorer" | get-tree] { select "q7project/simpleTest1" "q7project/simpleTest2" "q7project/simpleTest3" get-menu "Run As/1 Test Cases" | click } -wait 20000 + with [get-view "Execution View"] { get-label "Runs:" | get-property caption | equals "Runs:" | verify-true - get-label "3/3" | get-property caption | equals "3/3" | verify-true + try -times 10 -delay 1000 -command { + get-label "3/3" | get-property caption | equals "3/3" | verify-true + } get-label "Failures:" | get-property caption | equals "Failures:" | verify-true get-label 1 | get-property caption | equals 1 | verify-true get-label "Stops:" | get-property caption | equals "Stops:" | verify-true From 21ad1d31d50b27052b299457c92f9906140bf2b6 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 27 Mar 2024 15:49:56 +0400 Subject: [PATCH 52/91] Fix resource leak --- .../rcptt/ui/resources/viewers/WorkspaceContextEditor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/rcp/contexts/org.eclipse.rcptt.ctx.resources.ui/src/org/eclipse/rcptt/ui/resources/viewers/WorkspaceContextEditor.java b/rcp/contexts/org.eclipse.rcptt.ctx.resources.ui/src/org/eclipse/rcptt/ui/resources/viewers/WorkspaceContextEditor.java index ba8b0ddef..f43989cbd 100644 --- a/rcp/contexts/org.eclipse.rcptt.ctx.resources.ui/src/org/eclipse/rcptt/ui/resources/viewers/WorkspaceContextEditor.java +++ b/rcp/contexts/org.eclipse.rcptt.ctx.resources.ui/src/org/eclipse/rcptt/ui/resources/viewers/WorkspaceContextEditor.java @@ -437,6 +437,7 @@ private void createButton(Composite parent, FormToolkit toolkit, .createButton(parent, action.getText(), SWT.PUSH); button.setData(action); Image image = action.getImageDescriptor().createImage(); + button.addDisposeListener(event -> image.dispose()); button.setImage(image); button.addSelectionListener(new SelectionAdapter() { From cd49404eba5a31f489c23d0cf8819a2a110e5878 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 28 Mar 2024 10:59:58 +0400 Subject: [PATCH 53/91] Stabilize tests --- .../executionView/TestNumsAreDisplayedInExecutionView.test | 4 ++-- .../verifications/Time/TimeVerificationAfterRestart.test | 6 +++--- .../selfAUTTests/RefreshControlStateInAssertionMode.test | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test b/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test index 40d4755fd..6e1f84127 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test @@ -7,7 +7,7 @@ Element-Version: 3.0 External-Reference: Id: _Jr67MPMdEeCE19s6EOk3LA Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/27/24, 3:40 PM +Save-Time: 3/28/24, 10:52 AM Tags: selfAUT, Runtime, ExecutionView Testcase-Type: ecl @@ -41,7 +41,7 @@ with [get-view "Test Explorer" | get-tree] { with [get-view "Execution View"] { get-label "Runs:" | get-property caption | equals "Runs:" | verify-true - try -times 10 -delay 1000 -command { + try -times 30 -delay 1000 -command { get-label "3/3" | get-property caption | equals "3/3" | verify-true } get-label "Failures:" | get-property caption | equals "Failures:" | verify-true diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test index 94f103aa7..717cdfc74 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _Mj28oB0wEeSIvfJuGlG47A -Runtime-Version: 1.5.0.201407101239 -Save-Time: 8/6/14 2:20 PM +Runtime-Version: 2.5.5.202403210919 +Save-Time: 3/28/24, 10:51 AM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -16,7 +16,7 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "MyProject/TC" | get-menu "Run As/1 Test Cases" | click with [get-view "Execution View"] { - try -times 120 -delay 1 -command { + try -times 10 -delay 1000 -command { get-label --after [get-label "Runs:"] | get-property caption | equals "1/1" | verify-true } diff --git a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test index 7a2b23402..6f435c40b 100644 --- a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test +++ b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test @@ -7,7 +7,7 @@ Element-Version: 3.0 External-Reference: Id: _k6AFUGWjEeSAaoCk3UVcKg Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/26/24, 9:46 PM +Save-Time: 3/28/24, 10:59 AM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -25,7 +25,7 @@ try -command { get-button "Record a Snippet" | click -try -times 10 -delay 1000 -command { +try -times 10 -delay 20000 -command { get-aut selfQ7 | eval { get-view "Test Explorer" | get-tree | select "Test/Waiting" | get-menu Open | click get-view Console | get-button "Clear Console" | click From 712ae64446883cb7b3efaa8f0826de3cdb8a7e7b Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 29 Mar 2024 00:26:58 +0400 Subject: [PATCH 54/91] Stabilize tests --- .../TestNumsAreDisplayedInExecutionView.test | 6 +- .../q7commands/TakeScreenshot.test | 75 ++++++++++--------- ...tion_NEGATIVE Case Denied Entry_Error.test | 29 +++---- 3 files changed, 58 insertions(+), 52 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test b/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test index 6e1f84127..aa12589ac 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/executionView/TestNumsAreDisplayedInExecutionView.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _Jr67MPMdEeCE19s6EOk3LA -Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/28/24, 10:52 AM +Runtime-Version: 2.5.5.202403280142 +Save-Time: 3/29/24, 12:08 AM Tags: selfAUT, Runtime, ExecutionView Testcase-Type: ecl @@ -41,7 +41,7 @@ with [get-view "Test Explorer" | get-tree] { with [get-view "Execution View"] { get-label "Runs:" | get-property caption | equals "Runs:" | verify-true - try -times 30 -delay 1000 -command { + try -times 10 -delay 10000 -command { get-label "3/3" | get-property caption | equals "3/3" | verify-true } get-label "Failures:" | get-property caption | equals "Failures:" | verify-true diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/TakeScreenshot.test b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/TakeScreenshot.test index 603732ef1..398ae67d7 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/TakeScreenshot.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/q7commands/TakeScreenshot.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _Fd0B8IGSEeKRQ-O0Mh9igg -Runtime-Version: 2.5.2.202204240826 -Save-Time: 4/26/22, 5:02 PM +Runtime-Version: 2.5.5.202403280142 +Save-Time: 3/29/24, 12:25 AM Tags: selfAUT, q7commands Testcase-Type: ecl @@ -37,53 +37,58 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "q7project/test" | double-click with [get-editor test] { - with [get-section Script | get-text-viewer] { - type-text "take-s" - show-content-assist - type-text creenshot - key-type Enter - key-type "M1+s" - } - get-button Replay | click + with [get-section Script | get-text-viewer] { + type-text "take-s" + show-content-assist + type-text creenshot + key-type Enter + key-type "M1+s" + } + get-button Replay | click +} + +with [get-view "Execution View" | get-label -after [get-label "Runs:"]] { + try -times 10 -delay 1000 -command { + get-property caption | equals "1/1" | verify-true + } } get-view "Execution View" | get-button "Details..." | click with [get-window "Execution details" | get-tab-folder] { - get-property tabCount | equals 2 | verify-true - get-property activePage | equals Screenshots | verify-true + get-property tabCount | equals 2 | verify-true + get-property activePage | equals Screenshots | verify-true } get-window "Execution details" | get-button OK | click with [get-editor test] { - with [get-section Script | get-text-viewer] { - set-caret-pos 2 1 - type-text "take-screenshot" - key-type Enter - key-type "M1+s" - } - get-button Replay | click + with [get-section Script | get-text-viewer] { + set-caret-pos 2 1 + type-text "take-screenshot" + key-type Enter + key-type "M1+s" + } + get-button Replay | click } with [get-view "Execution View"] { - get-label "1/1" | get-property caption | equals "1/1" | verify-true - get-label 0 | get-property caption | equals 0 | verify-true + get-label "1/1" | get-property caption | equals "1/1" | verify-true + get-label 0 | get-property caption | equals 0 | verify-true } get-view "Execution View" | get-button "Details..." | click with [get-window "Execution details"] { - with [get-tab-folder] { - get-property activePage | equals Screenshots | verify-true - get-property tabCount | equals 2 | verify-true - } - get-label "Screenshot 1 from 5" | get-property caption | equals "Screenshot 1 from 5" | verify-true + with [get-tab-folder] { + get-property activePage | equals Screenshots | verify-true + get-property tabCount | equals 2 | verify-true + } + get-label "Screenshot 1 from 5" | get-property caption | equals "Screenshot 1 from 5" | verify-true } -with [get-window "Execution details" | get-button Next]{ - - click - click - click - click +with [get-window "Execution details" | get-button Next] { + click + click + click + click } with [get-window "Execution details"] { - get-label "Screenshot 5 from 5" | get-property caption | equals "Screenshot 5 from 5" | verify-true - get-button Next | get-property enablement | equals false | verify-true - get-button Previous | get-property enablement | equals true | verify-true + get-label "Screenshot 5 from 5" | get-property caption | equals "Screenshot 5 from 5" | verify-true + get-button Next | get-property enablement | equals false | verify-true + get-button Previous | get-property enablement | equals true | verify-true } get-window "Execution details" | get-button OK | click ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test index 3bc83c5a9..7c983574d 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _Iqh_IH0VEeO5CYdzFmGe7Q -Runtime-Version: 2.5.2.202204181530 -Save-Time: 4/19/22, 6:18 PM +Runtime-Version: 2.5.5.202403280142 +Save-Time: 3/29/24, 12:19 AM Tags: verification/Error Log, selfAUT Testcase-Type: ecl @@ -32,24 +32,25 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "MyProject/ErrorLogVerification" | double-click get-editor ErrorLogVerification | get-section Deny | get-button "Add..." | click with [get-editor ErrorLogVerification | get-section Deny | get-table] { - select ".\\*" -column "Plugin Pattern" - get-cell 0 2 | uncheck + select ".\\*" -column "Plugin Pattern" + get-cell 0 2 | uncheck } with [get-editor ErrorLogVerification | get-section Deny | get-table] { - select ".\\*" -column "Plugin Pattern" - get-cell 0 1 | uncheck + select ".\\*" -column "Plugin Pattern" + get-cell -row 0 -column 1 | uncheck + get-cell -row 0 -column 2 | uncheck } with [get-editor ErrorLogVerification | get-section Allow | get-table] { - select "org.eclipse.equinox" -column "Plugin Pattern" | get-menu Remove | click - key-type "M1+s" + select "org.eclipse.equinox" -column "Plugin Pattern" | get-menu Remove | click + key-type "M1+s" } get-view "Test Explorer" | get-tree | select "MyProject/TestCase" | double-click get-editor TestCase | get-button Replay | click -get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text - | equals ".*\n" - + "Log entry\n" - + "Status ERROR: org.eclipse.equinox code=0 Error Entry.*\n" - + "is denied by predicate\n" - + "ERROR" | verify-true +try -times 10 -delay 1000 -command { + get-view "Execution View" | get-label -after [get-label "Runs:"] | get-property caption | equals "1/1" | verify-true +} + +get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals ".*\nLog entry\nSt" + + "atus ERROR: org.eclipse.equinox code=0 Error Entry.*\nis denied by predicate\nERROR" | verify-true ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 9af63bb3d9dd32bb87f664aa09e4a9daeeccc221 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 29 Mar 2024 10:44:33 +0400 Subject: [PATCH 55/91] Deploy cocoa.aarch64 product --- releng/Jenkinsfile.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releng/Jenkinsfile.groovy b/releng/Jenkinsfile.groovy index 7615d8381..81848ab84 100644 --- a/releng/Jenkinsfile.groovy +++ b/releng/Jenkinsfile.groovy @@ -329,8 +329,8 @@ $SSH_DEPLOY_CONTAINER_VOLUMES } this.script.sh "$SSH_CLIENT mkdir $storageFolder/ide" - for(platform in ["linux.gtk", "macosx.cocoa", "win32.win32"]) { - this.script.sh "scp -r $PRODUCTS_DIR/org.eclipse.rcptt.platform.product-${platform}.x86_64.zip $CREDENTIAL:$storageFolder/ide/rcptt.ide-${version}${qualifiedDecoration}-${platform}.x86_64.zip" + for(platform in ["linux.gtk.x86_64", "macosx.cocoa.x86_64", "macosx.cocoa.aarch64", "win32.win32.x86_64"]) { + this.script.sh "scp -r $PRODUCTS_DIR/org.eclipse.rcptt.platform.product-${platform}.zip $CREDENTIAL:$storageFolder/ide/rcptt.ide-${version}${qualifiedDecoration}-${platform}.zip" } if(copy_full) { From 1155e16cb3cb8315c44e8c438812668a6534c6f4 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Fri, 29 Mar 2024 23:32:39 +0400 Subject: [PATCH 56/91] Support more Exception constructors --- .../org.eclipse.rcptt.ecl.core/.classpath | 4 +- .../.settings/org.eclipse.jdt.core.prefs | 8 + .../META-INF/MANIFEST.MF | 2 +- .../internal/core/ProcessStatusConverter.java | 159 +++++++++++++----- 4 files changed, 131 insertions(+), 42 deletions(-) create mode 100644 ecl/plugins/org.eclipse.rcptt.ecl.core/.settings/org.eclipse.jdt.core.prefs diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/.classpath b/ecl/plugins/org.eclipse.rcptt.ecl.core/.classpath index 121e527a9..eca7bdba8 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/.classpath +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/.classpath @@ -1,7 +1,7 @@ - - + + diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/.settings/org.eclipse.jdt.core.prefs b/ecl/plugins/org.eclipse.rcptt.ecl.core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..9f6ece88b --- /dev/null +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF b/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF index 239600bc1..e5c91d19b 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF @@ -7,7 +7,7 @@ Bundle-Version: 2.5.5.qualifier Bundle-ClassPath: . Bundle-Vendor: %providerName Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Export-Package: org.eclipse.rcptt.ecl.core, org.eclipse.rcptt.ecl.core.impl, org.eclipse.rcptt.ecl.core.util, diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java index 39f79d15a..2a2e491d4 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java @@ -10,10 +10,14 @@ *******************************************************************************/ package org.eclipse.rcptt.ecl.internal.core; +import java.io.IOException; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; +import java.util.List; import java.util.Objects; +import java.util.Optional; +import java.util.function.Consumer; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; @@ -65,57 +69,134 @@ public IStatus fromEObject(ProcessStatus ps) { ps.getMessage(), th); } } + + private static Optional constructWithMessageAndCause(Class clazz, EclException exception, Consumer suppress) { + try { + Constructor constructor = clazz.getConstructor( + String.class, Throwable.class); + Throwable newInstance = (Throwable) constructor + .newInstance(exception.getMessage(), getThrowable(exception.getCause())); + return Optional.of(newInstance); + } catch (NoSuchMethodException e) { + } catch (InstantiationException| IllegalAccessException | IllegalArgumentException |InvocationTargetException e) { + suppress.accept(e); + } + return Optional.empty(); + } + + private static Optional constructWithStatus(Class clazz, EclException exception, Consumer suppress) { + try { + if (exception.getStatus() != null) { + Constructor constructor = clazz.getConstructor(IStatus.class); + Throwable newInstance = (Throwable) constructor + .newInstance(toIStatus(exception.getStatus())); + return Optional.of(newInstance); + } + } catch (NoSuchMethodException e) { + } catch (InstantiationException| IllegalAccessException | IllegalArgumentException |InvocationTargetException e) { + suppress.accept(e); + } + return Optional.empty(); + } + + private static Optional constructWithMessage(Class clazz, EclException exception, Consumer suppress) { + try { + Constructor constructor = clazz.getConstructor(String.class); + Throwable newInstance = (Throwable) constructor + .newInstance(exception.getMessage()); + return Optional.of(newInstance); + } catch (NullPointerException | NoSuchMethodException e) { + } catch (InstantiationException| IllegalAccessException | IllegalArgumentException |InvocationTargetException e) { + suppress.accept(e); + } + return Optional.empty(); + } + + private static Optional constructWithCause(Class clazz, EclException exception, Consumer suppress) { + try { + Constructor constructor = clazz.getConstructor(Throwable.class); + Throwable newInstance = (Throwable) constructor + .newInstance(getThrowable(exception.getCause())); + return Optional.of(newInstance); + } catch (NullPointerException | NoSuchMethodException e) { + } catch (InstantiationException| IllegalAccessException | IllegalArgumentException |InvocationTargetException e) { + suppress.accept(e); + } + return Optional.empty(); + } + + + private static Optional constructWithoutArguments(Class clazz, EclException exception, Consumer suppress) { + try { + Constructor constructor = clazz.getConstructor(); + Throwable newInstance = (Throwable) constructor.newInstance(); + return Optional.of(newInstance); + } catch (NoSuchMethodException e) { + } catch (InstantiationException| IllegalAccessException | IllegalArgumentException |InvocationTargetException e) { + suppress.accept(e); + } + return Optional.empty(); + } + + + public static Throwable getThrowable(EclException exception) { if (exception == null) return null; - Throwable th = null; + List suppressed = new ArrayList<>(); + // Try to restore stored exception. try { - // Try to restore stored exception. - th = exception.getThrowable(); - if (!Objects.equals(th.getClass().getName(), exception.getClassName())) { - throw new IllegalStateException(String.format("Bad class, expected: %s, actual: %s ", exception.getClassName(), th.getClass().getName())); - } - } catch (Throwable ee) { - // Failed to restore exception, try to construct new one - try { - String className = exception.getClassName(); - Class forName = Class.forName(className); - try { - Constructor constructor = forName.getConstructor( - String.class, Throwable.class); - Throwable newInstance = (Throwable) constructor - .newInstance(exception.getMessage(), getThrowable(exception.getCause())); - th = newInstance; - } catch (NoSuchMethodException e) { - if (exception.getStatus() == null) - throw e; - Constructor constructor = forName.getConstructor(IStatus.class); - Throwable newInstance = (Throwable) constructor - .newInstance(toIStatus(exception.getStatus())); - th = newInstance; - th.addSuppressed(e); - } - th.addSuppressed(ee); - } catch (Exception eee) { - if (exception.getStatus() != null) { - th = new CoreException(toIStatus(exception.getStatus())); - } else { - th = new Exception(exception.getMessage(), getThrowable(exception.getCause())); - } - th.addSuppressed(eee); + Throwable th = exception.getThrowable(); + if (Objects.equals(th.getClass().getName(), exception.getClassName())) { + return th; } + } catch (RuntimeException e) { + suppressed.add(e); } - if (th != null) { - copyAttributesFromEObject(exception, th); + + // Failed to restore exception, try to construct new one + + Class clazz; + try { + String className = exception.getClassName(); + clazz = Class.forName(className); + } catch (ClassNotFoundException e) { + suppressed.add(e); + clazz = IOException.class; + } + + Optional result; + + result = constructWithMessageAndCause(clazz, exception, suppressed::add); + + if (!result.isPresent()) { + result = constructWithStatus(clazz, exception, suppressed::add); + } + + if (!result.isPresent()) { + result = constructWithMessage(clazz, exception, suppressed::add); } - return th; + + if (!result.isPresent()) { + result = constructWithCause(clazz, exception, suppressed::add); + } + + if (!result.isPresent()) { + result = constructWithoutArguments(clazz, exception, suppressed::add); + } + + Throwable finalResult = result.orElse(new IOException(exception.getClassName() + ": " + exception.getMessage())); + copyAttributesFromEObject(exception, finalResult); + suppressed.forEach(finalResult::addSuppressed); + return finalResult; } private static void copyAttributesFromEObject(EclException exception, Throwable newInstance) { EList list = exception.getStackTrace(); - if (list.size() > 0) { - newInstance.setStackTrace(constructStack(list)); + newInstance.setStackTrace(constructStack(list)); + if (newInstance.getCause() == null && exception.getCause() != null) { + newInstance.initCause(getThrowable(exception.getCause())); } } From c677dc63371db7b449166814e18c1adcbaaff964 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 30 Mar 2024 00:17:20 +0400 Subject: [PATCH 57/91] Fail fast for communication problems --- .../org/eclipse/rcptt/internal/launching/Executable.java | 9 +++++++-- .../internal/launching/PrepareExecutionWrapper.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/Executable.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/Executable.java index c28f11720..de96c47fc 100644 --- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/Executable.java +++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/Executable.java @@ -19,6 +19,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.rcptt.core.ecl.core.model.ExecutionPhase; +import org.eclipse.rcptt.ecl.runtime.IProcess; import org.eclipse.rcptt.internal.core.RcpttPlugin; import org.eclipse.rcptt.internal.launching.aut.ConsoleOutputListener; import org.eclipse.rcptt.launching.IExecutable; @@ -148,7 +149,7 @@ final void executeAndRememberResult() throws InterruptedException { localResult = RcpttPlugin.createStatus("Execution was unexpectedly terminated", e); throw e; } catch (Throwable e) { - localResult = Q7LaunchingPlugin.createStatus(e); + localResult = internalFailure(e); } finally { time = System.currentTimeMillis() - startTime; try { @@ -156,7 +157,7 @@ final void executeAndRememberResult() throws InterruptedException { try { localResult = postExecute(localResult); } catch (Throwable e) { - localResult = Q7LaunchingPlugin.createStatus(e); + localResult = internalFailure(e); } } finally { setResult(localResult); @@ -165,6 +166,10 @@ final void executeAndRememberResult() throws InterruptedException { consoleListener.stopLogging(); } } + + protected IStatus internalFailure(Throwable e) { + return new Status(IStatus.ERROR, getClass(), IProcess.INTERNAL_AUT_FAILURE, "Internal failure", e); + } public void cancel(IStatus status) { setResult(status); diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/PrepareExecutionWrapper.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/PrepareExecutionWrapper.java index c592ca06b..cc3560228 100644 --- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/PrepareExecutionWrapper.java +++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/PrepareExecutionWrapper.java @@ -299,7 +299,7 @@ public IStatus postExecute(IStatus status) { return Status.CANCEL_STATUS; } catch (Throwable e) { RcpttPlugin.log(e); - IStatus rv = RcpttPlugin.createStatus(e); + IStatus rv = internalFailure(e); resultReport = generateReport(rv); return rv; } finally { From 9669e1f4cd99017d9bce8b86ca6932a8ad03bb20 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 30 Mar 2024 14:03:11 +0400 Subject: [PATCH 58/91] Prevent log entry duplication #44 --- .../Recording/ColumnClickByIndex.test | 21 ++++++++++--------- .../Recording/ColumnTitleClick.test | 6 +++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/rcpttTests/platform_tests/Recording/ColumnClickByIndex.test b/rcpttTests/platform_tests/Recording/ColumnClickByIndex.test index aab890cdb..3776ffa49 100644 --- a/rcpttTests/platform_tests/Recording/ColumnClickByIndex.test +++ b/rcpttTests/platform_tests/Recording/ColumnClickByIndex.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-872 Id: _LaI78Ku2EeGxwqO33ZLSaw -Runtime-Version: 2.5.5.202302010428 -Save-Time: 2/3/23, 2:53 PM +Runtime-Version: 2.5.5.202403300730 +Save-Time: 3/30/24, 2:01 PM Tags: Recording, Sorting Testcase-Type: ecl @@ -40,14 +40,15 @@ It is possible to sort entries ascending/descending by clicking on column by ind Content-Type: text/ecl Entry-Name: .content -try -times 3 -command { - clear-log-view - log string1 - log string2 - log string3 - // workaround occasional entry duplication https://bugs.eclipse.org/bugs/show_bug.cgi?id=429372 - get-view "Error Log" | get-tree | get-items | length | equals 3 | verify-true -} +clear-log-view +log string1 +// workaround occasional entry duplication +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=429372 +// https://github.com/eclipse/org.eclipse.rcptt/issues/44 +get-view "Error Log" | get-tree | get-items | length | equals 1 | verify-true // Forces synchronization (waiting for file to load) +log string2 +log string3 +get-view "Error Log" | get-tree | get-items | length | equals 3 | verify-true try -times 2 -command { with [get-view "Error Log" | get-tree] { diff --git a/rcpttTests/platform_tests/Recording/ColumnTitleClick.test b/rcpttTests/platform_tests/Recording/ColumnTitleClick.test index a37f50c6e..dee3fbb55 100644 --- a/rcpttTests/platform_tests/Recording/ColumnTitleClick.test +++ b/rcpttTests/platform_tests/Recording/ColumnTitleClick.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-872 Id: __op1cKu2EeGxwqO33ZLSaw -Runtime-Version: 2.5.5.202403150112 -Save-Time: 3/18/24, 8:32 PM +Runtime-Version: 2.5.5.202403300730 +Save-Time: 3/30/24, 2:00 PM Tags: Sorting Testcase-Type: ecl @@ -41,7 +41,7 @@ Content-Type: text/ecl Entry-Name: .content clear-log-view -log string1 // Reloads the log file asynchronously +log string1 // Reloads the log file asynchronously https://github.com/eclipse/org.eclipse.rcptt/issues/44 get-view "Error Log" | get-tree | get-items | length | equals 1 | verify-true // Forces synchronization (waiting for file to load) log string2 From 3bba4e0347019898c22d12d95a544ab6ab5a26ee Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 30 Mar 2024 19:58:53 +0400 Subject: [PATCH 59/91] Fix "Invalid property category path" Invalid property category path: org.eclipse.rcptt.ui.views.IntegrationsPropertiesPage (bundle: org.eclipse.rcptt.zephyr.ui, propertyPage: org.eclipse.rcptt.zephyr.ZephyrPropertiesPage) Removed the category attribute from property page declaration --- modules/zephyr/plugins/org.eclipse.rcptt.zephyr.ui/plugin.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/zephyr/plugins/org.eclipse.rcptt.zephyr.ui/plugin.xml b/modules/zephyr/plugins/org.eclipse.rcptt.zephyr.ui/plugin.xml index 46239ddb5..d5b75f55c 100644 --- a/modules/zephyr/plugins/org.eclipse.rcptt.zephyr.ui/plugin.xml +++ b/modules/zephyr/plugins/org.eclipse.rcptt.zephyr.ui/plugin.xml @@ -25,7 +25,6 @@ From e1423ffe8d7c617484c5c6c00cf13fe81763dc31 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 30 Mar 2024 20:06:07 +0400 Subject: [PATCH 60/91] Fix "IOException: No preference value available" Oomph logs a warning: IOException: No preference value available for preference:/instance/org.eclipse.oomph.workingsets/working.set.group --- rcpttTests/contexts/CleanPreferences.ctx | 26 +++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/rcpttTests/contexts/CleanPreferences.ctx b/rcpttTests/contexts/CleanPreferences.ctx index bcd2f0502..7be985266 100644 --- a/rcpttTests/contexts/CleanPreferences.ctx +++ b/rcpttTests/contexts/CleanPreferences.ctx @@ -5,8 +5,8 @@ Element-Name: ClearPreferences Element-Type: context Element-Version: 2.0 Id: _Ns1HMM1SEeCKjp0mPLHiEg -Runtime-Version: 2.5.0.qualifier -Save-Time: 10/17/19 6:05 PM +Runtime-Version: 2.5.5.202403300730 +Save-Time: 3/30/24, 8:01 PM ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa Content-Type: text/plain @@ -26,14 +26,16 @@ Contributors: Content-Type: q7/binary Entry-Name: .q7.content -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACtk99v2jAQx9/5Kyy/ -16HsZYoIFQqsQ6IlG0hUe4k85yDWEjvYF37sr9+FQsq2Vu2mvkRO7nP3/fru0r/ZlwXbgvPamohfiy5n -YJTNtFlHvMbV1Ud+M+j0rVsLUIWuPAinKkShcC8qBytwxIMPk6dzbA3CHtm+1GFbuteUJjHjQ/oe8Ryx -CoNgt9sJW64FCQQPd5MW8b8juw9HotftXhM2nascSnmljUdJiuesV122Nc9UU/RIBkQGFyRnRpYQ8dhW -B2ZXLC5AuuQyrrOIp5vbjZkko+kYys/Zt/h22hv+3HzhTBFukkthdDXwQYexvmraY/Ak0N6hiTXRXBeZ -PwUvL1RrobMzRmAmUTLqU4iH6g/0+QnN0dFUG1MjSuXsBxwiPn6YLNLk6+wuWaSz+zSezubjdDqcL9Ll -5H40W3K2lUVN9Vey8MCDk8vg0eYbPBu51WuJ1r2387/TSA32VWEdOLHSBYIbKtRbibSA7T3Cl/wJB97W -jvROyV7QZBz6pcZ8ZPGZ7aJ0T2uh8k/HhPBf26PI6pPsezeI3qh2Lgq9znEHzVOAkd8LyF6fKp0f15R+ -/uB//v5B5xdQSwcI7enL7bkBAABcBAAAUEsBAhQAFAAICAgAAAAhAO3py+25AQAAXAQAAAgACQAAAAAA -AAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAPgBAAAAAA== +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACtVF2PojAUffdXkG7i +m0XdlwmKxqizY9YPsrhx3ggLFboDlG0vwvz7uYgi7rjZL1/IpT33nNPb5gzHRRxpByYVF4lJerRLNJZ4 +wudJYJIM9p0HMh61hkIGlHkRTxWj0ksBqAcFTSXbM4l4pgzrUk9FAqwArYi5UVP3S2oUS5SB6yYJAVJD +1/M8pyIOKAroz6tFDVHXkPzjEdHvdnsIW9peyGK3wxMFLiqeu37rsuY8o0rSI1JHpN5AEi1xY2aSacRc +aTXXuW8SZ616T6tVz56z6efvaTe2lk98HhDNQ3hiNQVBZoyMWpo29MqxJHAirr2Xe+VuyCNfnTabB8k4 +5f4ZhkDfBVfD+Rjwmv4EvX0zNki8zdLUDFuJ9sJeTTJ/Xmwd68tmZW2dzdqZLjf23FlO7K2zW6xnmx3R +Dm6UIf/ejRQj+smlXtn8A8+Je+CBC0Le2/n7NlRjRRoJySTd8wiYnHjADy7gw6vPYfzKH5VMiUyi3qlZ +UbwZCWrHIZwJuPGqsF3hs/DCx2OD8bfj8dDqRfbeA8I/5A5pxIMQclZ+KUvcbxHz/+9WhYjTkOZCvqCo +YnB35ydqHC7QQIosrf22IxhcRVX7RyZggHlVFZfQqv6/bh87D1U5HrU/FJNBydCwbuyq2mbwqVS6Cquq +sV+TX2KrWridXVfghtT7pmb6HIeqN+B6fSi9cn7rmrCu0gSzWf+XcB613gBQSwcIvx4HLBkCAAD7BQAA +UEsBAhQAFAAICAgAAAAhAL8eBywZAgAA+wUAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEA +AAAAUEsFBgAAAAABAAEAPwAAAFgCAAAAAA== ------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf-- From 945e8f99da820e7bc3f33d7a45d26b8d2e4d9bff Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 30 Mar 2024 21:33:52 +0400 Subject: [PATCH 61/91] Fix exception in GeneratedConstructorAccessor Do not attempt to persist Throwable. We have a POJO mirror as EclException instead. --- ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore | 3 ++- .../src/org/eclipse/rcptt/ecl/core/EclException.java | 2 +- .../src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java | 2 +- .../rcptt/ecl/internal/core/ProcessStatusConverter.java | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore b/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore index 4bacdaa8f..d0dc6e3f8 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore @@ -150,7 +150,8 @@ - + Throwable' attribute. * @see #setThrowable(Throwable) * @see org.eclipse.rcptt.ecl.core.CorePackage#getEclException_Throwable() - * @model dataType="org.eclipse.rcptt.ecl.core.Throwable" + * @model dataType="org.eclipse.rcptt.ecl.core.Throwable" transient="true" * @generated */ Throwable getThrowable(); diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java index 706d447ea..7c2f50b3f 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java @@ -2034,7 +2034,7 @@ public void initializePackageContents() { initEAttribute(getEclException_ClassName(), theEcorePackage.getEString(), "className", null, 0, 1, EclException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getEclException_Message(), theEcorePackage.getEString(), "message", null, 0, 1, EclException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getEclException_StackTrace(), this.getEclStackTraceEntry(), null, "stackTrace", null, 0, -1, EclException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getEclException_Throwable(), this.getThrowable(), "throwable", null, 0, 1, EclException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEclException_Throwable(), this.getThrowable(), "throwable", null, 0, 1, EclException.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getEclException_Cause(), this.getEclException(), null, "cause", null, 0, 1, EclException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getEclException_Status(), this.getProcessStatus(), null, "status", null, 0, 1, EclException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java index 2a2e491d4..5c9dc596f 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java @@ -148,7 +148,7 @@ public static Throwable getThrowable(EclException exception) { // Try to restore stored exception. try { Throwable th = exception.getThrowable(); - if (Objects.equals(th.getClass().getName(), exception.getClassName())) { + if (th != null && Objects.equals(th.getClass().getName(), exception.getClassName())) { return th; } } catch (RuntimeException e) { From 8a2da8ce4e87a0298bce6c386bf0bbbf1a387529 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sat, 30 Mar 2024 20:06:07 +0400 Subject: [PATCH 62/91] Fix "IOException: No preference value available" Oomph logs a warning: IOException: No preference value available for preference:/instance/org.eclipse.oomph.workingsets/working.set.group on application of any Preference context (even the one, where this value is set). It detects a momentary absence of a required value in a listener. The fix is not to clear values, that are present in a Preference Context. --- rcpttTests/contexts/CleanPreferences.ctx | 26 +-- .../.classpath | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 8 + .../META-INF/MANIFEST.MF | 2 +- .../impl/PreferencesContextProcessor.java | 154 ++++++------------ 5 files changed, 74 insertions(+), 118 deletions(-) create mode 100644 runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.settings/org.eclipse.jdt.core.prefs diff --git a/rcpttTests/contexts/CleanPreferences.ctx b/rcpttTests/contexts/CleanPreferences.ctx index bcd2f0502..7be985266 100644 --- a/rcpttTests/contexts/CleanPreferences.ctx +++ b/rcpttTests/contexts/CleanPreferences.ctx @@ -5,8 +5,8 @@ Element-Name: ClearPreferences Element-Type: context Element-Version: 2.0 Id: _Ns1HMM1SEeCKjp0mPLHiEg -Runtime-Version: 2.5.0.qualifier -Save-Time: 10/17/19 6:05 PM +Runtime-Version: 2.5.5.202403300730 +Save-Time: 3/30/24, 8:01 PM ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa Content-Type: text/plain @@ -26,14 +26,16 @@ Contributors: Content-Type: q7/binary Entry-Name: .q7.content -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACtk99v2jAQx9/5Kyy/ -16HsZYoIFQqsQ6IlG0hUe4k85yDWEjvYF37sr9+FQsq2Vu2mvkRO7nP3/fru0r/ZlwXbgvPamohfiy5n -YJTNtFlHvMbV1Ud+M+j0rVsLUIWuPAinKkShcC8qBytwxIMPk6dzbA3CHtm+1GFbuteUJjHjQ/oe8Ryx -CoNgt9sJW64FCQQPd5MW8b8juw9HotftXhM2nascSnmljUdJiuesV122Nc9UU/RIBkQGFyRnRpYQ8dhW -B2ZXLC5AuuQyrrOIp5vbjZkko+kYys/Zt/h22hv+3HzhTBFukkthdDXwQYexvmraY/Ak0N6hiTXRXBeZ -PwUvL1RrobMzRmAmUTLqU4iH6g/0+QnN0dFUG1MjSuXsBxwiPn6YLNLk6+wuWaSz+zSezubjdDqcL9Ll -5H40W3K2lUVN9Vey8MCDk8vg0eYbPBu51WuJ1r2387/TSA32VWEdOLHSBYIbKtRbibSA7T3Cl/wJB97W -jvROyV7QZBz6pcZ8ZPGZ7aJ0T2uh8k/HhPBf26PI6pPsezeI3qh2Lgq9znEHzVOAkd8LyF6fKp0f15R+ -/uB//v5B5xdQSwcI7enL7bkBAABcBAAAUEsBAhQAFAAICAgAAAAhAO3py+25AQAAXAQAAAgACQAAAAAA -AAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAPgBAAAAAA== +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACtVF2PojAUffdXkG7i +m0XdlwmKxqizY9YPsrhx3ggLFboDlG0vwvz7uYgi7rjZL1/IpT33nNPb5gzHRRxpByYVF4lJerRLNJZ4 +wudJYJIM9p0HMh61hkIGlHkRTxWj0ksBqAcFTSXbM4l4pgzrUk9FAqwArYi5UVP3S2oUS5SB6yYJAVJD +1/M8pyIOKAroz6tFDVHXkPzjEdHvdnsIW9peyGK3wxMFLiqeu37rsuY8o0rSI1JHpN5AEi1xY2aSacRc +aTXXuW8SZ616T6tVz56z6efvaTe2lk98HhDNQ3hiNQVBZoyMWpo29MqxJHAirr2Xe+VuyCNfnTabB8k4 +5f4ZhkDfBVfD+Rjwmv4EvX0zNki8zdLUDFuJ9sJeTTJ/Xmwd68tmZW2dzdqZLjf23FlO7K2zW6xnmx3R +Dm6UIf/ejRQj+smlXtn8A8+Je+CBC0Le2/n7NlRjRRoJySTd8wiYnHjADy7gw6vPYfzKH5VMiUyi3qlZ +UbwZCWrHIZwJuPGqsF3hs/DCx2OD8bfj8dDqRfbeA8I/5A5pxIMQclZ+KUvcbxHz/+9WhYjTkOZCvqCo +YnB35ydqHC7QQIosrf22IxhcRVX7RyZggHlVFZfQqv6/bh87D1U5HrU/FJNBydCwbuyq2mbwqVS6Cquq +sV+TX2KrWridXVfghtT7pmb6HIeqN+B6fSi9cn7rmrCu0gSzWf+XcB613gBQSwcIvx4HLBkCAAD7BQAA +UEsBAhQAFAAICAgAAAAhAL8eBywZAgAA+wUAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEA +AAAAUEsFBgAAAAABAAEAPwAAAFgCAAAAAA== ------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf-- diff --git a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.classpath b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.classpath index ad32c83a7..eca7bdba8 100644 --- a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.classpath +++ b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.classpath @@ -1,6 +1,6 @@ - + diff --git a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.settings/org.eclipse.jdt.core.prefs b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..9f6ece88b --- /dev/null +++ b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/META-INF/MANIFEST.MF b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/META-INF/MANIFEST.MF index 6fa427189..3c88baee0 100644 --- a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/META-INF/MANIFEST.MF +++ b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/META-INF/MANIFEST.MF @@ -16,5 +16,5 @@ Require-Bundle: org.eclipse.ui, org.eclipse.rcptt.tesla.swt;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.tesla.core;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.tesla.swt.aspects;bundle-version="[2.5.5,3.0.0)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy diff --git a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java index fb5f1982b..7b0ea9059 100644 --- a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java +++ b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java @@ -12,10 +12,9 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Arrays; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import org.eclipse.core.runtime.CoreException; @@ -103,26 +102,7 @@ private void doApply(PreferencesContext context) throws CoreException { IPreferencesService service = Platform.getPreferencesService(); IEclipsePreferences rootPreferences = service.getRootNode(); - // Clean preferences before all actions if (context.isCleanPreferences()) { - try { - String[] rootChildsNames = rootPreferences.childrenNames(); - for (String rootChild : rootChildsNames) { - if (rootChild.equals("project") - || rootChild.equals("instance")) { - // Remove project preferences - Preferences rootChildNode = rootPreferences - .node(rootChild); - removeSubNodes(rootChildNode); - // node.removeNode(); - } - } - rootPreferences.flush(); - rootPreferences.sync(); - } catch (BackingStoreException e) { - throw new CoreException(Activator.createStatus( - "Could not clear preferences: " + e.getMessage(), e)); - } // Clear all dialog settings Bundle[] bundles = Activator.getDefault().getBundle() .getBundleContext().getBundles(); @@ -130,6 +110,7 @@ private void doApply(PreferencesContext context) throws CoreException { DialogSettingsUtils.clearDialogSettings(bundle); } } + HashSet touchedNodes = new HashSet<>(); try { for (PrefNode prefNode : context.getContent()) { try { @@ -142,8 +123,9 @@ private void doApply(PreferencesContext context) throws CoreException { RcpttPlugin.log(e); } } - applyPreferences(prefNode, rootPreferences, - context.isCleanPreferences()); + String name = PrefUtils.substituteVariables(prefNode.getName()); + applyPreferences(name, prefNode, rootPreferences, context.isCleanPreferences()); + touchedNodes.add(name); rootPreferences.flush(); } catch (Throwable e) { String nodeName = prefNode.getName(); @@ -176,6 +158,17 @@ private void doApply(PreferencesContext context) throws CoreException { applyDialogSettings(prefNode); } } + + if (context.isCleanPreferences()) { + // If values or nodes are removed and then re-added event listeners that require a value to always be present and valid fail + // We have to set new values immediately, without removing nodes first + // To cleanup unneeded nodes, we first compute and visit all needed ones and remove all the rest. + for (String key: rootPreferences.keys()) { + if (!touchedNodes.contains(key)) { + applyPreferences(key, PreferencesFactory.eINSTANCE.createPrefNode(), rootPreferences, context.isCleanPreferences()); + } + } + } rootPreferences.flush(); } catch (IOException e) { @@ -187,58 +180,6 @@ private void doApply(PreferencesContext context) throws CoreException { } } - private void removeSubNodes(Preferences rootChildNode) - throws BackingStoreException { - rootChildNode.clear(); - - String[] topChildNames = rootChildNode.childrenNames(); - for (String topChild : topChildNames) { - Preferences topChildNode = rootChildNode.node(topChild); - Map storedProperties = new HashMap(); - if (topChild.equals("org.eclipse.pde.core")) { - for (String key : getPDECoreRequiredPreferencesList()) { - storedProperties.put(key, topChildNode.get(key, null)); - } - } - if (topChild.equals("org.eclipse.jdt.core")) { - for (String key : getJDTCoreRequiredPreferencesList()) { - storedProperties.put(key, topChildNode.get(key, null)); - } - } - topChildNode.clear(); - try { - topChildNode.flush(); - } catch (Throwable e) { - Activator.log(e); - } - // if (!"org.eclipse.pde.core".equals(child2)) { - // nde.removeNode(); - // } - - String[] childrenNames = topChildNode.childrenNames(); - for (String child : childrenNames) { - Preferences childNode = topChildNode.node(child); - childNode.removeNode(); - } - - // Roll back some stored values if required - for (Map.Entry e : storedProperties.entrySet()) { - if (e.getValue() != null) { - try { - topChildNode.put(e.getKey(), e.getValue()); - } catch (Throwable eee) { - // ignore - } - } - } - } - try { - rootChildNode.flush(); - } catch (Throwable e) { - Activator.log(e); - } - } - private String[] getPDECoreRequiredPreferencesList() { String keys[] = new String[] { "org.eclipse.pde.ui.arch", "vm_args", "program_args", "org.eclipse.pde.ui.ws", @@ -296,37 +237,24 @@ public boolean isCreateAllowed() { return true; } - private void applyPreferences(PrefNode currentPrefNode, + private void applyPreferences(String nodeName, PrefNode currentPrefNode, Preferences parentPreferences, boolean clean) throws BackingStoreException { - String nodeName = PrefUtils.substituteVariables(currentPrefNode.getName()); - Preferences preferences = parentPreferences.node(nodeName); - Map storedProperties = new HashMap(); + Set datasSet = new HashSet(); if (nodeName.equals("org.eclipse.pde.core")) { - for (String key : getPDECoreRequiredPreferencesList()) { - storedProperties.put(key, preferences.get(key, null)); - } + datasSet.addAll(Arrays.asList(getPDECoreRequiredPreferencesList())); } if (nodeName.equals("org.eclipse.jdt.core")) { - for (String key : getJDTCoreRequiredPreferencesList()) { - storedProperties.put(key, preferences.get(key, null)); - } - } - - if (clean) { - removeSubNodes(preferences); - // preferences.removeNode(); + datasSet.addAll(Arrays.asList(getJDTCoreRequiredPreferencesList())); } preferences = parentPreferences.node(nodeName); EList datas = currentPrefNode.getData(); - Set datasSet = new HashSet(); for (PrefData data : datas) { StringPrefData prefData = (StringPrefData) data; - datasSet.add(data.getKey()); if (prefData .getKey() .startsWith( @@ -346,32 +274,50 @@ private void applyPreferences(PrefNode currentPrefNode, PrefUtils.decodePrefData(prefData); PrefUtils.decodeWorkspaceLocation(prefData); PrefUtils.substituteVariables(prefData); + datasSet.add(prefData.getKey()); try { preferences.put(prefData.getKey(), prefData.getValue()); } catch (Throwable e) { + Activator.log(e); + } + } + + if (clean) { + for (String key: preferences.keys()) { + if (!datasSet.contains(key)) { + preferences.remove(key); + } } } + + if (nodeName.equals("org.eclipse.ui.workbench") || datasSet.contains("OPEN_ON_SINGLE_CLICK")) { processOpenStrategy(preferences); } - // Roll back some stored values if required - for (Map.Entry e : storedProperties.entrySet()) { - if (e.getValue() != null) { - try { - preferences.put(e.getKey(), e.getValue()); - } catch (Throwable eee) { - // ignore - } - } - } + datasSet.clear(); EList childs = currentPrefNode.getChilds(); for (PrefNode child : childs) { try { - applyPreferences(child, preferences, false); + String name = PrefUtils.substituteVariables(child.getName()); + datasSet.add(name); + applyPreferences(name, child, preferences, false); } catch (Throwable e) { - RcpttPlugin.log(e); + Activator.log(e); + } + } + + if (clean) { + for (String key: preferences.childrenNames()) { + if (!datasSet.contains(key)) { + applyPreferences(key, PreferencesFactory.eINSTANCE.createPrefNode(), preferences, clean); + preferences.node(key).removeNode(); + } + } + + if (preferences.childrenNames().length == 0 && preferences.keys().length == 0) { + preferences.removeNode(); } } } From 0712bd96ab42d007e842d7f85c382898c727fe7a Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 00:05:54 +0400 Subject: [PATCH 63/91] Fix OutOfMemoryError Stream monitoring of Eclipse Launches keeps a buffer of output. We either need to flush it regularly, or disable buffering. --- .../internal/launching/aut/ConsoleOutputListener.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java index a2d10405a..9135e99d7 100644 --- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java +++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java @@ -19,6 +19,7 @@ import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.IStreamListener; +import org.eclipse.debug.core.model.IFlushableStreamMonitor; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.core.model.IStreamMonitor; import org.eclipse.debug.core.model.IStreamsProxy; @@ -72,6 +73,10 @@ public void startLogging(AutLaunch launch) { this.launch = launch; for (IStreamMonitor sm : getMonitors(launch.getLaunch())) { sm.addListener(listener); + if (sm instanceof IFlushableStreamMonitor flushable) { + log.append(sm.getContents()); + flushable.setBuffered(false); // Fixes OutOfMemoryError + } } } @@ -82,6 +87,9 @@ public void stopLogging() { return; for (IStreamMonitor sm : getMonitors(launch2.getLaunch())) { sm.removeListener(listener); + if (sm instanceof IFlushableStreamMonitor flushable) { + flushable.setBuffered(true); + } } launch = null; } From 88ae01adccbe2c06925cc21ffa686203d1df1793 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 00:27:21 +0400 Subject: [PATCH 64/91] Bug 503369 Suppress 'Missing resource filter type' warning Runner logs warnings because the filter declaration is in org.eclipse.ui.ide which should not be included in a headless application See https://bugs.eclipse.org/bugs/show_bug.cgi?id=503369 --- .../META-INF/MANIFEST.MF | 3 ++- runner/org.eclipse.rcptt.runner/plugin.xml | 11 ++++++++ .../extensions/DummyResourceFilter.java | 25 +++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/extensions/DummyResourceFilter.java diff --git a/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF b/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF index 586043b17..5fc99344f 100644 --- a/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF +++ b/runner/org.eclipse.rcptt.runner/META-INF/MANIFEST.MF @@ -38,6 +38,7 @@ Require-Bundle: org.eclipse.rcptt.core, slf4j.api;bundle-version="2.0.12", jakarta.servlet-api;bundle-version="4.0.0", bcpg;bundle-version="1.73.0", - bcprov;bundle-version="1.73.0" + bcprov;bundle-version="1.73.0", + org.eclipse.core.filesystem Bundle-Activator: org.eclipse.rcptt.runner.HeadlessRunnerPlugin Bundle-ActivationPolicy: lazy diff --git a/runner/org.eclipse.rcptt.runner/plugin.xml b/runner/org.eclipse.rcptt.runner/plugin.xml index 8fca6ef3a..2a9178700 100644 --- a/runner/org.eclipse.rcptt.runner/plugin.xml +++ b/runner/org.eclipse.rcptt.runner/plugin.xml @@ -40,4 +40,15 @@ class="org.eclipse.rcptt.runner.util.RunnerBrowserLaunchDelegate"> + + + + diff --git a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/extensions/DummyResourceFilter.java b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/extensions/DummyResourceFilter.java new file mode 100644 index 000000000..2ad1fcf46 --- /dev/null +++ b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/extensions/DummyResourceFilter.java @@ -0,0 +1,25 @@ +package org.eclipse.rcptt.runner.extensions; + +import org.eclipse.core.filesystem.IFileInfo; +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.filtermatchers.AbstractFileInfoMatcher; +import org.eclipse.core.text.StringMatcher; + +// Replaces org.eclipse.ui.internal.ide.misc.FileInfoAttributesMatcher in non-UI context +public class DummyResourceFilter extends AbstractFileInfoMatcher { + StringMatcher matcher = null; + + @Override + public void initialize(IProject project, Object arguments) { + if ((arguments instanceof String) && ((String) arguments).length() > 0) + matcher = new StringMatcher((String) arguments, true, false); + } + + @Override + public boolean matches(IContainer parent, IFileInfo fileInfo) { + if (matcher != null) + return matcher.match(fileInfo.getName()); + return false; + } +} From 0676e16b5d836f3fe606d651ec4d007a0532b4cc Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 00:36:06 +0400 Subject: [PATCH 65/91] Fix OutOfMemoryError Stream monitoring of Eclipse Launches keeps a buffer of output. We either need to flush it regularly, or disable buffering. --- launching/org.eclipse.rcptt.launching/.classpath | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 14 ++++++++++++++ .../META-INF/MANIFEST.MF | 2 +- .../launching/aut/ConsoleOutputListener.java | 8 ++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 launching/org.eclipse.rcptt.launching/.settings/org.eclipse.jdt.core.prefs diff --git a/launching/org.eclipse.rcptt.launching/.classpath b/launching/org.eclipse.rcptt.launching/.classpath index 16d067f28..4d23c2958 100644 --- a/launching/org.eclipse.rcptt.launching/.classpath +++ b/launching/org.eclipse.rcptt.launching/.classpath @@ -1,7 +1,7 @@ + - diff --git a/launching/org.eclipse.rcptt.launching/.settings/org.eclipse.jdt.core.prefs b/launching/org.eclipse.rcptt.launching/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..8aabe8df8 --- /dev/null +++ b/launching/org.eclipse.rcptt.launching/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=16 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=16 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=16 diff --git a/launching/org.eclipse.rcptt.launching/META-INF/MANIFEST.MF b/launching/org.eclipse.rcptt.launching/META-INF/MANIFEST.MF index 2bcc54061..68dc2713f 100644 --- a/launching/org.eclipse.rcptt.launching/META-INF/MANIFEST.MF +++ b/launching/org.eclipse.rcptt.launching/META-INF/MANIFEST.MF @@ -27,7 +27,7 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.rcptt.core.launching;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.verifications;bundle-version="[2.5.5,3.0.0)", org.eclipse.rcptt.reporting.util;bundle-version="[2.5.5,3.0.0)" -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-16 Bundle-ActivationPolicy: lazy Export-Package: org.eclipse.rcptt.internal.launching, org.eclipse.rcptt.internal.launching.aut, diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java index a2d10405a..9135e99d7 100644 --- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java +++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java @@ -19,6 +19,7 @@ import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.IStreamListener; +import org.eclipse.debug.core.model.IFlushableStreamMonitor; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.core.model.IStreamMonitor; import org.eclipse.debug.core.model.IStreamsProxy; @@ -72,6 +73,10 @@ public void startLogging(AutLaunch launch) { this.launch = launch; for (IStreamMonitor sm : getMonitors(launch.getLaunch())) { sm.addListener(listener); + if (sm instanceof IFlushableStreamMonitor flushable) { + log.append(sm.getContents()); + flushable.setBuffered(false); // Fixes OutOfMemoryError + } } } @@ -82,6 +87,9 @@ public void stopLogging() { return; for (IStreamMonitor sm : getMonitors(launch2.getLaunch())) { sm.removeListener(listener); + if (sm instanceof IFlushableStreamMonitor flushable) { + flushable.setBuffered(true); + } } launch = null; } From e675d6f3c8ff41a06842c0466fcd8c4e46469649 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 00:49:47 +0400 Subject: [PATCH 66/91] Revert "Adapt to increased memory requirements of Eclipse Platform 2024-03" This reverts commit ea5cf4e36f1666a66293bde064f588d37c7041f1. --- .../src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java index 7a85e399b..5bf366f67 100644 --- a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java +++ b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java @@ -84,7 +84,7 @@ public class ExecuteMojo extends AbstractRCPTTMojo { private static final String ENABLE_SOFTWARE_INSTALLATION = "-enableSoftwareInstallation"; private static int shutdownListenerPort; - private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms256m", "-Xmx512m", + private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms128m", "-Xmx256m", "-Dorg.eclipse.rcptt.runner.returnTestFailure=true" }; // TODO: Replace this random number with carefully thought one From 939daca91939a76d9d18b0aec6499a859ccb375b Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 03:11:54 +0400 Subject: [PATCH 67/91] Stabilize tests --- ...Required Entry Not Found (Plugin Pattern).test | 15 +++++++++------ .../Time/TimeVerificationAfterRestart.test | 6 +++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test index b23b46003..c573c4656 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Required Entry Not Found (Plugin Pattern).test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _e6IKoH0REeO5CYdzFmGe7Q -Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/25/24, 3:11 PM +Runtime-Version: 2.5.5.202403301941 +Save-Time: 3/31/24, 3:10 AM Tags: verification/Error Log, selfAUT Testcase-Type: ecl @@ -62,9 +62,12 @@ with [get-editor ErrorLogVerification] { } get-view "Test Explorer" | get-tree | select "MyProject/TestCase" | double-click get-editor TestCase | get-button Replay | click -try -times 10 -delay 1000 -command { - get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals "Error log ver" + - "ification 'ErrorLogVerification' failed:\nRequired \nINFO, plugin: org.eclipse.ui2, message: Info Entry\nnot" + - " found" | verify-true +with [get-view "Execution View" | get-label -after [get-label "Runs:"]] { + try -times 10 -delay 20000 -command { + get-property caption | equals "1/1" | verify-true + } } +get-view "Execution View" | get-editbox -after [get-label "Message:"] | get-property text | equals "Error log verific" + + "ation 'ErrorLogVerification' failed:\nRequired \nINFO, plugin: org.eclipse.ui2, message: Info Entry\nnot found" + | verify-true ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test index 717cdfc74..f2afd12e2 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Time/TimeVerificationAfterRestart.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _Mj28oB0wEeSIvfJuGlG47A -Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/28/24, 10:51 AM +Runtime-Version: 2.5.5.202403301941 +Save-Time: 3/31/24, 3:05 AM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -16,7 +16,7 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "MyProject/TC" | get-menu "Run As/1 Test Cases" | click with [get-view "Execution View"] { - try -times 10 -delay 1000 -command { + try -times 10 -delay 20000 -command { get-label --after [get-label "Runs:"] | get-property caption | equals "1/1" | verify-true } From d8bbab9e8660fdb029dd939dccd0289cfc9890a9 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 04:01:05 +0400 Subject: [PATCH 68/91] Fix preference listener removal java.lang.IllegalStateException: Preference node "org.eclipse.e4.ui.workbench.renderers.swt" has been removed. at org.eclipse.core.internal.preferences.EclipsePreferences.checkRemoved(EclipsePreferences.java:170) at org.eclipse.core.internal.preferences.EclipsePreferences.removePreferenceChangeListener(EclipsePreferences.java:960) at org.eclipse.e4.ui.workbench.renderers.swt.CTabRendering.lambda$0(CTabRendering.java:177) --- .../ctx/preferences/impl/PreferencesContextProcessor.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java index 7b0ea9059..499d16711 100644 --- a/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java +++ b/runtime/contexts/org.eclipse.rcptt.ctx.preferences.impl/src/org/eclipse/rcptt/ctx/preferences/impl/PreferencesContextProcessor.java @@ -312,13 +312,8 @@ private void applyPreferences(String nodeName, PrefNode currentPrefNode, for (String key: preferences.childrenNames()) { if (!datasSet.contains(key)) { applyPreferences(key, PreferencesFactory.eINSTANCE.createPrefNode(), preferences, clean); - preferences.node(key).removeNode(); } } - - if (preferences.childrenNames().length == 0 && preferences.keys().length == 0) { - preferences.removeNode(); - } } } From 26c0f1b9757d923e52b6c553fbb589537d21fac3 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 14:40:19 +0400 Subject: [PATCH 69/91] Stabilize test --- .../Execute/Apply ECL Context.test | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/rcpttTests/platform_tests/Editing/Context/ECL Context/Execute/Apply ECL Context.test b/rcpttTests/platform_tests/Editing/Context/ECL Context/Execute/Apply ECL Context.test index fa36b90dd..ad716d1a5 100644 --- a/rcpttTests/platform_tests/Editing/Context/ECL Context/Execute/Apply ECL Context.test +++ b/rcpttTests/platform_tests/Editing/Context/ECL Context/Execute/Apply ECL Context.test @@ -1,14 +1,13 @@ --- RCPTT testcase --- Format-Version: 1.0 -Q7-vendor: www.xored.com/q7 Contexts: _ymiyse5IEeCU6db9MgIBkA,_zOzvECeMEeGm5NjoKhWsPQ,_ZQYygK2sEeCqBbDEJWufvQ Element-Name: Apply ECL Context Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _4WpBACeLEeGm5NjoKhWsPQ -Q7-Runtime-Version: 1.5.0.201406131029 -Save-Time: 6/13/14 7:10 PM +Runtime-Version: 2.5.5.202403310907 +Save-Time: 3/31/24, 2:39 PM Tags: selfAUT, Context, ECLContext, Runtime Testcase-Type: ecl @@ -38,10 +37,16 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "Q7Project/Delete Test" | double-click -nowait get-editor "Delete Test" | get-button Replay | click + +with [get-view "Execution View"] { + try -times 10 -delay 20000 -command { + get-label -after [get-label "Runs:"] | get-property caption | equals "1/1" | verify-true + } +} + with [get-view "Execution View"] { - get-tree | get-item "Delete Test.*" | get-property caption | equals "Delete Test.*" - | verify-true - get-label "1/1" | get-property caption | equals "1/1" | verify-true - get-label 0 | get-property caption | equals 0 | verify-true + get-tree | get-item "Delete Test.*" | get-property caption | equals "Delete Test.*" | verify-true + get-label "1/1" | get-property caption | equals "1/1" | verify-true + get-label 0 | get-property caption | equals 0 | verify-true } ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 3e64f6e478f7e15ae7b07bd02847cfe7c4d22643 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 18:04:38 +0400 Subject: [PATCH 70/91] Stabilize tests --- .../Recording/EclipseForms/FormWithLinksRecording.test | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rcpttTests/platform_tests/Recording/EclipseForms/FormWithLinksRecording.test b/rcpttTests/platform_tests/Recording/EclipseForms/FormWithLinksRecording.test index 894312669..e0902c436 100644 --- a/rcpttTests/platform_tests/Recording/EclipseForms/FormWithLinksRecording.test +++ b/rcpttTests/platform_tests/Recording/EclipseForms/FormWithLinksRecording.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _bpX-UNjtEeSXouPau0KnWQ -Runtime-Version: 2.2.0.qualifier -Save-Time: 4/30/16 2:42 PM +Runtime-Version: 2.5.5.202403310907 +Save-Time: 3/31/24, 6:03 PM Tags: eclipse_forms Testcase-Type: ecl @@ -18,6 +18,11 @@ Entry-Name: .content get-view Applications | click get-button "Record a Snippet" | click +try -times 10 -delay 20000 -command{ + get-window "Control Panel - mockupsQ7 [Recording]" | get-button Stop | get-property enablement | equals true + | verify-true +} + get-aut "mockupsQ7" | eval { get-button "Open Perspective" | click //get-menu "Other..." | click From f0d930bd78c8b3e0378b4ee24f078a7b1ef7fc4c Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Sun, 31 Mar 2024 20:33:46 +0400 Subject: [PATCH 71/91] Archive memory dumps --- releng/Jenkinsfile.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releng/Jenkinsfile.groovy b/releng/Jenkinsfile.groovy index 81848ab84..411b1acd3 100644 --- a/releng/Jenkinsfile.groovy +++ b/releng/Jenkinsfile.groovy @@ -164,7 +164,7 @@ $SSH_DEPLOY_CONTAINER_VOLUMES void archive() { this.script.junit "**/target/*-reports/*.xml" this.script.fingerprint "$RUNTIME_DIR/org.eclipse.rcptt.updates.runtime*/q7/**/*.*" - this.script.archiveArtifacts allowEmptyArchive: true, artifacts: "repository/**/target/repository/**/*, $PRODUCTS_DIR/*, $RUNNER_DIR/*.zip, maven-plugin/rcptt-maven-*/target/rcptt-maven-*.jar, $DOC_DIR/target/doc/**/*, **/target/**/*.log" + this.script.archiveArtifacts allowEmptyArchive: true, artifacts: "**/*.hrpof, repository/**/target/repository/**/*, $PRODUCTS_DIR/*, $RUNNER_DIR/*.zip, maven-plugin/rcptt-maven-*/target/rcptt-maven-*.jar, $DOC_DIR/target/doc/**/*, **/target/**/*.log" } private void sh_with_return(String command) { From 27311585ac566359b2161210cbe529474e584db6 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 1 Apr 2024 00:17:55 +0400 Subject: [PATCH 72/91] Do not wrap InterruptedException --- .../eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java index 6ab1db17b..7f186b925 100644 --- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java +++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java @@ -282,9 +282,12 @@ public void run() { } finally { execThread.interrupt(); } - + Exception wrapped = wrappedException[0]; if (wrapped != null) { + if (wrapped instanceof InterruptedException ie) { + throw ie; + } if (wrapped instanceof CoreException) { throw new CoreException(new MultiStatus(PLUGIN_ID, 0, new IStatus[] { ((CoreException) wrapped).getStatus() }, wrapped.getMessage(), wrapped)); From 0b3950698d61e8c70934504b22021fc140ec7a43 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 1 Apr 2024 00:18:16 +0400 Subject: [PATCH 73/91] Disable test #58 --- ...rLogVerification_NEGATIVE Case Denied Entry_Error.test | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test index 7c983574d..aa9a2fb11 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/verifications/Log/ErrLogVerification_NEGATIVE Case Denied Entry_Error.test @@ -4,11 +4,11 @@ Contexts: _B01ToH0KEeO5CYdzFmGe7Q,_4zI9AWpgEeCzId1Gnkds9A,_ZQYygK2sEeCqBbDEJWufv Element-Name: ErrLogVerification_NEGATIVE Case Denied Entry_Error Element-Type: testcase Element-Version: 3.0 -External-Reference: +External-Reference: https://github.com/eclipse/org.eclipse.rcptt/issues/58 Id: _Iqh_IH0VEeO5CYdzFmGe7Q -Runtime-Version: 2.5.5.202403280142 -Save-Time: 3/29/24, 12:19 AM -Tags: verification/Error Log, selfAUT +Runtime-Version: 2.5.5.202403310907 +Save-Time: 4/1/24, 12:16 AM +Tags: verification/Error Log, selfAUT, skipExecution Testcase-Type: ecl ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa From b8500e9bf2915f5a9cf598ed904a96dcd19daccd Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 1 Apr 2024 15:16:12 +0400 Subject: [PATCH 74/91] Fix AUT restart After restart AUT shows an intro page obstracting all views. Fix preferences to disable intro. --- rcpttTests/contexts/CleanPreferences.ctx | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/rcpttTests/contexts/CleanPreferences.ctx b/rcpttTests/contexts/CleanPreferences.ctx index 7be985266..4278daf66 100644 --- a/rcpttTests/contexts/CleanPreferences.ctx +++ b/rcpttTests/contexts/CleanPreferences.ctx @@ -5,8 +5,8 @@ Element-Name: ClearPreferences Element-Type: context Element-Version: 2.0 Id: _Ns1HMM1SEeCKjp0mPLHiEg -Runtime-Version: 2.5.5.202403300730 -Save-Time: 3/30/24, 8:01 PM +Runtime-Version: 2.5.5.qualifier +Save-Time: 4/1/24, 3:07 PM ------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa Content-Type: text/plain @@ -26,16 +26,16 @@ Contributors: Content-Type: q7/binary Entry-Name: .q7.content -UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACtVF2PojAUffdXkG7i -m0XdlwmKxqizY9YPsrhx3ggLFboDlG0vwvz7uYgi7rjZL1/IpT33nNPb5gzHRRxpByYVF4lJerRLNJZ4 -wudJYJIM9p0HMh61hkIGlHkRTxWj0ksBqAcFTSXbM4l4pgzrUk9FAqwArYi5UVP3S2oUS5SB6yYJAVJD -1/M8pyIOKAroz6tFDVHXkPzjEdHvdnsIW9peyGK3wxMFLiqeu37rsuY8o0rSI1JHpN5AEi1xY2aSacRc -aTXXuW8SZ616T6tVz56z6efvaTe2lk98HhDNQ3hiNQVBZoyMWpo29MqxJHAirr2Xe+VuyCNfnTabB8k4 -5f4ZhkDfBVfD+Rjwmv4EvX0zNki8zdLUDFuJ9sJeTTJ/Xmwd68tmZW2dzdqZLjf23FlO7K2zW6xnmx3R -Dm6UIf/ejRQj+smlXtn8A8+Je+CBC0Le2/n7NlRjRRoJySTd8wiYnHjADy7gw6vPYfzKH5VMiUyi3qlZ -UbwZCWrHIZwJuPGqsF3hs/DCx2OD8bfj8dDqRfbeA8I/5A5pxIMQclZ+KUvcbxHz/+9WhYjTkOZCvqCo -YnB35ydqHC7QQIosrf22IxhcRVX7RyZggHlVFZfQqv6/bh87D1U5HrU/FJNBydCwbuyq2mbwqVS6Cquq -sV+TX2KrWridXVfghtT7pmb6HIeqN+B6fSi9cn7rmrCu0gSzWf+XcB613gBQSwcIvx4HLBkCAAD7BQAA -UEsBAhQAFAAICAgAAAAhAL8eBywZAgAA+wUAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEA -AAAAUEsFBgAAAAABAAEAPwAAAFgCAAAAAA== +UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACtVU2TmkAQve+voCZV +3hzUXLZQtCx1s1b8oIIp90YRGGGywJCZRth/v40oYtbUZhMvVDPz+r033UMzGBVxpO2ZVFwkJunSDtFY +4gmfJ4FJMti178loeDcQMqDMi3iqGJVeCkA9KGgq2Y5JxDNlWOd4IhJgBWhFzI2auldSo1iiDFw3SQiQ +Grqe5zkVcUBRQH9azmuIuoTknw+IXqfTRdjC9kIWu22eKHBR8ZT1rsua84QqSQ9IHZF6A0m0xI2ZSSYR +c6XVXOe+SZyV6j4ul117xiZff6ad2Fo88llANA/hidUUBJkxMrzTtIFXliWBI3Htvdwrd0Me+eq42TxI +xin3TzAE+i64GtbHgJf0N+j1ztggsZulqSmmEu2ZvZhk9jTfONa39dLaOOuVM1ms7ZmzGNsbZztfTddb +ou3dKEP+nRspRvSjS72y+ReeE3fPAxeEvLXzt2moxoo0EpJJuuMRMDn2gO9dwItXn8P4kz8qmRKZRL1j +sqLYGQlqyyGcCrhyqzBd4bXwwodDgvHR8nho9Sx76wLhG3KHNOJBCDkrn5Ql7o+I+f/XVSHiNKS5kM8o +qhjc3PmRGosLNJAiS2u/rQj6F6Oq9SsT0Md5VQXnoVW9f988tO+rcDRsfSrG/ZKhYd3YVrHN4EupdDGs +qsReTX4eW9XC9dl1AW5IvU1qTp9DUfUGXK8PpVfOP/7x3bovKhT5PAEp3r8/GFdjDn8a+r/8NYZ3r1BL +BwhUocwlJwIAAJQGAABQSwECFAAUAAgICAAAACEAVKHMJScCAACUBgAACAAJAAAAAAAAAAAAAAAAAAAA +LmNvbnRlbnRVVAUAAQAAAABQSwUGAAAAAAEAAQA/AAAAZgIAAAAA ------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf-- From c0a53eba885f854e75781ecdd84711fbb6ea7d33 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Mon, 1 Apr 2024 15:16:58 +0400 Subject: [PATCH 75/91] Enable invok-AUT command --- devenv/launches/RCPTT IDE AUT.launch | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/devenv/launches/RCPTT IDE AUT.launch b/devenv/launches/RCPTT IDE AUT.launch index f0fd5ffda..8d83b1e9c 100644 --- a/devenv/launches/RCPTT IDE AUT.launch +++ b/devenv/launches/RCPTT IDE AUT.launch @@ -30,18 +30,16 @@ - + - - @@ -77,7 +75,6 @@ - @@ -235,7 +232,6 @@ - @@ -302,8 +298,6 @@ - - @@ -320,7 +314,6 @@ - @@ -382,11 +375,11 @@ + - @@ -396,12 +389,7 @@ - - - - - @@ -553,6 +541,7 @@ + From 0fb2029c6cb8b0e65c923f295b8b71edcc39ee6e Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 2 Apr 2024 09:30:47 +0400 Subject: [PATCH 76/91] Fail Runner if AUT can't be restarted. Also fixed resource formal resource leaks. --- .../eclipse/rcptt/runner/HeadlessRunner.java | 8 ++++-- .../rcptt/runner/util/TestsRunner.java | 28 +++++++++++-------- .../streams/SherlockReportOutputStream.java | 3 +- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java index c1a0d8250..aef8cb987 100644 --- a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java +++ b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/HeadlessRunner.java @@ -59,9 +59,11 @@ public int performCoolThings() throws Exception { TestsRunner testsRunner = new TestsRunner(conf, this, new ResultsHandler(conf, runnerOptions.isRestartAUTOnFailures())); - Q7ReportIterator reportIterator = testsRunner.findAndRunTests(); - - reporter.report(reportIterator, this, conf); + try(Q7ReportIterator reportIterator = testsRunner.findAndRunTests()) { + reporter.report(reportIterator, this, conf); + } + testsRunner.throwOnError(); + return testsRunner.getFailedCount(); } diff --git a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/TestsRunner.java b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/TestsRunner.java index f79352351..669b1606f 100644 --- a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/TestsRunner.java +++ b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/TestsRunner.java @@ -22,6 +22,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.concurrent.atomic.AtomicReference; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspace; @@ -68,6 +69,7 @@ public class TestsRunner { private final ResultsHandler resultsHandler; private final AUTsManager auts; private int failedCount = 0; + private AtomicReference error = new AtomicReference<>(null); public int getFailedCount() { return failedCount; @@ -257,21 +259,13 @@ private Q7ReportIterator runTests(final TestSuite[] tests) throws DebugException Assert.isTrue(auts.isClean(), "AUTs manages should not have been used before"); List runnables = Collections.synchronizedList(new ArrayList()); failedCount = 0; - final SherlockReportOutputStream reportWriter; File reportFile = new File(conf.getQ7ReportLocation()); createFolderForFile(reportFile); - try { - reportWriter = new SherlockReportOutputStream( - new BufferedOutputStream(new FileOutputStream(reportFile))); - } catch (FileNotFoundException e1) { - System.out.println("Failed to create report file:" + conf.getQ7ReportLocation()); - HeadlessRunnerPlugin.getDefault().info("Failed to create report file:" + conf.getQ7ReportLocation()); - throw new RuntimeException(e1); - } Set failed = new HashSet(); - try { + try (SherlockReportOutputStream reportWriter = new SherlockReportOutputStream( + new BufferedOutputStream(new FileOutputStream(reportFile)))) { int count = 0; for (final TestSuite suite : tests) { suite.setLimit(conf.limit); @@ -353,6 +347,7 @@ private Q7ReportIterator runTests(final TestSuite[] tests) throws DebugException } } if (!alive) { + error.compareAndSet(null, new AutLaunchFail("AUT is not available", null)); // No alive threads -> finish skipRemaining(runnables, "AUT is not available"); break; @@ -367,6 +362,10 @@ private Q7ReportIterator runTests(final TestSuite[] tests) throws DebugException System.out.println(scenario); } } + } catch (FileNotFoundException e1) { + System.out.println("Failed to create report file:" + conf.getQ7ReportLocation()); + HeadlessRunnerPlugin.getDefault().info("Failed to create report file:" + conf.getQ7ReportLocation()); + throw new RuntimeException(e1); } catch (InterruptedException e) { HeadlessRunnerPlugin.getDefault().info("Execution interrupted"); } @@ -383,8 +382,6 @@ private Q7ReportIterator runTests(final TestSuite[] tests) throws DebugException } auts.removeShutdownHook(); failedCount = failed.size(); - if (reportWriter != null) - reportWriter.close(); TestEngineManager.getInstance().fireTestRunCompleted(); } @@ -436,4 +433,11 @@ private void createFolderForFile(File reportFile) { } } + public void throwOnError() throws Exception { + Exception result = error.get(); + if (result != null) { + throw result; + } + } + } diff --git a/watson/org.eclipse.rcptt.watson.core/src/org/eclipse/rcptt/sherlock/core/streams/SherlockReportOutputStream.java b/watson/org.eclipse.rcptt.watson.core/src/org/eclipse/rcptt/sherlock/core/streams/SherlockReportOutputStream.java index fbc3f7efd..4f4aabba2 100644 --- a/watson/org.eclipse.rcptt.watson.core/src/org/eclipse/rcptt/sherlock/core/streams/SherlockReportOutputStream.java +++ b/watson/org.eclipse.rcptt.watson.core/src/org/eclipse/rcptt/sherlock/core/streams/SherlockReportOutputStream.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.rcptt.sherlock.core.streams; +import java.io.Closeable; import java.io.IOException; import java.io.OutputStream; import java.util.zip.ZipEntry; @@ -18,7 +19,7 @@ import org.eclipse.rcptt.sherlock.core.SherlockCore; import org.eclipse.rcptt.sherlock.core.model.sherlock.report.Report; -public class SherlockReportOutputStream { +public class SherlockReportOutputStream implements Closeable { private ZipOutputStream stream; int index = 0; From fc4b3ad6fb815f2a240d63c2baaf809a66846e43 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 2 Apr 2024 09:39:02 +0400 Subject: [PATCH 77/91] Revert "Revert "Adapt to increased memory requirements of Eclipse Platform 2024-03"" This reverts commit e675d6f3c8ff41a06842c0466fcd8c4e46469649. --- .../src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java index 5bf366f67..7a85e399b 100644 --- a/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java +++ b/maven-plugin/rcptt-maven-plugin/src/main/java/org/eclipse/rcptt/maven/ExecuteMojo.java @@ -84,7 +84,7 @@ public class ExecuteMojo extends AbstractRCPTTMojo { private static final String ENABLE_SOFTWARE_INSTALLATION = "-enableSoftwareInstallation"; private static int shutdownListenerPort; - private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms128m", "-Xmx256m", + private static final String[] DEFAULT_Q7_VM_ARGS = new String[] { "-Xms256m", "-Xmx512m", "-Dorg.eclipse.rcptt.runner.returnTestFailure=true" }; // TODO: Replace this random number with carefully thought one From db0465320750bb17edc9df664f77d1b7ba8a4f9e Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 2 Apr 2024 23:45:02 +0400 Subject: [PATCH 78/91] Do not suppress runner failures --- releng/Jenkinsfile.groovy | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/releng/Jenkinsfile.groovy b/releng/Jenkinsfile.groovy index 411b1acd3..7d3d42d2c 100644 --- a/releng/Jenkinsfile.groovy +++ b/releng/Jenkinsfile.groovy @@ -220,16 +220,15 @@ $SSH_DEPLOY_CONTAINER_VOLUMES } private void _run_tests(String runner, String dir, String args) { - try { + this.script.warnError(message: "Tests failed") { this.script.sh "mvn clean verify -B -f ${dir}/pom.xml \ -Dmaven.repo.local=${getWorkspace()}/m2 -e \ -Dci-maven-version=2.0.0-SNAPSHOT \ -DexplicitRunner=`readlink -f ${runner}` \ - ${args} || true" + ${args}" this.script.sh "test -f ${dir}/target/results/tests.html" - } finally { - this.script.archiveArtifacts allowEmptyArchive: false, artifacts: "${dir}/target/results/**/*, ${dir}/target/**/*log,${dir}/target/surefire-reports/**" } + this.script.archiveArtifacts allowEmptyArchive: false, artifacts: "${dir}/target/results/**/*, ${dir}/target/**/*log,${dir}/target/surefire-reports/**" } void post_build_actions() { From ce0a1666a89dd1a47eb4f60442020be73d21321b Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 3 Apr 2024 12:35:58 +0400 Subject: [PATCH 79/91] Dump heap on Runner issues --- rcpttTests/pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rcpttTests/pom.xml b/rcpttTests/pom.xml index 67b3d7466..738cbdbfc 100644 --- a/rcpttTests/pom.xml +++ b/rcpttTests/pom.xml @@ -78,6 +78,9 @@ ${runner-version} + + -XX:+HeapDumpOnOutOfMemoryError + skipExecution From fe4241ef81a935fd43f84feaea45976b915d04f8 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 3 Apr 2024 12:46:34 +0400 Subject: [PATCH 80/91] Clear in-memory logs after report is created --- .../internal/launching/aut/ConsoleOutputListener.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java index 9135e99d7..bcf7b5b30 100644 --- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java +++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/ConsoleOutputListener.java @@ -39,6 +39,7 @@ public class ConsoleOutputListener implements AutLaunchListener { private final LogBuilder log; private AutLaunch launch = null; + private boolean logStarted = false; public ConsoleOutputListener() { @@ -78,10 +79,11 @@ public void startLogging(AutLaunch launch) { flushable.setBuffered(false); // Fixes OutOfMemoryError } } - + logStarted = true; } public void stopLogging() { + logStarted = false; AutLaunch launch2 = launch; if (launch2 == null) return; @@ -91,6 +93,7 @@ public void stopLogging() { flushable.setBuffered(true); } } + log.clear(); launch = null; } @@ -102,6 +105,9 @@ public void stateChanged(AutLaunch launch, AutLaunchState state) { } public String getLog() { + if (!logStarted) { + throw new IllegalStateException("Log is not started"); + } return log.toString(); } From db6febe6351ab9114445c9c37dd707c23dfca864 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 3 Apr 2024 12:35:58 +0400 Subject: [PATCH 81/91] Dump heap on Runner issues --- rcpttTests/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rcpttTests/pom.xml b/rcpttTests/pom.xml index 67b3d7466..897516813 100644 --- a/rcpttTests/pom.xml +++ b/rcpttTests/pom.xml @@ -78,6 +78,10 @@ ${runner-version} + + -XX:+HeapDumpOnOutOfMemoryError + -Xmx600M + skipExecution From 033d4e61872055588bbd8f9983a4f0c967de7dc9 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 3 Apr 2024 14:33:26 +0400 Subject: [PATCH 82/91] Trying to capture self-AUT screenshots --- .../RefreshControlStateInAssertionMode.test | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test index 6f435c40b..9771fe4b0 100644 --- a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test +++ b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test @@ -1,13 +1,13 @@ --- RCPTT testcase --- Format-Version: 1.0 -Contexts: _ZQYygK2sEeCqBbDEJWufvQ,_4zI9AWpgEeCzId1Gnkds9A,_iia_IGZBEeSFIexzhWgJsg,_w0gTAGWkEeSAaoCk3UVcKg +Contexts: _NBWagUKJEeKFe_1s8hcGwg,_ZQYygK2sEeCqBbDEJWufvQ,_4zI9AWpgEeCzId1Gnkds9A,_iia_IGZBEeSFIexzhWgJsg,_w0gTAGWkEeSAaoCk3UVcKg Element-Name: RefreshControlStateInAssertionMode Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _k6AFUGWjEeSAaoCk3UVcKg -Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/28/24, 10:59 AM +Runtime-Version: 2.5.5.202404021936 +Save-Time: 4/3/24, 2:30 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -33,6 +33,18 @@ try -times 10 -delay 20000 -command { get-editor Waiting | get-button Replay | click } } +} -finally { + get-view "Execution View" | get-button "Details..." | click + with [get-window "Execution details"] { + try -catch { + } -command { + repeat -times 10 -command { + get-button Next | click + } + } + take-screenshot + close + } } with [get-window "Control Panel - selfQ7 [Recording]"] { From 1a6711add00dc0a17890903963efd3596a2a51f2 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 3 Apr 2024 15:31:41 +0400 Subject: [PATCH 83/91] Adapt test for the old Linux on Jenkins --- .../ControlPanel/Undo_Redo in Control Panel.test | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test b/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test index d229adcf5..cbfc1ee9d 100644 --- a/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test +++ b/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-1330 Id: _ok65YPMBEeCE19s6EOk3LA -Runtime-Version: 2.5.5.202403210919 -Save-Time: 3/25/24, 10:26 PM +Runtime-Version: 2.5.5.202404021936 +Save-Time: 4/3/24, 3:31 PM Tags: selfAUT, ControlPanel, UndoRedo Testcase-Type: ecl @@ -49,7 +49,7 @@ with [get-editor "Test scenario"] { } // EOL in the rawValue depends on windowing system! Rich Ubuntu and MacOS do not add an extra EOL get-window "Control Panel.*" | get-editbox | get-property rawValue - | equals "wait 200\n" | verify-true + | equals "wait 200\\n" | verify-true with [get-window "Control Panel.*"] { get-editbox | set-text-offset 8 0 get-button Stop | click @@ -60,7 +60,7 @@ with [get-window "Control Panel.*" | get-editbox] { key-type q } get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7" | get-text-viewer | get-property text - | equals "wait 200\n" + | equals "wait 200\\n" + "q" | verify-true with [get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7" | get-editbox] { @@ -69,7 +69,7 @@ with [get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7" | get-edit set-text-offset 8 0 } get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7" | get-editbox | get-property rawValue - | equals "wait 200" | verify-true + | equals "wait 200\\n" | verify-true with [get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7" | get-editbox] { set-text-offset 8 0 key-type "M1+y" From bc3a2c34e3117bd3d9f4df088a438054515ba320 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 3 Apr 2024 21:40:02 +0400 Subject: [PATCH 84/91] Stabilize tests --- .../ControlPanel/TestSaveAsFromControlPanel.test | 9 +++++---- .../Encrypt passwords during test recording.test | 8 ++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/ControlPanel/TestSaveAsFromControlPanel.test b/rcpttTests/ECL_IDE_module/ControlPanel/TestSaveAsFromControlPanel.test index ea51d205e..8aacec8cd 100644 --- a/rcpttTests/ECL_IDE_module/ControlPanel/TestSaveAsFromControlPanel.test +++ b/rcpttTests/ECL_IDE_module/ControlPanel/TestSaveAsFromControlPanel.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _fHHUcPL8EeCE19s6EOk3LA -Runtime-Version: 1.5.0.201407211318 -Save-Time: 7/25/14 2:00 PM +Runtime-Version: 2.5.5.202404021936 +Save-Time: 4/3/24, 9:38 PM Tags: selfAUT, ControlPanel Testcase-Type: ecl @@ -38,8 +38,9 @@ Entry-Name: .content get-view "Test Explorer" | get-tree | select "TestQ7Prj/Test scenario" | double-click -nowait get-editor "Test scenario" | get-button Record | click -//wait 400 -get-window "Control Panel.*" | get-button Stop | click +try -times 10 -delay 20000 -command { + get-window "Control Panel.*" | get-button Stop | click +} with [get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7"] { get-editbox | type-text qqq get-button Save | click -arrow diff --git a/rcpttTests/platform_tests/selfAUTTests/Encrypt passwords during test recording.test b/rcpttTests/platform_tests/selfAUTTests/Encrypt passwords during test recording.test index abba41374..a142d80e4 100644 --- a/rcpttTests/platform_tests/selfAUTTests/Encrypt passwords during test recording.test +++ b/rcpttTests/platform_tests/selfAUTTests/Encrypt passwords during test recording.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: https://bugs.eclipse.org/bugs/show_bug.cgi?id=436965 Id: _NuUnkD2QEeSxD9UFwnFS6w -Runtime-Version: 2.2.0.qualifier -Save-Time: 5/23/17 12:20 PM +Runtime-Version: 2.5.5.202404021936 +Save-Time: 4/3/24, 3:39 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -18,6 +18,10 @@ Entry-Name: .content get-view Applications | click get-button "Record a Snippet" | click +try -times 10 -delay 20 -command { + get-window "Control Panel.*" | get-button Stop +} + get-aut "mockupsQ7" | eval { get-button "Open Perspective" | click From 55af2b7214df7de0cb6830d08a6f36f0ab17438f Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Tue, 2 Apr 2024 18:11:31 +0400 Subject: [PATCH 85/91] Do not wait for done jobs scheduled for later. This may happen when job is cancelled and rescheduled immediately. --- .../internal/ui/player/UIJobCollector.java | 71 ++++++++++---- .../META-INF/MANIFEST.MF | 3 +- .../tesla/swt/test/UIJobCollectorTest.java | 96 +++++++++++++++++-- 3 files changed, 141 insertions(+), 29 deletions(-) diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java index 35909368a..c1050fc0a 100644 --- a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java +++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/UIJobCollector.java @@ -112,7 +112,7 @@ private class JobInfo { JobInfo(Job job) { this.job = job; - status = calcJobStatus(job, 0); + this.status = calcJobStatus(job, 0); } synchronized void awake() { @@ -132,6 +132,8 @@ synchronized void done(boolean reschedule) { if (reschedule) { // Job will be rescheduled rescheduleCounter += 1; + } else { + status = calcJobStatus(job, startingTime - System.currentTimeMillis()); } } @@ -145,14 +147,11 @@ synchronized void printJobTimeoutLogEntry() { synchronized boolean isActive() { if (!JobStatus.REQUIRED.equals(status)) { - debug(this + " not required: " + status); return false; } if (sleeping) { long delay = startingTime - System.currentTimeMillis(); boolean rv = delay < TeslaLimits.getJobWaitForDelayedTimeout(); - if (!rv) - debug(this + " is sleeping"); return rv; } @@ -162,11 +161,6 @@ synchronized boolean isActive() { synchronized void scheduled(long delay) { sleeping = false; status = calcJobStatus(job, delay); - debug(this + " is scheduled as " + status); - if (DEBUG) { - Exception e = new Exception("Scheduled " + this); - e.printStackTrace(System.out); - } startingTime = System.currentTimeMillis() + delay; } @@ -179,8 +173,8 @@ public String toString() { case Job.WAITING: state = "WAITING"; break; default: state = "NONE"; break; } - return String.format("%s (%s), %s, active for %d, blocked for %d, running for %d", - job.getClass().getName(), job.getName(), state, System.currentTimeMillis() - startingTime, + return String.format("%s (%s), %s, status: %8s, is active: %b, active for %d, blocked for %d, running for %d", + job.getClass().getName(), job.getName(), state, status, isActive(), System.currentTimeMillis() - startingTime, blocked ? System.currentTimeMillis() - blockedTime : 0, blocked ? 0 : System.currentTimeMillis() - runningTime); } @@ -236,8 +230,8 @@ private JobInfo getOrCreateJobInfo(Job job) { Q7LoggingManager.get("jobs").log(msg, null); ReportManager.appendLogExtra(msg); } - debug("New job: " + rv); jobs.put(job, rv); + event("new", rv); } return rv; } @@ -249,29 +243,39 @@ public void aboutToRun(IJobChangeEvent event) { @Override public void awake(IJobChangeEvent event) { - getOrCreateJobInfo(event.getJob()).awake(); + Job job = event.getJob(); + JobInfo info = getOrCreateJobInfo(job); + info.awake(); + event("awake", info); } @Override public void done(IJobChangeEvent event) { + Job job = event.getJob(); synchronized (jobs) { boolean reschedule = TeslaSWTAccess.getJobEventReSchedule(event) && state; - Job job = event.getJob(); - JobInfo info = getOrCreateJobInfo(job); - info.done(reschedule); if (needDisable && isJoinEmpty()) { disable(); } - if (!reschedule) { + JobInfo info; + if (reschedule) { + info = getOrCreateJobInfo(job); + info.done(reschedule); + event("rescheduled", info); + } else { + info = jobs.get(job); + if (info != null) { + info.done(reschedule); + event("done", info); + } // If job is scheduled immediately after cancellation, its "done" event comes after "scheduled". // We can't remove rescheduled jobs, so we check if it is "truly" done and gone. // If it is not rescheduled in any sense, we no no longer need it. if (job.getState() == Job.NONE) { jobs.remove(job); } - if (!IGNORED_BY_DEFAULT.contains(job.getClass().getName())) - debug("Job event - Done: " + info + ", rescheduled: " + reschedule); } + } } @@ -286,7 +290,7 @@ public void scheduled(IJobChangeEvent event) { } JobInfo jobInfo = getOrCreateJobInfo(event.getJob()); jobInfo.scheduled(event.getDelay()); - debug("Job event - Scheduled: " + jobInfo); + event("scheduled", jobInfo); if (JobStatus.REQUIRED.equals(jobInfo.status)) { if (event.getJob().belongsTo(TeslaSWTAccess.getDecoratorManagerFamily())) { debug("Delay for " + jobInfo + " is nullified as it is a decoration job"); @@ -297,6 +301,7 @@ public void scheduled(IJobChangeEvent event) { JobsManager.getInstance().nulifyTime(event.getJob()); } } + } protected JobStatus calcJobStatus(Job job, long delay) { @@ -382,7 +387,9 @@ public UIJobCollector(IParameters parameters) { @Override public void sleeping(IJobChangeEvent event) { - getOrCreateJobInfo(event.getJob()).sleeping(); + JobInfo info = getOrCreateJobInfo(event.getJob()); + info.sleeping(); + event("sleeping", info); } private static boolean isModal(Shell shell) { @@ -453,6 +460,7 @@ private boolean logReturnResult(boolean result, List realJobs, List jo long curTime = System.currentTimeMillis(); if (result) { lastSuccessTime = curTime; + debug("No active jobs 1"); return result; } for (Job job : jobsInUI) { @@ -464,6 +472,7 @@ private boolean logReturnResult(boolean result, List realJobs, List jo if (lastSuccessTime == 0) { lastSuccessTime = curTime; + debug("Result: " + result); return result; } if (curTime - lastSuccessTime > TeslaLimits.getJobLoggingTimeout()) { @@ -798,6 +807,7 @@ protected boolean isAsyncSupported() { } public void enable() { + debug("enable"); this.state = true; this.needDisable = false; // Add all current jobs to wait queue @@ -831,6 +841,7 @@ private static Object getFamilyAutoBuild() { public void disable() { this.state = false; this.needDisable = false; + debug("disable"); } public void setNeedDisable() { @@ -934,6 +945,7 @@ private boolean isJoinEmpty() { public void clean() { synchronized (jobs) { jobs.clear(); + debug("clean"); } } @@ -950,4 +962,21 @@ private static void report(String message) { debug(message); } } + + private static void check(String message, JobInfo job) { + if (shouldDebug(job.job)) { + debug(String.format("check: %11s: %s", message, job)); + } + } + + + private static void event(String message, JobInfo job) { + if (shouldDebug(job.job)) { + debug(String.format("event: %11s: %s", message, job)); + } + } + + private static boolean shouldDebug(Job job) { + return DEBUG && !IGNORED_BY_DEFAULT.contains(job.getClass().getName()); + } } diff --git a/runtime/tests/org.eclipse.rcptt.tesla.swt.test/META-INF/MANIFEST.MF b/runtime/tests/org.eclipse.rcptt.tesla.swt.test/META-INF/MANIFEST.MF index cce4dd6de..fb8c5cda1 100644 --- a/runtime/tests/org.eclipse.rcptt.tesla.swt.test/META-INF/MANIFEST.MF +++ b/runtime/tests/org.eclipse.rcptt.tesla.swt.test/META-INF/MANIFEST.MF @@ -11,4 +11,5 @@ Require-Bundle: org.junit, com.google.guava, org.eclipse.rcptt.tesla.core;bundle-version="2.4.3", org.eclipse.core.runtime;bundle-version="3.12.0", - org.eclipse.rcptt.tesla.jobs.aspects;bundle-version="2.5.5" + org.eclipse.rcptt.tesla.jobs.aspects;bundle-version="2.5.5", + org.eclipse.core.resources diff --git a/runtime/tests/org.eclipse.rcptt.tesla.swt.test/src/org/eclipse/rcptt/tesla/swt/test/UIJobCollectorTest.java b/runtime/tests/org.eclipse.rcptt.tesla.swt.test/src/org/eclipse/rcptt/tesla/swt/test/UIJobCollectorTest.java index 01452016f..ed7c747ee 100644 --- a/runtime/tests/org.eclipse.rcptt.tesla.swt.test/src/org/eclipse/rcptt/tesla/swt/test/UIJobCollectorTest.java +++ b/runtime/tests/org.eclipse.rcptt.tesla.swt.test/src/org/eclipse/rcptt/tesla/swt/test/UIJobCollectorTest.java @@ -14,10 +14,17 @@ import java.util.Objects; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; +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.ICoreRunnable; +import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.IJobChangeEvent; import org.eclipse.core.runtime.jobs.IJobChangeListener; import org.eclipse.core.runtime.jobs.IJobManager; @@ -29,6 +36,7 @@ import org.eclipse.swt.widgets.Display; import org.junit.After; import org.junit.Assert; +import org.junit.Assume; import org.junit.Before; import org.junit.Test; import org.junit.Ignore; @@ -73,16 +81,31 @@ public class UIJobCollectorTest { } debug("Busyloop - end"); }); - + + private final Job rescheduling = new Job("rescheduling") { + protected IStatus run(IProgressMonitor monitor) { + rescheduling.schedule(10000); + return Status.OK_STATUS; + } + }; + { + rescheduling.setPriority(Job.INTERACTIVE); sleepingJob.setPriority(Job.INTERACTIVE); oscillatingJob.setPriority(Job.INTERACTIVE); } @Before - public void waitForAllJobs() throws InterruptedException { + public void waitForAllJobs() throws InterruptedException, CoreException { + rescheduling.cancel(); + sleepingJob.cancel(); + oscillatingJob.cancel(); + IWorkspace workspace = ResourcesPlugin.getWorkspace(); + IWorkspaceDescription d = workspace.getDescription(); + d.setAutoBuilding(false); + workspace.setDescription(d); Display display = Display.getCurrent(); - while (display.readAndDispatch()) { + while (display != null && display.readAndDispatch()) { } UIJobCollector subject = new UIJobCollector(); MANAGER.addJobChangeListener(subject); @@ -139,8 +162,7 @@ public void stepMode() throws InterruptedException { Thread.sleep(parameters.stepModeStepInterval + schedulingTolerance); Assert.assertTrue("Should step after step interval", isEmpty(subject)); } - - @Ignore("https://bugs.eclipse.org/bugs/show_bug.cgi?id=550738") + @Test public void waitSecondRunAfterReschedule() throws InterruptedException { Parameters parameters = new Parameters(); @@ -148,7 +170,7 @@ public void waitSecondRunAfterReschedule() throws InterruptedException { UIJobCollector subject = new UIJobCollector(parameters); prepare(subject); Job job = busyLoop; - for (int i = 0; i < 1000; i++) { + for (int i = 0; i < 10; i++) { final int attempt = i; Assert.assertTrue(shutdown(job, 10000)); join(subject, 10000); @@ -183,6 +205,7 @@ public void done(IJobChangeEvent event) { job.cancel(); job.schedule(); completedOnce.await(); + Thread.sleep(500); boolean result = isEmpty(subject); Assert.assertFalse("Should not step immediately", result); Assert.assertNotEquals(Job.NONE, job.getState()); @@ -192,6 +215,63 @@ public void done(IJobChangeEvent event) { } } + @Test + public void doNotWaitForJobsRescheduledInFuture() throws InterruptedException { + Parameters parameters = new Parameters(); + parameters.timeout = 60000; + parameters.stepModeTimeout = 120000; + UIJobCollector subject = new UIJobCollector(parameters); + prepare(subject); + Assert.assertTrue(isEmpty(subject)); + rescheduling.schedule(0); + long start = System.currentTimeMillis(); + rescheduling.join(); + Thread.sleep(500); + Assert.assertTrue(isEmpty(subject)); + Assert.assertTrue(System.currentTimeMillis() < start + 1000); + } + + @Test + public void doNotWaitForPrescheduledRescheduledInFuture() throws InterruptedException { + Parameters parameters = new Parameters(); + parameters.timeout = 60000; + parameters.stepModeTimeout = 120000; + UIJobCollector subject = new UIJobCollector(parameters); + prepare(subject); + subject.disable(); + addListener(rescheduling, new JobChangeAdapter() { + @Override + public void done(IJobChangeEvent event) { + subject.enable(); + }}); + rescheduling.schedule(100); + Thread.sleep(50); + rescheduling.join(); + Thread.sleep(500); + Assert.assertTrue(isEmpty(subject)); + } + + @Test + public void doNotWaitForCancelledScheduledLater() throws InterruptedException { + Parameters parameters = new Parameters(); + parameters.timeout = 60000; + parameters.stepModeTimeout = 120000; + UIJobCollector subject = new UIJobCollector(parameters); + prepare(subject); + subject.disable(); + addListener(rescheduling, new JobChangeAdapter() { + @Override + public void done(IJobChangeEvent event) { + subject.enable(); + }}); + rescheduling.schedule(10000); + rescheduling.cancel(); + rescheduling.schedule(10000); + Thread.sleep(500); + Assert.assertTrue(isEmpty(subject)); + } + + private boolean shutdown(Job job, int timeoutInSeconds) throws InterruptedException { long stop = System.currentTimeMillis() + timeoutInSeconds * 1000; job.cancel(); @@ -338,13 +418,14 @@ public void respectStepModeTimeout() { @Test public void stepInSyncExec() { + Display display = Display.getCurrent(); + Assume.assumeNotNull(display); Parameters parameters = new Parameters(); parameters.stepModeStartDelay = schedulingTolerance * 3; parameters.stepModeStepInterval = schedulingTolerance; UIJobCollector subject = new UIJobCollector(parameters); addListener(subject); MessageDialog dialog = new MessageDialog(null, "hello", null, "press X", 0, 0, new String[] { "X" }); - Display display = Objects.requireNonNull(Display.getCurrent()); Job closeDialog = Job.create("close dialog", monitor -> { while (!monitor.isCanceled() && dialog.getShell() == null) { try { @@ -378,6 +459,7 @@ public void after() throws IOException { closeJobAfterTest(sleepingJob); closeJobAfterTest(oscillatingJob); closeJobAfterTest(busyLoop); + closeJobAfterTest(rescheduling); closer.close(); } From 9643ee221e992f496220636a5a974b8a28d264db Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Wed, 3 Apr 2024 21:57:35 +0400 Subject: [PATCH 86/91] Do not attempt to dump state if the thread is already interrupted. --- .../internal/launching/aut/BaseAutLaunch.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java index 7f186b925..171a1c246 100644 --- a/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java +++ b/launching/org.eclipse.rcptt.launching/src/org/eclipse/rcptt/internal/launching/aut/BaseAutLaunch.java @@ -953,17 +953,16 @@ private IStatus internalExecute(Command command, long timeout, IProgressMonitor try { long stop = System.currentTimeMillis() + timeout; return computeInNewSession(TimeoutInterruption.forTimeout(monitor, timeout, this), session -> { + ExecutionStatus result; restoreState(session, properties); - try { - Command commandCopy = command; - IProcess process = session.execute(commandCopy); - IStatus processResult = process.waitFor(stop - System.currentTimeMillis(), monitor); - return new ExecutionStatus(processResult); - } finally { - if (monitor == null || !monitor.isCanceled()) { - dumpState(session); - } + Command commandCopy = command; + IProcess process = session.execute(commandCopy); + IStatus processResult = process.waitFor(stop - System.currentTimeMillis(), monitor); + result = new ExecutionStatus(processResult); + if (monitor == null || !monitor.isCanceled()) { + dumpState(session); } + return result; }); } catch (CoreException e) { throw new CoreException(new MultiStatus(PLUGIN_ID, 0, new IStatus[] { ((CoreException) e).getStatus() }, From e5c83cb0ede80b45d28c0172e32d5d63ce7fbd28 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 4 Apr 2024 14:49:35 +0400 Subject: [PATCH 87/91] Ignore yet another extra EOL on old linux in Control Panel --- .../ControlPanel/Undo_Redo in Control Panel.test | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test b/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test index cbfc1ee9d..dc7fa15a1 100644 --- a/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test +++ b/rcpttTests/ECL_IDE_module/ControlPanel/Undo_Redo in Control Panel.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: http://jira4.xored.com/browse/QS-1330 Id: _ok65YPMBEeCE19s6EOk3LA -Runtime-Version: 2.5.5.202404021936 -Save-Time: 4/3/24, 3:31 PM +Runtime-Version: 2.5.5.202404032246 +Save-Time: 4/4/24, 2:30 PM Tags: selfAUT, ControlPanel, UndoRedo Testcase-Type: ecl @@ -76,5 +76,5 @@ with [get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7" | get-edit } get-window "Control Panel - Test scenario (TestQ7Prj) - selfQ7" | get-editbox | get-property rawValue | equals "wait 200\\n" - + "q" | verify-true + + "q\\n" | verify-true ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac-- From 61b11f1148e02fc93c330c54452d14ee9a33726b Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 4 Apr 2024 14:50:12 +0400 Subject: [PATCH 88/91] Try to capture larger screenshot from selfAUT --- .../selfAUTTests/RefreshControlStateInAssertionMode.test | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test index 9771fe4b0..0d0143b33 100644 --- a/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test +++ b/rcpttTests/platform_tests/selfAUTTests/RefreshControlStateInAssertionMode.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _k6AFUGWjEeSAaoCk3UVcKg -Runtime-Version: 2.5.5.202404021936 -Save-Time: 4/3/24, 2:30 PM +Runtime-Version: 2.5.5.202404032246 +Save-Time: 4/4/24, 2:42 PM Testcase-Type: ecl ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac @@ -42,6 +42,7 @@ try -times 10 -delay 20000 -command { get-button Next | click } } + maximize take-screenshot close } From 778c7edbf8ec4dd1828cfa33baeb1da0e192f989 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 4 Apr 2024 14:57:15 +0400 Subject: [PATCH 89/91] Increase delay between steps to stabilize debug stepping --- .../Set Breakpoint In Proc_Step Into_Step Return.test | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Step Return.test b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Step Return.test index b82edd677..556bd02dd 100644 --- a/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Step Return.test +++ b/rcpttTests/ECL_IDE_module/selfAUTTests/debugging/Set Breakpoint In Proc_Step Into_Step Return.test @@ -6,8 +6,8 @@ Element-Type: testcase Element-Version: 3.0 External-Reference: Id: _pLS-0CBTEeOjX5Yww5t2_A -Runtime-Version: 2.5.5.202403150112 -Save-Time: 3/19/24, 10:34 PM +Runtime-Version: 2.5.5.202404032246 +Save-Time: 4/4/24, 2:57 PM Tags: selfAUT, Debug Testcase-Type: ecl @@ -58,8 +58,8 @@ with [get-view Debug | get-tree] { } } get-button "Step Over (F6)" | click -repeat -times 9 -command { - try -times 10 -delay 500 -command { +repeat -times 9 -delay 1000 -command { + try -times 10 -delay 1000 -command { get-button "Step Into (F5)" | click } } From 957ce7c77eba97ac91c91c997d2c73dcff8910f8 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 4 Apr 2024 15:37:01 +0400 Subject: [PATCH 90/91] Render exception stacktrace in HTML report. Previously the report rendered a serialized throwable field, but it was never parsed accurately by EMF. Now the field is transitional and exception is parsed by custom code from ProcessStatusConverter like elsewhere in RCPTT. --- .../internal/core/ProcessStatusConverter.java | 1 + .../html/FullSingleTestHtmlRenderer.java | 26 +++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java index 5c9dc596f..34429818e 100644 --- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java +++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/internal/core/ProcessStatusConverter.java @@ -189,6 +189,7 @@ public static Throwable getThrowable(EclException exception) { Throwable finalResult = result.orElse(new IOException(exception.getClassName() + ": " + exception.getMessage())); copyAttributesFromEObject(exception, finalResult); suppressed.forEach(finalResult::addSuppressed); + exception.setThrowable(finalResult); return finalResult; } diff --git a/launching/org.eclipse.rcptt.reporting.html/src/org/eclipse/rcptt/reporting/html/FullSingleTestHtmlRenderer.java b/launching/org.eclipse.rcptt.reporting.html/src/org/eclipse/rcptt/reporting/html/FullSingleTestHtmlRenderer.java index e6f917a44..0da8c4203 100644 --- a/launching/org.eclipse.rcptt.reporting.html/src/org/eclipse/rcptt/reporting/html/FullSingleTestHtmlRenderer.java +++ b/launching/org.eclipse.rcptt.reporting.html/src/org/eclipse/rcptt/reporting/html/FullSingleTestHtmlRenderer.java @@ -26,10 +26,13 @@ import java.util.Map; import java.util.Objects; +import org.eclipse.core.runtime.ILog; +import org.eclipse.core.runtime.Platform; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.rcptt.ecl.core.EclException; import org.eclipse.rcptt.ecl.core.ProcessStatus; +import org.eclipse.rcptt.ecl.internal.core.ProcessStatusConverter; import org.eclipse.rcptt.reporting.Q7Info; import org.eclipse.rcptt.reporting.core.ReportHelper; import org.eclipse.rcptt.reporting.core.SimpleSeverity; @@ -59,12 +62,14 @@ import com.google.common.collect.Collections2; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; +import com.google.common.html.HtmlEscapers; public class FullSingleTestHtmlRenderer { private final PrintWriter writer; private final NumberFormat durationFormat; private final DateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm"); private final Function imageStorage; + private static final ILog LOG = Platform.getLog(FullSingleTestHtmlRenderer.class); public static final Function HTML_DATUM_TO_MESSAGE = new Function() { @@ -101,7 +106,7 @@ private void renderHeader(int level, String title, String classes) { level += 2; if (level > 6) level = 6; - writer.println(String.format("%s", level, classes, title, level)); + writer.println(String.format("%s", level, classes, escape(title), level)); } public void render(Report report) { @@ -338,7 +343,7 @@ private void renderResult(ProcessStatus result) { } else { writer.println(SimpleSeverity.create(result).toString()); if (!Strings.isNullOrEmpty(result.getMessage())) - writer.println(", message: " + result.getMessage() + "
"); + writer.println(", message: " + escape(result.getMessage()) + "
"); if (result.getException() != null) { openDetails(5, "Exception", ""); renderException(result.getException()); @@ -353,15 +358,20 @@ private void renderResult(ProcessStatus result) { } } + private String escape(String input) { + return HtmlEscapers.htmlEscaper().escape(input); + } + private void renderException(EclException exception) { - Throwable throwable = exception.getThrowable(); - if (throwable == null) { - writer.println(exception.getClassName()+": "+ exception.getMessage() + "
"); - } else { + Throwable throwable = ProcessStatusConverter.getThrowable(exception); + writer.println(escape(exception.getClassName())+": "+ escape(exception.getMessage()) + "
"); writer.println("
");
-			throwable.printStackTrace(writer);
+			try {
+				throwable.printStackTrace(writer);
+			} catch (Exception e) {
+				LOG.error("Failed to parse report exception", e);
+			}
 			writer.println("
"); - } } private void titledRow(String key, String value) { From e55fae7fb2a94dee6aef06c7075ee97fe8c51977 Mon Sep 17 00:00:00 2001 From: Vasili Gulevich Date: Thu, 4 Apr 2024 16:14:55 +0400 Subject: [PATCH 91/91] Fix detection on Justj on Windows. It uses following strange path in eclipse.ini: plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.2.v20240123-0840/jre/bin Slashes are consumed fine by File class, but "bin" directory instead of executable is confusing RCPTT Runner. --- .../org/eclipse/rcptt/runner/util/AUTsManager.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/AUTsManager.java b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/AUTsManager.java index bd776b784..d6d63320f 100644 --- a/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/AUTsManager.java +++ b/runner/org.eclipse.rcptt.runner/src/org/eclipse/rcptt/runner/util/AUTsManager.java @@ -190,17 +190,18 @@ public String addJvmFromIniFile() { } if (!file.exists()) { System.out - .println("Java VM executable from ini file does not exist"); + .println(file + "does not exist"); return null; } - if (!"bin".equals(file.getParentFile().getName())) { - System.out - .println("Unknown file system layout of Java VM from ini file"); - return null; + if ("bin".equals(file.getParentFile().getName())) { + file = file.getParentFile().getParentFile(); + } else if ("bin".equals(file.getName())) { + file = file.getParentFile(); + } else { + file = null; } - file = file.getParentFile().getParentFile(); if (file == null) { System.out .println("Unknown file system layout of Java VM from ini file");