Skip to content

SWT tests not executed in I20250325-1800 #1944

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
iloveeclipse opened this issue Mar 26, 2025 · 31 comments · Fixed by eclipse-platform/eclipse.platform.ui#2862
Closed

SWT tests not executed in I20250325-1800 #1944

iloveeclipse opened this issue Mar 26, 2025 · 31 comments · Fixed by eclipse-platform/eclipse.platform.ui#2862
Labels
bug Something isn't working regression Something that used to work
Milestone

Comments

@iloveeclipse
Copy link
Member

Most likely regression from #1638

See https://download.eclipse.org/eclipse/downloads/drops4/I20250325-1800/testResults.php

The tests page says:

Image

The p2 director logs say

Installing org.eclipse.swt.tests 3.107.800.v20250325-0759.
Installing org.eclipse.test 3.6.200.v20241031-0735.
Installing org.eclipse.ant.optional.junit 3.3.400.v20230714-1309.
Installing org.eclipse.test.performance 3.21.100.v20250311-0829.
Installing org.eclipse.test.performance.win32 3.1.600.v20230714-1309.
Cannot complete the install because one or more required items could not be found.Installation failed.

!SESSION 2025-03-25 22:48:11.695 -----------------------------------------------
	Software being installed: Eclipse SWT Tests 3.107.800.v20250325-0759 (org.eclipse.swt.tests 3.107.800.v20250325-0759)eclipse.buildId=4.36.0.I20250325-1800
java.version=21.0.6
java.vendor=Eclipse Adoptium

BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
	Missing requirement: Eclipse SWT Tests 3.107.800.v20250325-0759 (org.eclipse.swt.tests 3.107.800.v20250325-0759) requires 'org.eclipse.equinox.p2.iu; org.eclipse.swt.svg 0.0.0' but it could not be found
There were errors. See log file: /home/jenkins/agent/workspace/AutomatedTests/ep436I-unit-linux-x86_64-java21/workarea/I20250325-1800/eclipse-testing/test-eclipse/eclipse/configuration/1742942891803.log
Framework arguments:  -application org.eclipse.equinox.p2.director -flavor tooling -installIUs org.eclipse.swt.tests,org.eclipse.test,org.eclipse.ant.optional.junit,org.eclipse.test.performance,org.eclipse.test.performance.win32 -repository file:/home/jenkins/agent/workspace/AutomatedTests/ep436I-unit-linux-x86_64-java21/workarea/I20250325-1800/eclipse-testing/testRepo
Command-line arguments:  -application org.eclipse.equinox.p2.director -consoleLog -debug -flavor tooling -installIUs org.eclipse.swt.tests,org.eclipse.test,org.eclipse.ant.optional.junit,org.eclipse.test.performance,org.eclipse.test.performance.win32 -repository file:/home/jenkins/agent/workspace/AutomatedTests/ep436I-unit-linux-x86_64-java21/workarea/I20250325-1800/eclipse-testing/testRepo

!ENTRY org.eclipse.equinox.p2.director 4 10053 2025-03-25 22:48:16.133
!MESSAGE Cannot complete the install because one or more required items could not be found.
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2025-03-25 22:48:16.133
!MESSAGE Software being installed: Eclipse SWT Tests 3.107.800.v20250325-0759 (org.eclipse.swt.tests 3.107.800.v20250325-0759)
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2025-03-25 22:48:16.133
!MESSAGE Missing requirement: Eclipse SWT Tests 3.107.800.v20250325-0759 (org.eclipse.swt.tests 3.107.800.v20250325-0759) requires 'org.eclipse.equinox.p2.iu; org.eclipse.swt.svg 0.0.0' but it could not be found

@iloveeclipse iloveeclipse added bug Something isn't working regression Something that used to work labels Mar 26, 2025
@iloveeclipse iloveeclipse added this to the 4.36 M1 milestone Mar 26, 2025
@HeikoKlare
Copy link
Contributor

