Uploaded image for project: 'Code Tools'
  1. Code Tools
  2. CODETOOLS-7903948

@build tag does not take --enable-preview into account

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P5 P5
    • None
    • None
    • tools
    • None

      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?

            Unassigned Unassigned
            vpetko Vladimir Petko
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: