Running `make TEST=java/foreign/nested/TestNested.java test` fails in in JDK 21 with JTREG 7.5.1+1 due to the library defined and @build tag that tries to compile NativeTestHelper.java without --enable-preview:
d /home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/scratch/0 && \
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
DESKTOP_SESSION=ubuntu \
DISPLAY=:0 \
GDMSESSION=ubuntu \
GNOME_DESKTOP_SESSION_ID=this-is-deprecated \
GNOME_SHELL_SESSION_MODE=ubuntu \
HOME=/home/vladimirp \
LANG=en_US.UTF-8 \
LC_ALL=C \
PATH=/bin:/usr/bin:/usr/sbin \
TEST_IMAGE_DIR=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/test \
WAYLAND_DISPLAY=wayland-0 \
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg \
XDG_CURRENT_DESKTOP=ubuntu:GNOME \
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop \
XDG_MENU_PREFIX=gnome- \
XDG_RUNTIME_DIR=/run/user/1000 \
XDG_SESSION_CLASS=user \
XDG_SESSION_DESKTOP=ubuntu \
XDG_SESSION_TYPE=wayland \
XMODIFIERS=@im=ibus \
_JVM_DWARF_PATH=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/symbols \
/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/jdk/bin/javac \
-J-Xmx768m \
-J-XX:MaxRAMPercentage=1.5625 \
-J-Dtest.boot.jdk=/usr/lib/jvm/java-21-openjdk-amd64 \
-J-Djava.io.tmpdir=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/tmp \
-J-ea \
-J-esa \
-J-Dtest.vm.opts='-Xmx768m -XX:MaxRAMPercentage=1.5625 -Dtest.boot.jdk=/usr/lib/jvm/java-21-openjdk-amd64 -Djava.io.tmpdir=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/tmp -ea -esa' \
-J-Dtest.tool.vm.opts='-J-Xmx768m -J-XX:MaxRAMPercentage=1.5625 -J-Dtest.boot.jdk=/usr/lib/jvm/java-21-openjdk-amd64 -J-Djava.io.tmpdir=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/tmp -J-ea -J-esa' \
-J-Dtest.compiler.opts= \
-J-Dtest.java.opts= \
-J-Dtest.jdk=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/jdk \
-J-Dcompile.jdk=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/jdk \
-J-Dtest.timeout.factor=4.0 \
-J-Dtest.nativepath=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/test/jdk/jtreg/native \
-J-Dtest.root=/home/vladimirp/git/jdk21u/test/jdk \
-J-Dtest.name=java/foreign/nested/TestNested.java \
-J-Dtest.verbose=Verbose[p=SUMMARY,f=FULL,e=FULL,t=false,m=false] \
-J-Dtest.file=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested/TestNested.java \
-J-Dtest.src=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested \
-J-Dtest.src.path=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested:/home/vladimirp/git/jdk21u/test/jdk/java/foreign:/home/vladimirp/git/jdk21u/test/lib \
-J-Dtest.classes=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign/nested/TestNested.d \
-J-Dtest.class.path=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign/nested/TestNested.d:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/test/lib \
-J-Dtest.class.path.prefix=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/test/lib \
-J-Dtest.enable.preview=true \
-d /home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign \
-sourcepath /home/vladimirp/git/jdk21u/test/jdk/java/foreign:/home/vladimirp/git/jdk21u/test/lib \
-classpath /home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/test/lib:/home/vladimirp/git/jtreg/build/images/jtreg/lib/testng-7.3.0.jar:/home/vladimirp/git/jtreg/build/images/jtreg/lib/guice-5.1.0.jar:/home/vladimirp/git/jtreg/build/images/jtreg/lib/jcommander-1.82.jar /home/vladimirp/git/jdk21u/test/jdk/java/foreign/NativeTestHelper.java
direct:
/home/vladimirp/git/jdk21u/test/jdk/java/foreign/NativeTestHelper.java:25: error: AddressLayout is a preview API and is disabled by default.
import java.lang.foreign.AddressLayout;
...
I have dumped conditions that add --enable-preview tag:
----
runJavac true
!script.disablePreview() true
script.enablePreview() true
libLocnLibLocn(../,src:/home/vladimirp/git/jdk21u/test/jdk/java/foreign,cls:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign,PACKAGE)
libLocn.name ../
libLocn.isTest() false
---
Presence of the named test library prevents adding --enable-preview tag.
The issue can be worked around by using "@compile --release 21 --enable-preview ../NativeTestHelper.java".
Would it be possible to consider some way to specify that the test library needs --enable-preview to compile?
d /home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/scratch/0 && \
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus \
DESKTOP_SESSION=ubuntu \
DISPLAY=:0 \
GDMSESSION=ubuntu \
GNOME_DESKTOP_SESSION_ID=this-is-deprecated \
GNOME_SHELL_SESSION_MODE=ubuntu \
HOME=/home/vladimirp \
LANG=en_US.UTF-8 \
LC_ALL=C \
PATH=/bin:/usr/bin:/usr/sbin \
TEST_IMAGE_DIR=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/test \
WAYLAND_DISPLAY=wayland-0 \
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg \
XDG_CURRENT_DESKTOP=ubuntu:GNOME \
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop \
XDG_MENU_PREFIX=gnome- \
XDG_RUNTIME_DIR=/run/user/1000 \
XDG_SESSION_CLASS=user \
XDG_SESSION_DESKTOP=ubuntu \
XDG_SESSION_TYPE=wayland \
XMODIFIERS=@im=ibus \
_JVM_DWARF_PATH=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/symbols \
/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/jdk/bin/javac \
-J-Xmx768m \
-J-XX:MaxRAMPercentage=1.5625 \
-J-Dtest.boot.jdk=/usr/lib/jvm/java-21-openjdk-amd64 \
-J-Djava.io.tmpdir=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/tmp \
-J-ea \
-J-esa \
-J-Dtest.vm.opts='-Xmx768m -XX:MaxRAMPercentage=1.5625 -Dtest.boot.jdk=/usr/lib/jvm/java-21-openjdk-amd64 -Djava.io.tmpdir=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/tmp -ea -esa' \
-J-Dtest.tool.vm.opts='-J-Xmx768m -J-XX:MaxRAMPercentage=1.5625 -J-Dtest.boot.jdk=/usr/lib/jvm/java-21-openjdk-amd64 -J-Djava.io.tmpdir=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/tmp -J-ea -J-esa' \
-J-Dtest.compiler.opts= \
-J-Dtest.java.opts= \
-J-Dtest.jdk=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/jdk \
-J-Dcompile.jdk=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/jdk \
-J-Dtest.timeout.factor=4.0 \
-J-Dtest.nativepath=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/images/test/jdk/jtreg/native \
-J-Dtest.root=/home/vladimirp/git/jdk21u/test/jdk \
-J-Dtest.name=java/foreign/nested/TestNested.java \
-J-Dtest.verbose=Verbose[p=SUMMARY,f=FULL,e=FULL,t=false,m=false] \
-J-Dtest.file=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested/TestNested.java \
-J-Dtest.src=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested \
-J-Dtest.src.path=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested:/home/vladimirp/git/jdk21u/test/jdk/java/foreign:/home/vladimirp/git/jdk21u/test/lib \
-J-Dtest.classes=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign/nested/TestNested.d \
-J-Dtest.class.path=/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign/nested/TestNested.d:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/test/lib \
-J-Dtest.class.path.prefix=/home/vladimirp/git/jdk21u/test/jdk/java/foreign/nested:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/test/lib \
-J-Dtest.enable.preview=true \
-d /home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign \
-sourcepath /home/vladimirp/git/jdk21u/test/jdk/java/foreign:/home/vladimirp/git/jdk21u/test/lib \
-classpath /home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/test/lib:/home/vladimirp/git/jtreg/build/images/jtreg/lib/testng-7.3.0.jar:/home/vladimirp/git/jtreg/build/images/jtreg/lib/guice-5.1.0.jar:/home/vladimirp/git/jtreg/build/images/jtreg/lib/jcommander-1.82.jar /home/vladimirp/git/jdk21u/test/jdk/java/foreign/NativeTestHelper.java
direct:
/home/vladimirp/git/jdk21u/test/jdk/java/foreign/NativeTestHelper.java:25: error: AddressLayout is a preview API and is disabled by default.
import java.lang.foreign.AddressLayout;
...
I have dumped conditions that add --enable-preview tag:
----
runJavac true
!script.disablePreview() true
script.enablePreview() true
libLocnLibLocn(../,src:/home/vladimirp/git/jdk21u/test/jdk/java/foreign,cls:/home/vladimirp/git/jdk21u/build/linux-x86_64-server-release/test-support/jtreg_test_jdk_java_foreign_nested_TestNested_java/classes/0/java/foreign,PACKAGE)
libLocn.name ../
libLocn.isTest() false
---
Presence of the named test library prevents adding --enable-preview tag.
The issue can be worked around by using "@compile --release 21 --enable-preview ../NativeTestHelper.java".
Would it be possible to consider some way to specify that the test library needs --enable-preview to compile?
- relates to
-
CODETOOLS-7903882 LIBRARY.properties control of compilation options
-
- In Progress
-