From my understanding, the issue is that the org.eclipse.swt.tests bundle now requires the new SVG fragment (via p2.inf: https://github.com/eclipse-platform/eclipse.platform.swt/blob/master/tests/org.eclipse.swt.tests/META-INF/p2.inf).

The Maven builds of SWT succeed as the fragment is installed during the build and thus available. In I-Build tests, all dependencies need to be provided via the SDK or SDK Tests feature (if I am not mistaken). Obviously, the SVG fragment is not contained in any of them yet.

Since we need to add the fragment to the platform feature soon anyway (as we want to use SVGs in platform), I propose to directly add the fragment to the org.eclipse.e4.rcp feature, in which also the other SWT dependencies are defined. Actually, the according PR is already there:

What do you think?

@laeubi
Copy link
Contributor

laeubi commented Mar 26, 2025

Since we need to add the fragment to the platform feature soon anyway (as we want to use SVGs in platform), I propose to directly add the fragment to the org.eclipse.e4.rcp feature, in which also the other SWT dependencies are defined.

I think this is not the right approach, neither p2.inf nor adding it to a feature, this will make the fragment mandatory in all cases while it was promised to be optional and technically there can be other implementations.

Instead the fragment should provide a capability, and bundles that require the SVG rendering should declare a requirement see here.

I already did this for the transformer feature:

that way P2/OSGi will require to select at laest one provider.

@HeikoKlare
Copy link
Contributor

The fragment remains optional when using plain SWT. But for the platform itself it cannot be optional because as soon as we start replacing PNG with SVG icon paths, you will of course need an SVG renderer to process them.

@laeubi
Copy link
Contributor

laeubi commented Mar 26, 2025

But for the platform itself it cannot be optional because as soon as we start replacing PNG with SVG icon paths, you will of course need an SVG renderer to process them.

And then these bundles that contain SVGs could simply add the requirement to the SVG Rendering feature. This will then also work outside of Eclipse Managed builds.

@HeikoKlare
Copy link
Contributor

And what would be the benefit of requiring every bundle using SVGs to add that requirement rather than just adding it as a dependency to the feature containing those bundles? And wouldn't it still be necessary to add the fragment to a feature? How should the fragment be consumed by the build if it is not specified anywhere?

@HannesWell
Copy link
Member

Instead the fragment should provide a capability, and bundles that require the SVG rendering should declare a requirement see here.

Then svg support wouldn't be optional really anymore. If the fragment is needed or not is depends on the consumer/user. And adding that capability for all bundles that contain SVGs will probably be very cumbersome on the long run.
My guess is that most consumers include SWT and the native fragments through the feature any ways and are happy if SVG support is available. All the hoops we jumped through to make it optional is more because we want to keep SWT formally at zero dependencies, but as far as I can tell this is actually only relevant if one handles the the swt-jar manually and just adds it manually to the classpath.
JSVG could also become a optional dependency of o.e.swt and would work or not work the same as it does with the fragment approach, but maybe it's interchanged in the future. For example there are already suggestions for native alternatives to JSVG:

To make a long story short, I think including the swt.svg fragment into the feature now is a solution that's fine for now.

Instead the fragment should provide a capability, and bundles that require the SVG rendering should declare a requirement see here.

That being said, that approach would be good for the o.e.swt host bundle to require a native fragment at runtime, but this will require a change in Tycho and P2 similar to eclipse-tycho/tycho#4743.
Because the requirements are satisfied in the same wiring if both come from a host bundle and a fragment no wires are actually created and therefore PDE/Tycho cannot traverse them when collecting (transitive) dependencies.

@laeubi
Copy link
Contributor

laeubi commented Mar 26, 2025

And what would be the benefit of requiring every bundle using SVGs to add that requirement rather than just adding it as a dependency to the feature containing those bundles?

The benefit would be that it works everywhere, even if the feature is not used. Making a bundle "silently fail" (like here) so the someone needs to find out what exactly is missing is a bad approach, and requirements are the OSGi way to solve this problem.

And wouldn't it still be necessary to add the fragment to a feature?

Every requirement is added to a launch / product automatically, so if everything is done in a proper way (what sadly is not always the case in Eclipse Platform) one would never need any features, you would just add your application bundle (and optional things like a log provider) and everything else would be pulled in automatically.

How should the fragment be consumed by the build if it is not specified anywhere?

See previous comment. It is not required to explicitly name bundles you only need to specify requirements (e.g. a package, a java version or similar).

@laeubi
Copy link
Contributor

laeubi commented Mar 26, 2025

And adding that capability for all bundles that contain SVGs will probably be very cumbersome on the long run.

I disagree here. This only needs to be done once and will prevent us from another part where Eclipse Bundles do not behave "correct", e.g. in Tycho I use P2 and it is horrible nightmare to find out what is really "needed" and if something is missing it simply badly fails. Another example is the compatibility fragment in PDE, without it it just fails completely.

@merks
Copy link
Contributor

merks commented Mar 26, 2025

PDE doesn't provide support for adding a dependency to a fragment:

Image

Even the package from that fragment doesn't seem visible/available:

Image

@laeubi
Copy link
Contributor

laeubi commented Mar 26, 2025

PDE doesn't provide support for adding a dependency to a fragment

Please read https://blog.osgi.org/2015/12/using-requirements-and-capabilities.html as mentioned above, no one ever have suggested to require the bundle (what is not possible for fragments) or a package (what is possible but PDE only allow it if the host is marked as extensible API).

@HeikoKlare
Copy link
Contributor

The benefit would be that it works everywhere, even if the feature is not used. Making a bundle "silently fail" (like here) so the someone needs to find out what exactly is missing is a bad approach, and requirements are the OSGi way to solve this problem.

Okay, got that. That's a valid point, thanks! That would be an argument for me to add the provided/required capabilities for the productive usage of SVGs. And that should work for the SWT tests bundle as well, shouldn't it? I will give it a try.

Every requirement is added to a launch / product automatically, so if everything is done in a proper way (what sadly is not always the case in Eclipse Platform) one would never need any features, you would just add your application bundle (and optional things like a log provider) and everything else would be pulled in automatically.

I understand the point, but it's not a generic approach/goal as this is not how modular, extensible products work, but that's out of scope of this discussion anyway.

@laeubi
Copy link
Contributor

laeubi commented Mar 26, 2025

And that should work for the SWT tests bundle as well, shouldn't it? I will give it a try.

I know that sometimes the test runtime is a bit special, I think the main problem here is that we assume that everything a test needs is also part of the Eclipse we build, so if nothing in Eclipse itself requires the SVG feature it might be missing or we can add some extra requirement @akurtakov ?

By the way if we assume SVGs are only created through JFaceImageDescriptors, it might be sufficient to add the requirement to the JFace bundle (for the platform use-case).

@HeikoKlare
Copy link
Contributor

I think the main problem here is that we assume that everything a test needs is also part of the Eclipse we build, so if nothing in Eclipse itself requires the SVG feature it might be missing

From my understanding, the I-Build test run uses a product based on the SDK test feature, which contains the SWT tests bundle, which in turn would have a requirement to the SVG capabitiliy.

@laeubi
Copy link
Contributor

laeubi commented Mar 26, 2025

I think the main problem here is that we assume that everything a test needs is also part of the Eclipse we build, so if nothing in Eclipse itself requires the SVG feature it might be missing

From my understanding, the I-Build test run uses a product based on the SDK test feature, which contains the SWT tests bundle, which in turn would have a requirement to the SVG capabitiliy.

That's why I'm a bit confused, the error explicitly states that there is a requirement (through the p2.inf):

Eclipse SWT Tests 3.107.800.v20250325-0759 (org.eclipse.swt.tests 3.107.800.v20250325-0759) requires 'org.eclipse.equinox.p2.iu; org.eclipse.swt.svg 0.0.0' but it could not be found

Another reason might be that it is not part of the I-Builds repo....

@akurtakov
Copy link
Member

It is part of I-build repo https://www.eclipse.org/downloads/download.php?file=/eclipse/updates/4.36-I-builds/I20250325-1800/plugins/org.eclipse.swt.svg_3.130.0.v20250325-0759.jar , most likely it's included thanks to the swt.test bundle being published in it and it requiring it. Why the test framework doesn't find it remains to be found.

HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Mar 26, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment on the classpath. With this change, requiring SVG
support can be defined explicitly via a required capability that is
provided by the according SWT fragment.

Contributes to
eclipse-platform#1944
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Mar 26, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment providing a rasterizer on the classpath. With this
change, requiring SVG support can be defined explicitly via a required
capability that is provided by the according SWT fragment.

Contributes to
eclipse-platform#1944
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Mar 26, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment providing a rasterizer on the classpath. With this
change, requiring SVG support can be defined explicitly via a required
capability that is provided by the according SWT fragment.

Contributes to
eclipse-platform#1944
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Mar 26, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment providing a rasterizer on the classpath. With this
change, requiring SVG support can be defined explicitly via a required
capability that is provided by the according SWT fragment.

Contributes to
eclipse-platform#1944
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Mar 26, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment providing a rasterizer on the classpath. With this
change, requiring SVG support can be defined explicitly via a required
capability that is provided by the according SWT fragment.

Contributes to
eclipse-platform#1944
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Mar 26, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment providing a rasterizer on the classpath. With this
change, requiring SVG support can be defined explicitly via a required
capability that is provided by the according SWT fragment.

Contributes to
eclipse-platform#1944
HeikoKlare added a commit that referenced this issue Mar 26, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment providing a rasterizer on the classpath. With this
change, requiring SVG support can be defined explicitly via a required
capability that is provided by the according SWT fragment.

Contributes to
#1944
@HeikoKlare
Copy link
Contributor

We have just merged

Hopefully that fixes this issue. I propose to just wait for today's I-Build and will check its result.

@iloveeclipse
Copy link
Member Author

iloveeclipse commented Mar 27, 2025

Hopefully that fixes this issue.

Unfortunately not.
https://download.eclipse.org/eclipse/downloads/drops4/I20250326-1800/testResults.php


!ENTRY org.eclipse.equinox.p2.director 4 10053 2025-03-26 22:56:43.923
!MESSAGE Cannot complete the install because one or more required items could not be found.
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2025-03-26 22:56:43.923
!MESSAGE Software being installed: Eclipse SWT Tests 3.107.800.v20250326-1546 (org.eclipse.swt.tests 3.107.800.v20250326-1546)
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2025-03-26 22:56:43.923
!MESSAGE Missing requirement: Eclipse SWT Tests 3.107.800.v20250326-1546 (org.eclipse.swt.tests 3.107.800.v20250326-1546) requires 'eclipse.swt; (image.format=svg)' but it could not be found
Cannot complete the install because one or more required items could not be found.
	Software being installed: Eclipse SWT Tests 3.107.800.v20250326-1546 (org.eclipse.swt.tests 3.107.800.v20250326-1546)
	Missing requirement: Eclipse SWT Tests 3.107.800.v20250326-1546 (org.eclipse.swt.tests 3.107.800.v20250326-1546) requires 'eclipse.swt; (image.format=svg)' but it could not be found
There were errors. See log file: C:\Users\genie.releng\workspace\AutomatedTests\ep436I-unit-win32-x86_64-java21\workarea\I20250326-1800\eclipse-testing\test-eclipse\eclipse\configuration\1743029797191.log

@laeubi
Copy link
Contributor

laeubi commented Mar 27, 2025

As mentioned yesterday by @akurtakov the bundle is in the ibuilds repo, but for some reason the install is not finding it, so it might be that it uses a different source for building the test-runtime?

@HeikoKlare
Copy link
Contributor

The SVG fragment is not present in any of the deliverables at the download page (SDK, runtime etc.): https://download.eclipse.org/eclipse/downloads/drops4/I20250326-1800/

In particular, it is not included in the Eclipse installation used for running I-Build tests:
https://download.eclipse.org/eclipse/downloads/drops4/I20250326-1800/download.php?dropFile=eclipse-Automated-Tests-I20250326-1800.zip

That why the fragment obviously cannot be found.

I will have a look how those packages are generated. I guess that no on in the SDK has a dependency to the SVG fragment (no feature, no bundle), so it's not included.

@akurtakov
Copy link
Member

https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/tree/master/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository defines the Platform and SDK products and the fragment should be included there (either directly or indirectly via some feature/bundle dependency.)
One can also try to add extraIU for the tests specifically (like done in https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/blob/6fb609f562ddb855df4342f50902abafa6defe8f/production/testScripts/configuration/sdk.tests/testScripts/test.xml#L40 ) but it's best to not go that path as it will become redundant when anything starts to actually require it. Furthermore, this creates extra deviation between I-build and maven build thus enhancing the mess.

@HeikoKlare
Copy link
Contributor

Here is the specification for the platform runtime assembly, also referencing the IUs to be included:
https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/blob/6fb609f562ddb855df4342f50902abafa6defe8f/eclipse.platform.releng.tychoeclipsebuilder/repos/platformrepo.xml#L8-L28

It simply includes the org.eclipse.platform feature, which does not contain the SVG fragment because we did not add it to any feature yet.
So there are some options:

  • Explicitly list the SVG fragment in some build-specific instructions (like the mentioned script)
  • Add the SVG fragment to the org.eclipse.e4.rcp feature as discussed before, since bundles in that feature will eventually require the fragment anyway
  • Start using SVGs in Platform UI

The first is obviously bad. I would be in favor of the second, as the thirds introduces some implicitly necessity of using SVGs in platform to make tests run again.

@akurtakov
Copy link
Member

I vote for the second option.

@HeikoKlare
Copy link
Contributor

I have created an according PR (extracted from the original one that may be extended with other changes):

@laeubi
Copy link
Contributor

laeubi commented Mar 27, 2025

By the way I think this is actually an issue of the aggregator not of SWT itself.

SWT itself can perfectly run the tests (in Jenkins and Github on all supported Archs).

So there is some hope that

will fix the problem of missing included feature, as it is already part of the ibuild repository as well.

@HeikoKlare
Copy link
Contributor

It's definitely an aggregator issue, as we can see from the linked artifacts and scripts. And I am also quite optimistic that adding the fragment to the test feature will resolve the issue, as the test product is defined based on exactly that feature, so it would be strange if the generated product will not contain it.

The question is whether productive use of the fragment will work just based on capabilities and without adding it to a fragment, as currently I see no difference in how the test product and the SDK or runtime products are built. In case there is no difference in how they are built, we will need to add the fragment to the e4.rcp feature once we start using SVGs in production bundles, which would then just be what we wanted to do from the beginning. Let's see :-)

Michael5601 pushed a commit to Michael5601/eclipse.platform.swt that referenced this issue Mar 27, 2025
Currently, requiring an SVG rasterizer needs manual placement of an
according fragment providing a rasterizer on the classpath. With this
change, requiring SVG support can be defined explicitly via a required
capability that is provided by the according SWT fragment.

Contributes to
eclipse-platform#1944
@laeubi
Copy link
Contributor

laeubi commented Mar 27, 2025

The question is whether productive use of the fragment will work just based on capabilities and without adding it to a fragment feature

Out of curiosity I did this:

> mvn org.eclipse.tycho:tycho-p2-director-plugin:director -Ddestination=dump -Drepositories=https://download.eclipse.org/eclipse/updates/4.36-I-builds/ -DinstallIUs=org.eclipse.swt.tests

[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- tycho-p2-director:4.0.12:director (default-cli) @ standalone-pom ---

...

[INFO] [default-cli] Operation completed in 19380 ms.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  22.420 s
[INFO] Finished at: 2025-03-27T17:19:33+01:00
[INFO] ------------------------------------------------------------------------

> ls -1 dump/plugins/ | grep org.eclipse.swt
org.eclipse.swt_3.130.0.v20250326-1931.jar
org.eclipse.swt.gtk.linux.x86_64_3.130.0.v20250326-1931.jar
org.eclipse.swt.svg_3.130.0.v20250326-1546.jar
org.eclipse.swt.tests_3.107.800.v20250326-1546

> ls -1 dump/plugins/ | grep jsvg
com.github.weisj.jsvg_1.7.1.jar

So as mentioned earlier, I don't see a reason why it would not work to install given that the director has access to a complete repository like the i-builds repo.

as currently I see no difference in how the test product and the SDK or runtime products are built

It does not depend much on how they are build but more what is given as the build input, as shown in my example it works with the i-build repository as expected. But the failure we are seeing is in the execution of the individual test machines where things might vary (for history or technical or organizational reasons).

@laeubi
Copy link
Contributor

laeubi commented Mar 27, 2025

Next I tried this minimal product:

<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>

<product uid="testme" version="1.0.0.qualifier" type="bundles" includeLaunchers="true" autoIncludeRequirements="true">

   <launcherArgs>
      <programArgs>-console</programArgs>
      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true</vmArgs>
      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
   </launcherArgs>

   <plugins>
      <plugin id="org.eclipse.equinox.console"/>
      <plugin id="org.eclipse.swt.tests"/>
   </plugins>

   <configurations>
      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
   </configurations>

</product>

and it shows

____________________________
Welcome to Apache Felix Gogo

g! ss org.eclipse.swt
"Framework is launched."


id	State       Bundle
96	ACTIVE      org.eclipse.swt_3.130.0.qualifier
121	INSTALLED   org.eclipse.swt.svg_3.130.0.qualifier
123	INSTALLED   org.eclipse.swt.tests_3.107.800.qualifier
g! ss jsvg
"Framework is launched."


id	State       Bundle
129	RESOLVED    com.github.weisj.jsvg_1.7.1
g! 

again everything is included as expected.

@HeikoKlare
Copy link
Contributor

HeikoKlare commented Mar 29, 2025

Adding SVG fragment to SDK tests feature (eclipse-platform/eclipse.platform.releng.aggregator#2948) basically solved the issue. Only the transitive dependency to the JSVG bundle was not added:

!MESSAGE Missing requirement: SWT SVG Rendering Support 3.130.0.v20250327-2110 (org.eclipse.swt.svg 3.130.0.v20250327-2110) requires 'java.package; com.github.weisj.jsvg [1.7.0,2.0.0)' but it could not be found

Will finally be fixed via:

@HeikoKlare
Copy link
Contributor

With latest changes, the SWT tests are executed again. Still, the SVG-related tests are failing:

Seems like they don't simply execute the SDK test product but just execute a test bundle against an ordinary SDK product (or the like), which does not contain that fragment yet.

Might be that we can extend the tooling, e.g., adding the fragment as an extra IU here in the Ant script (https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/blob/bae051ba858018dd4d76cf7a4fe0d544c87a390f/production/testScripts/configuration/sdk.tests/testScripts/test.xml#L40, proposed by @akurtakov).

Since the test-specific I-Build tooling is obviously "incomplete" anyway, we could simply ensure that the fragment is contained in runtime/SDK products to avoid spending further efforts here, but that proposal is currently blocked:

@laeubi
Copy link
Contributor

laeubi commented Mar 31, 2025

Since the test-specific I-Build tooling is obviously "incomplete" anyway, we could simply ensure that the fragment is contained in runtime/SDK products to avoid spending further efforts here, but that proposal is currently blocked

I only object to add it to a fragment used for different purpose. I also don't see that we should do such things to "fix" broken/incomplete testing framework.

As mentioned elsewhere, for example jface bundle seem to be a good candidate to require the svg capability if we assume that images of SVGs are most likely created through ImageDescriptors.

In any case adding an extra IU seems not that bad, I'm just not sure it will help, as already demonstrated (and shown by the failure) the things are included already, so there must be something else wrong.

My suggestion would be to enhance the SWT test to check some preconditions, and possibly give some better feedback this could include:

  1. Is the SVG fragment installed in the system (if not list all bundles found)
  2. Is it attached to its host (if not check what requirements have no matching provider)
  3. Can classes be loaded through the svg host bundle

Currently its a bit hard whats really missing as we are flying blind.

@HeikoKlare
Copy link
Contributor

Closing this one as the original issue has been resolved and the follow-up issue (specific failing tests) is documented separately:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working regression Something that used to work
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants