< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/ap03t001.cpp

Print this page
rev 52200 : [mq]: spaces


  52 ObjectFree(jvmtiEnv *jvmti_env, jlong tag) {
  53     NSK_COMPLAIN1("Received unexpected ObjectFree event for an object with tag %ld\n\n", (long)tag);
  54     nsk_jvmti_setFailStatus();
  55     obj_free++;
  56 }
  57 
  58 jvmtiIterationControl JNICALL
  59 heapObjectCallback(jlong class_tag,
  60                    jlong size,
  61                    jlong* tag_ptr,
  62                    void* user_data) {
  63 
  64     if (class_tag == DEBUGEE_CLASS_TAG) {
  65         obj_count++;
  66     }
  67 
  68     return JVMTI_ITERATION_CONTINUE;
  69 }
  70 
  71 jvmtiIterationControl JNICALL
  72 objectReferenceCallback( jvmtiObjectReferenceKind reference_kind,
  73                          jlong  class_tag,
  74                          jlong  size,
  75                          jlong* tag_ptr,
  76                          jlong  referrer_tag,
  77                          jint   referrer_index,
  78                          void*  user_data) {
  79 
  80     if (class_tag == DEBUGEE_CLASS_TAG && *tag_ptr != 0) {
  81         obj_count++;
  82     }
  83 
  84     return JVMTI_ITERATION_CONTINUE;
  85 }
  86 
  87 
  88 /************************/
  89 
  90 JNIEXPORT void JNICALL
  91 Java_nsk_jvmti_scenarios_allocation_AP03_ap03t001_setTag( JNIEnv* jni, jobject obj, jlong tag) {
  92 
  93     if (!NSK_JVMTI_VERIFY(jvmti->SetTag(obj, tag))) {
  94          nsk_jvmti_setFailStatus();
  95     }
  96 }
  97 
  98 static void JNICALL
  99 agentProc(jvmtiEnv* jvmti, JNIEnv* jni, void* arg) {
 100 
 101     jclass debugeeClass = NULL;
 102 
 103     NSK_DISPLAY0("Wait for debugee start\n\n");
 104     if (!NSK_VERIFY(nsk_jvmti_waitForSync(timeout)))
 105         return;
 106 
 107     do {
 108         jobject catcher;
 109         jfieldID fid;
 110 
 111         NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_SIGNATURE);


 143 
 144         NSK_DISPLAY0("Calling IterateOverHeap with filter JVMTI_HEAP_OBJECT_TAGGED\n");
 145         obj_count = 0;
 146         if (!NSK_JVMTI_VERIFY(
 147                 jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallback, &user_data))) {
 148             nsk_jvmti_setFailStatus();
 149             break;
 150         }
 151 
 152         if (obj_count != EXP_OBJ_NUMBER) {
 153             nsk_jvmti_setFailStatus();
 154             NSK_COMPLAIN2(
 155                 "IterateOverHeap found unexpected number of objects: %d\n"
 156                 "\texpected number: %d\n\n",
 157                 obj_count, EXP_OBJ_NUMBER);
 158         } else {
 159             NSK_DISPLAY1("Number of objects IterateOverHeap has found: %d\n\n", obj_count);
 160         }
 161 
 162         if (!NSK_JNI_VERIFY(jni, (fid =
 163                 jni->GetStaticFieldID(debugeeClass, "catcher", DEBUGEE_SIGNATURE)) != NULL )) {
 164             nsk_jvmti_setFailStatus();
 165             break;
 166         }
 167 
 168         if (!NSK_JNI_VERIFY(jni, (catcher =
 169                 jni->GetStaticObjectField(debugeeClass, fid)) != NULL )) {
 170             NSK_COMPLAIN0("GetStaticObjectField returned NULL for 'catcher' field value\n\n");
 171             nsk_jvmti_setFailStatus();
 172             break;
 173         }
 174 
 175         NSK_DISPLAY0("Calling IterateOverObjectsReachableFromObject\n");
 176         obj_count = 0;
 177         if (!NSK_JVMTI_VERIFY(jvmti->IterateOverObjectsReachableFromObject(catcher,
 178                                                                            objectReferenceCallback,
 179                                                                            &user_data))) {
 180             nsk_jvmti_setFailStatus();
 181             break;
 182         }
 183 
 184         if (obj_count != EXP_OBJ_NUMBER) {
 185             nsk_jvmti_setFailStatus();
 186             NSK_COMPLAIN2(
 187                 "IterateOverObjectsReachableFromObject found unexpected number of objects: %d\n"
 188                 "\texpected number: %d\n\n",
 189                 obj_count, EXP_OBJ_NUMBER);




  52 ObjectFree(jvmtiEnv *jvmti_env, jlong tag) {
  53     NSK_COMPLAIN1("Received unexpected ObjectFree event for an object with tag %ld\n\n", (long)tag);
  54     nsk_jvmti_setFailStatus();
  55     obj_free++;
  56 }
  57 
  58 jvmtiIterationControl JNICALL
  59 heapObjectCallback(jlong class_tag,
  60                    jlong size,
  61                    jlong* tag_ptr,
  62                    void* user_data) {
  63 
  64     if (class_tag == DEBUGEE_CLASS_TAG) {
  65         obj_count++;
  66     }
  67 
  68     return JVMTI_ITERATION_CONTINUE;
  69 }
  70 
  71 jvmtiIterationControl JNICALL
  72 objectReferenceCallback(jvmtiObjectReferenceKind reference_kind,
  73                         jlong  class_tag,
  74                         jlong  size,
  75                         jlong* tag_ptr,
  76                         jlong  referrer_tag,
  77                         jint   referrer_index,
  78                         void*  user_data) {
  79 
  80     if (class_tag == DEBUGEE_CLASS_TAG && *tag_ptr != 0) {
  81         obj_count++;
  82     }
  83 
  84     return JVMTI_ITERATION_CONTINUE;
  85 }
  86 
  87 
  88 /************************/
  89 
  90 JNIEXPORT void JNICALL
  91 Java_nsk_jvmti_scenarios_allocation_AP03_ap03t001_setTag(JNIEnv* jni, jobject obj, jlong tag) {
  92 
  93     if (!NSK_JVMTI_VERIFY(jvmti->SetTag(obj, tag))) {
  94          nsk_jvmti_setFailStatus();
  95     }
  96 }
  97 
  98 static void JNICALL
  99 agentProc(jvmtiEnv* jvmti, JNIEnv* jni, void* arg) {
 100 
 101     jclass debugeeClass = NULL;
 102 
 103     NSK_DISPLAY0("Wait for debugee start\n\n");
 104     if (!NSK_VERIFY(nsk_jvmti_waitForSync(timeout)))
 105         return;
 106 
 107     do {
 108         jobject catcher;
 109         jfieldID fid;
 110 
 111         NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_SIGNATURE);


 143 
 144         NSK_DISPLAY0("Calling IterateOverHeap with filter JVMTI_HEAP_OBJECT_TAGGED\n");
 145         obj_count = 0;
 146         if (!NSK_JVMTI_VERIFY(
 147                 jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallback, &user_data))) {
 148             nsk_jvmti_setFailStatus();
 149             break;
 150         }
 151 
 152         if (obj_count != EXP_OBJ_NUMBER) {
 153             nsk_jvmti_setFailStatus();
 154             NSK_COMPLAIN2(
 155                 "IterateOverHeap found unexpected number of objects: %d\n"
 156                 "\texpected number: %d\n\n",
 157                 obj_count, EXP_OBJ_NUMBER);
 158         } else {
 159             NSK_DISPLAY1("Number of objects IterateOverHeap has found: %d\n\n", obj_count);
 160         }
 161 
 162         if (!NSK_JNI_VERIFY(jni, (fid =
 163                 jni->GetStaticFieldID(debugeeClass, "catcher", DEBUGEE_SIGNATURE)) != NULL)) {
 164             nsk_jvmti_setFailStatus();
 165             break;
 166         }
 167 
 168         if (!NSK_JNI_VERIFY(jni, (catcher =
 169                 jni->GetStaticObjectField(debugeeClass, fid)) != NULL)) {
 170             NSK_COMPLAIN0("GetStaticObjectField returned NULL for 'catcher' field value\n\n");
 171             nsk_jvmti_setFailStatus();
 172             break;
 173         }
 174 
 175         NSK_DISPLAY0("Calling IterateOverObjectsReachableFromObject\n");
 176         obj_count = 0;
 177         if (!NSK_JVMTI_VERIFY(jvmti->IterateOverObjectsReachableFromObject(catcher,
 178                                                                            objectReferenceCallback,
 179                                                                            &user_data))) {
 180             nsk_jvmti_setFailStatus();
 181             break;
 182         }
 183 
 184         if (obj_count != EXP_OBJ_NUMBER) {
 185             nsk_jvmti_setFailStatus();
 186             NSK_COMPLAIN2(
 187                 "IterateOverObjectsReachableFromObject found unexpected number of objects: %d\n"
 188                 "\texpected number: %d\n\n",
 189                 obj_count, EXP_OBJ_NUMBER);


< prev index next >