< prev index next >
test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/timers/JvmtiTest/JvmtiTest.cpp
Print this page
rev 51722 : 8210700: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti/unit tests
Summary:
Reviewed-by:
*** 37,64 ****
#include "jvmti.h"
#include "agent_common.h"
#include "jni_tools.h"
- #ifdef __cplusplus
extern "C" {
- #endif
-
- #ifndef JNI_ENV_ARG
-
- #ifdef __cplusplus
- #define JNI_ENV_PTR(x) x
- #define JNI_ENV_ARG(x, y) y
- #else
- #define JNI_ENV_PTR(x) (*x)
- #define JNI_ENV_ARG(x, y) x, y
- #endif
-
- #endif
-
- #define JVMTI_ENV_PTR JNI_ENV_PTR
- #define JVMTI_ENV_ARG JNI_ENV_ARG
#define JVMTI_ERROR_CHECK_DURING_ONLOAD(str,res) if ( res != JVMTI_ERROR_NONE) { printf("Fatal error: %s - %d\n", str, res); return JNI_ERR; }
#define JVMTI_ERROR_CHECK_RETURN(str,res) if ( res != JVMTI_ERROR_NONE) { printf("Error: %s - %d\n", str, res); return; }
--- 37,47 ----
*** 100,110 ****
char buffer[32];
debug_printf("VMInit event\n");
debug_printf("jvmti GetTime \n");
! err = JVMTI_ENV_PTR(jvmti_env)->GetTime(JVMTI_ENV_ARG(jvmti_env, &initial_time));
JVMTI_ERROR_CHECK("GetTime", err);
debug_printf(" Initial time: %s ns\n",
jlong_to_string(initial_time, buffer));
}
--- 83,93 ----
char buffer[32];
debug_printf("VMInit event\n");
debug_printf("jvmti GetTime \n");
! err = jvmti_env->GetTime(&initial_time);
JVMTI_ERROR_CHECK("GetTime", err);
debug_printf(" Initial time: %s ns\n",
jlong_to_string(initial_time, buffer));
}
*** 155,171 ****
err = jvmti->AddCapabilities(&capabilities);
JVMTI_ERROR_CHECK_DURING_ONLOAD("(AddCapabilities)", err);
/* Enable events */
init_callbacks();
! res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti_env, &callbacks), sizeof(callbacks));
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventCallbacks returned error", res);
! res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti_env, JVMTI_ENABLE), JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventNotificationMode for VM_INIT returned error", res);
! res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti_env, JVMTI_ENABLE), JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventNotificationMode for vm death event returned error", res);
return JNI_OK;
}
--- 138,154 ----
err = jvmti->AddCapabilities(&capabilities);
JVMTI_ERROR_CHECK_DURING_ONLOAD("(AddCapabilities)", err);
/* Enable events */
init_callbacks();
! res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventCallbacks returned error", res);
! res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventNotificationMode for VM_INIT returned error", res);
! res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventNotificationMode for vm death event returned error", res);
return JNI_OK;
}
*** 182,197 ****
jclass cls, jthread thread, jint threadNumber, jint iterationCount) {
jvmtiError ret;
jlong curr;
debug_printf("jvmti GetCurrentThreadCpuTime \n");
! ret = JVMTI_ENV_PTR(jvmti)->GetCurrentThreadCpuTime(JVMTI_ENV_ARG(jvmti_env, &curr));
JVMTI_ERROR_CHECK_RETURN("GetCurrentThreadCpuTime", ret);
thread_info[threadNumber].iterationCount = iterationCount;
thread_info[threadNumber].currThreadTime = curr;
! thread_info[threadNumber].ref = JNI_ENV_PTR(env)->NewWeakGlobalRef(JNI_ENV_ARG(env, thread));
}
static void print_timerinfo(jvmtiTimerInfo* timerInfo) {
char buffer[32];
const char* timerKind;
--- 165,180 ----
jclass cls, jthread thread, jint threadNumber, jint iterationCount) {
jvmtiError ret;
jlong curr;
debug_printf("jvmti GetCurrentThreadCpuTime \n");
! ret = jvmti->GetCurrentThreadCpuTime(&curr);
JVMTI_ERROR_CHECK_RETURN("GetCurrentThreadCpuTime", ret);
thread_info[threadNumber].iterationCount = iterationCount;
thread_info[threadNumber].currThreadTime = curr;
! thread_info[threadNumber].ref = env->NewWeakGlobalRef(thread);
}
static void print_timerinfo(jvmtiTimerInfo* timerInfo) {
char buffer[32];
const char* timerKind;
*** 235,295 ****
int k;
int i;
char buffer[32];
debug_printf("jvmti GetTime \n");
! ret = JVMTI_ENV_PTR(jvmti)->GetTime(JVMTI_ENV_ARG(jvmti_env, &now));
JVMTI_ERROR_CHECK_RETURN("GetTime", ret);
etime = now - initial_time;
debug_printf(" Elapsed time: %s ms\n",
jlong_to_string(milli(etime), buffer));
debug_printf("jvmti GetCurrentThreadCpuTimerInfo \n");
! ret = JVMTI_ENV_PTR(jvmti)->GetCurrentThreadCpuTimerInfo(JVMTI_ENV_ARG(jvmti_env, &timerInfoCurr));
JVMTI_ERROR_CHECK_RETURN("GetCurrentThreadCpuTimerInfo", ret);
print_timerinfo(&timerInfoCurr);
debug_printf("jvmti GetThreadCpuTimerInfo \n");
! ret = JVMTI_ENV_PTR(jvmti)->GetThreadCpuTimerInfo(JVMTI_ENV_ARG(jvmti_env, &timerInfoOther));
JVMTI_ERROR_CHECK_RETURN("GetThreadCpuTimerInfo", ret);
print_timerinfo(&timerInfoOther);
debug_printf("jvmti GetTimerInfo \n");
! ret = JVMTI_ENV_PTR(jvmti)->GetTimerInfo(JVMTI_ENV_ARG(jvmti_env, &timerInfoTime));
JVMTI_ERROR_CHECK_RETURN("GetTimerInfo", ret);
print_timerinfo(&timerInfoTime);
debug_printf("jvmti GetAvailableProcessors \n");
! ret = JVMTI_ENV_PTR(jvmti)->GetAvailableProcessors(JVMTI_ENV_ARG(jvmti_env, &processor_count));
JVMTI_ERROR_CHECK_RETURN("GetAvailableProcessors", ret);
debug_printf(" processor_count = %d\n", processor_count);
debug_printf("jvmti GetAllThreads \n");
! ret = JVMTI_ENV_PTR(jvmti)->GetAllThreads(JVMTI_ENV_ARG(jvmti_env, &thrCnt), &thrArray);
JVMTI_ERROR_CHECK_RETURN("GetAllThreads", ret);
for (k = 0; k < thrCnt; ++k) {
jlong oth;
jthread thread;
thread = thrArray[k];
! ret = JVMTI_ENV_PTR(jvmti)->GetThreadCpuTime(JVMTI_ENV_ARG(jvmti_env, thread), &oth);
JVMTI_ERROR_CHECK_RETURN("GetThreadCpuTime", ret);
for (i = 1; i < THREADS_LIMIT; ++i) {
jweak tref = thread_info[i].ref;
if (tref != 0) {
! if (JNI_ENV_PTR(env)->IsSameObject(JNI_ENV_ARG(env, thread), tref)) {
thread_info[i].threadTime = oth;
break;
}
}
}
if (i == THREADS_LIMIT) {
jvmtiThreadInfo info;
info.name = (char*) "*retrieval error*";
! ret = JVMTI_ENV_PTR(jvmti)->GetThreadInfo(JVMTI_ENV_ARG(jvmti_env, thread), &info);
JVMTI_ERROR_CHECK("GetThreadInfo %d \n", ret);
debug_printf("non-test thread: %s - %s ms\n", info.name,
jlong_to_string(milli(oth), buffer));
}
--- 218,278 ----
int k;
int i;
char buffer[32];
debug_printf("jvmti GetTime \n");
! ret = jvmti->GetTime(&now);
JVMTI_ERROR_CHECK_RETURN("GetTime", ret);
etime = now - initial_time;
debug_printf(" Elapsed time: %s ms\n",
jlong_to_string(milli(etime), buffer));
debug_printf("jvmti GetCurrentThreadCpuTimerInfo \n");
! ret = jvmti->GetCurrentThreadCpuTimerInfo(&timerInfoCurr);
JVMTI_ERROR_CHECK_RETURN("GetCurrentThreadCpuTimerInfo", ret);
print_timerinfo(&timerInfoCurr);
debug_printf("jvmti GetThreadCpuTimerInfo \n");
! ret = jvmti->GetThreadCpuTimerInfo(&timerInfoOther);
JVMTI_ERROR_CHECK_RETURN("GetThreadCpuTimerInfo", ret);
print_timerinfo(&timerInfoOther);
debug_printf("jvmti GetTimerInfo \n");
! ret = jvmti->GetTimerInfo(&timerInfoTime);
JVMTI_ERROR_CHECK_RETURN("GetTimerInfo", ret);
print_timerinfo(&timerInfoTime);
debug_printf("jvmti GetAvailableProcessors \n");
! ret = jvmti->GetAvailableProcessors(&processor_count);
JVMTI_ERROR_CHECK_RETURN("GetAvailableProcessors", ret);
debug_printf(" processor_count = %d\n", processor_count);
debug_printf("jvmti GetAllThreads \n");
! ret = jvmti->GetAllThreads(&thrCnt, &thrArray);
JVMTI_ERROR_CHECK_RETURN("GetAllThreads", ret);
for (k = 0; k < thrCnt; ++k) {
jlong oth;
jthread thread;
thread = thrArray[k];
! ret = jvmti->GetThreadCpuTime(thread, &oth);
JVMTI_ERROR_CHECK_RETURN("GetThreadCpuTime", ret);
for (i = 1; i < THREADS_LIMIT; ++i) {
jweak tref = thread_info[i].ref;
if (tref != 0) {
! if (env->IsSameObject(thread, tref)) {
thread_info[i].threadTime = oth;
break;
}
}
}
if (i == THREADS_LIMIT) {
jvmtiThreadInfo info;
info.name = (char*) "*retrieval error*";
! ret = jvmti->GetThreadInfo(thread, &info);
JVMTI_ERROR_CHECK("GetThreadInfo %d \n", ret);
debug_printf("non-test thread: %s - %s ms\n", info.name,
jlong_to_string(milli(oth), buffer));
}
*** 378,385 ****
}
}
}
- #ifdef __cplusplus
}
- #endif
--- 361,366 ----
< prev index next >