mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 10:34:38 +02:00
8256746: gc/CriticalNativeArgs.java fails without -XX:-CriticalJNINatives
Reviewed-by: kbarrett, coleenp, rkennke
This commit is contained in:
parent
aac5c2a862
commit
d9ae0db699
2 changed files with 44 additions and 10 deletions
|
@ -32,7 +32,12 @@ package gc;
|
||||||
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386"
|
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386"
|
||||||
* @requires vm.gc.Epsilon
|
* @requires vm.gc.Epsilon
|
||||||
* @summary test argument unpacking nmethod wrapper of critical native method
|
* @summary test argument unpacking nmethod wrapper of critical native method
|
||||||
* @run main/othervm/native -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xcomp -Xmx256M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
* @run main/othervm/native -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xcomp -Xmx256M
|
||||||
|
* -XX:-CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
|
* @run main/othervm/native -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xcomp -Xmx256M
|
||||||
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -42,14 +47,38 @@ package gc;
|
||||||
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386"
|
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386"
|
||||||
* @requires vm.gc.Shenandoah
|
* @requires vm.gc.Shenandoah
|
||||||
* @summary test argument unpacking nmethod wrapper of critical native method
|
* @summary test argument unpacking nmethod wrapper of critical native method
|
||||||
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:+ShenandoahDegeneratedGC -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
|
||||||
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:-ShenandoahDegeneratedGC -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
|
||||||
*
|
*
|
||||||
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
|
||||||
|
* -XX:+UseShenandoahGC
|
||||||
|
* -XX:-CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
|
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
|
||||||
|
* -XX:+UseShenandoahGC
|
||||||
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
*
|
*
|
||||||
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -Xcomp -Xmx256M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
|
||||||
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions -XX:ShenandoahGCMode=iu -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:+ShenandoahDegeneratedGC
|
||||||
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
|
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
|
||||||
|
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:-ShenandoahDegeneratedGC
|
||||||
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
|
*
|
||||||
|
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
|
||||||
|
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
|
||||||
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
|
*
|
||||||
|
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
|
||||||
|
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
|
||||||
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
|
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
|
||||||
|
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
|
||||||
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -58,7 +87,12 @@ package gc;
|
||||||
* @library /
|
* @library /
|
||||||
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386" | os.arch=="ppc64" | os.arch=="ppc64le" | os.arch=="s390x"
|
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386" | os.arch=="ppc64" | os.arch=="ppc64le" | os.arch=="s390x"
|
||||||
* @summary test argument unpacking nmethod wrapper of critical native method
|
* @summary test argument unpacking nmethod wrapper of critical native method
|
||||||
* @run main/othervm/native -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
|
* @run main/othervm/native -Xcomp -Xmx512M
|
||||||
|
* -XX:-CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
|
* @run main/othervm/native -Xcomp -Xmx512M
|
||||||
|
* -XX:+CriticalJNINatives
|
||||||
|
* gc.CriticalNativeArgs
|
||||||
*/
|
*/
|
||||||
public class CriticalNativeArgs {
|
public class CriticalNativeArgs {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
@ -120,10 +120,10 @@ JNIEXPORT jboolean JNICALL JavaCritical_gc_CriticalNative_isNull
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_gc_CriticalNative_isNull
|
JNIEXPORT jboolean JNICALL Java_gc_CriticalNative_isNull
|
||||||
(JNIEnv *env, jclass jclazz, jintArray a) {
|
(JNIEnv *env, jclass jclazz, jintArray a) {
|
||||||
jboolean is_null;
|
if (a == NULL) return JNI_TRUE;
|
||||||
jsize len = (*env)->GetArrayLength(env, a);
|
jsize len = (*env)->GetArrayLength(env, a);
|
||||||
jint* arr = (jint*)(*env)->GetPrimitiveArrayCritical(env, a, 0);
|
jint* arr = (jint*)(*env)->GetPrimitiveArrayCritical(env, a, 0);
|
||||||
is_null = (arr == NULL) && (len == 0);
|
jboolean is_null = (arr == NULL) && (len == 0);
|
||||||
(*env)->ReleasePrimitiveArrayCritical(env, a, arr, 0);
|
(*env)->ReleasePrimitiveArrayCritical(env, a, arr, 0);
|
||||||
return is_null;
|
return is_null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue