RFR: 8260592: jpackage tests fail when Desktop is not supported
Aleksey Shipilev
shade at openjdk.java.net
Thu Jan 28 22:08:43 UTC 2021
On Thu, 28 Jan 2021 20:13:23 GMT, Alexey Semenyuk <asemenyuk at openjdk.org> wrote:
>> If you run x86 configuration (cross-compiled on x86_64), then many tests would fail with:
>>
>> $ CONF=linux-x86-server-fastdebug make images run-test TEST=tools/jpackage
>> ...
>> can not load libgnomevfs-2.so
>> Exception in thread "main" java.lang.ExceptionInInitializerError
>> Caused by: java.lang.UnsupportedOperationException: Desktop API is not supported on the current platform
>> at java.desktop/java.awt.Desktop.getDesktop(Unknown Source)
>> at com.that/com.that.main.Florence.createInstance(Unknown Source)
>> at com.that/com.that.main.Florence.<clinit>(Unknown Source)
>> Failed to launch JVM
>> java.lang.AssertionError: Expected [0]. Actual [1]: Check command [/home/shade/trunks/jdk/build/linux-x86-server-fastdebug/test-support/jtreg_test_jdk_tools_jpackage/scratch/10/./testMainLauncherIsModular.ed4f638d/output/MainLauncherIsModularAddLauncherTest/bin/ModularAppLauncher](1) exited with 0 code
>>
>> The tests probably need to check `Desktop.isDesktopSupported()`, similarly how they check `GraphicsEnvironment.isHeadless()`.
>>
>> Additional testing:
>> - [x] Linux x86_32 `tools/jpackage` (now pass)
>> - [x] Linux x86_64 `tools/jpackage` (still pass)
>
> test/jdk/tools/jpackage/apps/image/Hello.java line 166:
>
>> 164: }
>> 165:
>> 166: if (!Desktop.isDesktopSupported()) {
>
> Would it make more sense to replace
> `if (GraphicsEnvironment.isHeadless())`
> with
> `if (GraphicsEnvironment.isHeadless() || !Desktop.isDesktopSupported())`
> without need to add another `trace()` call?
I would prefer to have separate messages for "headless" and "desktop capable". I can merge these, if you insist.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2291
More information about the core-libs-dev
mailing list