/
githubmirror
/
jtreg
Обзор
Документация
Войти
/
githubmirror
/
jtreg
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/nativepath/TestNativePath.gmk
176 строк
6 KB
Christian Stein
7904172: JTReg should add --enable-native-access=ALL-UNNAMED in /native actions
07 май 2026, 14:11
07 май 2026, 14:11
1d4f22f
Код
Авторство
О чём код?
# # Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. Oracle designates this # particular file as subject to the "Classpath" exception as provided # by Oracle in the LICENSE file that accompanied this code. # # This code is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # version 2 for more details (a copy is included in the LICENSE file that # accompanied this code). # # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any # questions. # #---------------------------------------------------------------------- NATIVEPATH := $(call FullPath, $(shell cd $(BUILDDIR); pwd)) ABS_TESTDIR := $(call FullPath, $(TESTDIR)) $(BUILDTESTDIR)/TestNativePath.agentvm.ok \ $(BUILDTESTDIR)/TestNativePath.othervm.ok: \ $(JTREG_IMAGEDIR)/lib/javatest.jar \ $(JTREG_IMAGEDIR)/lib/jtreg.jar \ $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -nativepath:$(NATIVEPATH) \ -vmoption:-Dcorrect.nativepath=$(NATIVEPATH) \ -w:$(@:%.ok=%nativepath.othervm)/work \ -r:$(@:%.ok=%nativepath.othervm)/report \ -verbose:fail \ $(@:$(BUILDTESTDIR)/TestNativePath.%.ok=-%) \ $(TESTDIR)/nativepath/NativesOK.java $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -w:$(@:%.ok=%nativepath.othervm2)/work \ -r:$(@:%.ok=%nativepath.othervm2)/report \ -verbose:fail \ $(@:$(BUILDTESTDIR)/TestNativePath.%.ok=-%) \ $(TESTDIR)/nativepath/NativesEmpty.java echo "$@ test passed at `date`" > $@ $(BUILDTESTDIR)/TestNativePath.ok: \ $(JTREG_IMAGEDIR)/lib/javatest.jar \ $(JTREG_IMAGEDIR)/lib/jtreg.jar \ $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -nativepath:/this/path/does/not/exist \ $(TESTDIR)/nativepath \ 2>&1 | grep -q "The -nativepath path does not exist" $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -nativepath:$(JTREG_IMAGEDIR)/bin/jtreg \ $(TESTDIR)/nativepath \ 2>&1 | grep -q "The -nativepath path is not a directory" $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -nativepath:"$(JTREG_IMAGEDIR)/bin/jtreg$(PS)$(JDKHOME)" \ $(TESTDIR)/nativepath \ 2>&1 | grep -q "The argument to -nativepath cannot be more than one path." # Run a test with native code without the -nativepath option # should yield an error $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -w:$(@:%.ok=%nativepath.othervm2)/work \ -r:$(@:%.ok=%nativepath.othervm2)/report \ -verbose:fail \ $(TESTDIR)/nativepath/NativesOK.java \ 2>&1 | grep -q "Use -nativepath to specify the location of native code" # Exclude all tests with native code $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -w:$(@:%.ok=%nativepath.othervm2)/work \ -r:$(@:%.ok=%nativepath.othervm2)/report \ -k:!native \ -verbose:fail \ $(TESTDIR)/nativepath/NativesOK.java \ 2>&1 | grep -q "no tests selected" # Shell tests $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -nativepath:$(NATIVEPATH) \ -e:CORRECTNATIVEPATH=$(NATIVEPATH) \ -w:$(@:%.ok=%nativepath.shell)/work \ -r:$(@:%.ok=%nativepath.shell)/report \ -verbose:fail \ $(TESTDIR)/nativepath/NativesOKShell.sh $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -w:$(@:%.ok=%nativepath.shell)/work \ -r:$(@:%.ok=%nativepath.shell)/report \ -verbose:fail \ $(TESTDIR)/nativepath/NativesEmptyShell.sh echo "$@ test passed at `date`" > $@ # verify that a relative path value to -nativepath option # is correctly resolved to an absolute path by jtreg at runtime $(BUILDTESTDIR)/TestRelativeNativePath.ok: \ $(JTREG_IMAGEDIR)/lib/javatest.jar \ $(JTREG_IMAGEDIR)/lib/jtreg.jar \ $(JTREG_IMAGEDIR)/bin/jtreg $(RM) $(@:%.ok=%nativepath.relative) $(MKDIR) $(@:%.ok=%nativepath.relative)/foobar/hello/world cd $(BUILDTESTDIR); $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDKHOME) \ -nativepath:$(@:$(BUILDTESTDIR)/%.ok=%nativepath.relative)/foobar/hello/world \ -vmoption:-Dcorrect.nativepath=$(@:%.ok=%nativepath.relative)/foobar/hello/world \ -w:$(@:%.ok=%nativepath.relative)/work \ -r:$(@:%.ok=%nativepath.relative)/report \ -verbose:fail \ $(ABS_TESTDIR)/nativepath/NativesOK.java echo "$@ test passed at `date`" > $@ TESTS.jtreg += \ $(BUILDTESTDIR)/TestNativePath.ok \ $(BUILDTESTDIR)/TestNativePath.agentvm.ok \ $(BUILDTESTDIR)/TestNativePath.othervm.ok \ $(BUILDTESTDIR)/TestRelativeNativePath.ok testnativepath: \ $(BUILDTESTDIR)/TestNativePath.ok \ $(BUILDTESTDIR)/TestNativePath.agentvm.ok \ $(BUILDTESTDIR)/TestNativePath.othervm.ok \ $(BUILDTESTDIR)/TestRelativeNativePath.ok ifdef JDK25HOME # verify that --enable-native-access=ALL-UNNAMED is added # for a test with the /native argument $(BUILDTESTDIR)/TestNativeAccessEnabled.ok: \ $(JTREG_IMAGEDIR)/lib/javatest.jar \ $(JTREG_IMAGEDIR)/lib/jtreg.jar \ $(JTREG_IMAGEDIR)/bin/jtreg cd $(BUILDTESTDIR); $(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \ -jdk:$(JDK25HOME) \ -nativepath:$(NATIVEPATH) \ -w:$(@:%.ok=%nativeaccessenabled)/work \ -r:$(@:%.ok=%nativeaccessenabled)/report \ -verbose:fail \ $(ABS_TESTDIR)/nativepath/NativeAccessEnabled.java echo "$@ test passed at `date`" > $@ TESTS.jtreg += $(BUILDTESTDIR)/TestNativeAccessEnabled.ok testnativepath += $(BUILDTESTDIR)/TestNativeAccessEnabled.ok endif