128
129 /**
130 * Callback for THREAD_END event.
131 */
132 JNIEXPORT void JNICALL
133 callbackThreadEnd(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
134 NSK_DISPLAY1(" <THREAD_END>: thread: 0x%p\n", (void*)thread);
135 eventsCountList[2]++;
136 }
137
138 /**
139 * Callback for VM_INIT event.
140 */
141 JNIEXPORT void JNICALL
142 callbackVMInit(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
143 NSK_DISPLAY1(" <VM_INIT>: thread: 0x%p\n", (void*)thread);
144 eventsCountList[0]++;
145
146 NSK_DISPLAY0(">>> Testcase #2: Set NULL for events callbacks\n");
147 {
148 if (!NSK_JVMTI_VERIFY(
149 NSK_CPP_STUB3(SetEventCallbacks, jvmti, NULL, 0))) {
150 nsk_jvmti_setFailStatus();
151 }
152
153 nsk_jvmti_enableEvents(JVMTI_ENABLE, EVENTS_COUNT - 1, eventsList + 1, NULL);
154 }
155 }
156
157 /* ============================================================================= */
158
159 /** Agent library initialization. */
160 #ifdef STATIC_BUILD
161 JNIEXPORT jint JNICALL Agent_OnLoad_setevntcallb002(JavaVM *jvm, char *options, void *reserved) {
162 return Agent_Initialize(jvm, options, reserved);
163 }
164 JNIEXPORT jint JNICALL Agent_OnAttach_setevntcallb002(JavaVM *jvm, char *options, void *reserved) {
165 return Agent_Initialize(jvm, options, reserved);
166 }
167 JNIEXPORT jint JNI_OnLoad_setevntcallb002(JavaVM *jvm, char *options, void *reserved) {
168 return JNI_VERSION_1_8;
169 }
176
177 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
178
179 if (!NSK_VERIFY((jvmti =
180 nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL))
181 return JNI_ERR;
182
183 if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL)))
184 return JNI_ERR;
185
186 NSK_DISPLAY0(">>> Testcase #1: Set callbacks for all tested events\n");
187 {
188 jvmtiEventCallbacks eventCallbacks;
189
190 cleanEventCounts();
191
192 memset(&eventCallbacks, 0, sizeof(eventCallbacks));
193 eventCallbacks.VMInit = callbackVMInit;
194 eventCallbacks.ThreadStart = callbackThreadStart;
195 eventCallbacks.ThreadEnd = callbackThreadEnd;
196 if (!NSK_JVMTI_VERIFY(
197 NSK_CPP_STUB3(SetEventCallbacks, jvmti,
198 &eventCallbacks, sizeof(eventCallbacks)))) {
199 nsk_jvmti_setFailStatus();
200 } else {
201 nsk_jvmti_enableEvents(JVMTI_ENABLE, 1, eventsList, NULL);
202 }
203 }
204 return JNI_OK;
205 }
206
207 /* ============================================================================= */
208
209 }
|
128
129 /**
130 * Callback for THREAD_END event.
131 */
132 JNIEXPORT void JNICALL
133 callbackThreadEnd(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
134 NSK_DISPLAY1(" <THREAD_END>: thread: 0x%p\n", (void*)thread);
135 eventsCountList[2]++;
136 }
137
138 /**
139 * Callback for VM_INIT event.
140 */
141 JNIEXPORT void JNICALL
142 callbackVMInit(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
143 NSK_DISPLAY1(" <VM_INIT>: thread: 0x%p\n", (void*)thread);
144 eventsCountList[0]++;
145
146 NSK_DISPLAY0(">>> Testcase #2: Set NULL for events callbacks\n");
147 {
148 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(NULL, 0))) {
149 nsk_jvmti_setFailStatus();
150 }
151
152 nsk_jvmti_enableEvents(JVMTI_ENABLE, EVENTS_COUNT - 1, eventsList + 1, NULL);
153 }
154 }
155
156 /* ============================================================================= */
157
158 /** Agent library initialization. */
159 #ifdef STATIC_BUILD
160 JNIEXPORT jint JNICALL Agent_OnLoad_setevntcallb002(JavaVM *jvm, char *options, void *reserved) {
161 return Agent_Initialize(jvm, options, reserved);
162 }
163 JNIEXPORT jint JNICALL Agent_OnAttach_setevntcallb002(JavaVM *jvm, char *options, void *reserved) {
164 return Agent_Initialize(jvm, options, reserved);
165 }
166 JNIEXPORT jint JNI_OnLoad_setevntcallb002(JavaVM *jvm, char *options, void *reserved) {
167 return JNI_VERSION_1_8;
168 }
175
176 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
177
178 if (!NSK_VERIFY((jvmti =
179 nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL))
180 return JNI_ERR;
181
182 if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL)))
183 return JNI_ERR;
184
185 NSK_DISPLAY0(">>> Testcase #1: Set callbacks for all tested events\n");
186 {
187 jvmtiEventCallbacks eventCallbacks;
188
189 cleanEventCounts();
190
191 memset(&eventCallbacks, 0, sizeof(eventCallbacks));
192 eventCallbacks.VMInit = callbackVMInit;
193 eventCallbacks.ThreadStart = callbackThreadStart;
194 eventCallbacks.ThreadEnd = callbackThreadEnd;
195 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
196 nsk_jvmti_setFailStatus();
197 } else {
198 nsk_jvmti_enableEvents(JVMTI_ENABLE, 1, eventsList, NULL);
199 }
200 }
201 return JNI_OK;
202 }
203
204 /* ============================================================================= */
205
206 }
|