test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/relcaps002.cpp
changeset 57683 1cf884e437ea
parent 52049 a986ec4ff214
equal deleted inserted replaced
57681:41f2f2829a09 57683:1cf884e437ea
   122     /* :16 */
   122     /* :16 */
   123 }
   123 }
   124 
   124 
   125 #define CHECK_CAP(initCaps, caps, name)                                         \
   125 #define CHECK_CAP(initCaps, caps, name)                                         \
   126     if (caps->name != 0) {                                                      \
   126     if (caps->name != 0) {                                                      \
   127         success = NSK_FALSE;                                                    \
   127         success = false;                                                        \
   128         NSK_COMPLAIN4("GetCapabilities() in %s returned capability after add and relinguish all potential capabilities:\n"  \
   128         NSK_COMPLAIN4("GetCapabilities() in %s returned capability after add and relinguish all potential capabilities:\n"  \
   129                       "#   capability: %s\n"                                    \
   129                       "#   capability: %s\n"                                    \
   130                       "#   got value:  %d\n"                                    \
   130                       "#   got value:  %d\n"                                    \
   131                       "#   expected:   %d\n",                                   \
   131                       "#   expected:   %d\n",                                   \
   132                         where, #name, (int)caps->name, 0)       ;               \
   132                         where, #name, (int)caps->name, 0)       ;               \
   133     }
   133     }
   134 
   134 
   135 /**
   135 /**
   136  * Check value of known capabilities.
   136  * Check value of known capabilities.
   137  * @returns NSK_FALSE if any error occured.
   137  * @returns false if any error occured.
   138  */
   138  */
   139 static int checkCapabilitiesValue(jvmtiCapabilities* caps, jvmtiCapabilities* initCaps, const char where[]) {
   139 static bool checkCapabilitiesValue(jvmtiCapabilities* caps, jvmtiCapabilities* initCaps, const char where[]) {
   140     int success = NSK_TRUE;
   140     bool success = true;
   141 
   141 
   142     CHECK_CAP(initCaps, caps, can_tag_objects);
   142     CHECK_CAP(initCaps, caps, can_tag_objects);
   143     CHECK_CAP(initCaps, caps, can_generate_field_modification_events);
   143     CHECK_CAP(initCaps, caps, can_generate_field_modification_events);
   144     CHECK_CAP(initCaps, caps, can_generate_field_access_events);
   144     CHECK_CAP(initCaps, caps, can_generate_field_access_events);
   145     CHECK_CAP(initCaps, caps, can_get_bytecodes);
   145     CHECK_CAP(initCaps, caps, can_get_bytecodes);
   182     return success;
   182     return success;
   183 }
   183 }
   184 
   184 
   185 /**
   185 /**
   186  * Get and check current capabilities.
   186  * Get and check current capabilities.
   187  * @returns NSK_FALSE if any error occured.
   187  * @returns false if any error occured.
   188  */
   188  */
   189 static int checkCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* initCaps, const char where[]) {
   189 static bool checkCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* initCaps, const char where[]) {
   190     int success = NSK_TRUE;
   190     bool success = true;
   191     jvmtiCapabilities caps;
   191     jvmtiCapabilities caps;
   192 
   192 
   193     memset(&caps, 0, sizeof(jvmtiCapabilities));
   193     memset(&caps, 0, sizeof(jvmtiCapabilities));
   194 
   194 
   195     NSK_DISPLAY0("GetCapabilities() for current JVMTI env\n");
   195     NSK_DISPLAY0("GetCapabilities() for current JVMTI env\n");
   196     if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) {
   196     if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) {
   197         return NSK_FALSE;
   197         return false;
   198     }
   198     }
   199 
   199 
   200     NSK_DISPLAY0("Got raw capabilities:\n");
   200     NSK_DISPLAY0("Got raw capabilities:\n");
   201     printRawCapabilities(&caps);
   201     printRawCapabilities(&caps);
   202 
   202 
   210     return success;
   210     return success;
   211 }
   211 }
   212 
   212 
   213 /**
   213 /**
   214  * Add given capabilities list.
   214  * Add given capabilities list.
   215  * @returns NSK_FALSE if any error occured.
   215  * @returns false if any error occured.
   216  */
   216  */
   217 static int addCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps) {
   217 static bool addCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps) {
   218     NSK_DISPLAY0("AddCapabilities() for current JVMTI env\n");
   218     NSK_DISPLAY0("AddCapabilities() for current JVMTI env\n");
   219     if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(caps))) {
   219     if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(caps))) {
   220         return NSK_FALSE;
   220         return false;
   221     }
   221     }
   222     NSK_DISPLAY0("  ... set\n");
   222     NSK_DISPLAY0("  ... set\n");
   223 
   223 
   224     return NSK_TRUE;
   224     return true;
   225 }
   225 }
   226 
   226 
   227 /**
   227 /**
   228  * Remove given capabilities list.
   228  * Remove given capabilities list.
   229  * @returns NSK_FALSE if any error occured.
   229  * @returns false if any error occured.
   230  */
   230  */
   231 static int removeCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps, const char where[]) {
   231 static bool removeCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps, const char where[]) {
   232     NSK_DISPLAY0("RelinquishCapabilities() for current JVMTI env\n");
   232     NSK_DISPLAY0("RelinquishCapabilities() for current JVMTI env\n");
   233     if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(caps))) {
   233     if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(caps))) {
   234         return NSK_FALSE;
   234         return false;
   235     }
   235     }
   236     NSK_DISPLAY0("  ... relinguished\n");
   236     NSK_DISPLAY0("  ... relinguished\n");
   237 
   237 
   238     return NSK_TRUE;
   238     return true;
   239 }
   239 }
   240 
   240 
   241 /**
   241 /**
   242  * Get potential capabilities to the given list.
   242  * Get potential capabilities to the given list.
   243  * @returns NSK_FALSE if any error occured.
   243  * @returns false if any error occured.
   244  */
   244  */
   245 static int getPotentialCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps) {
   245 static bool getPotentialCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps) {
   246     NSK_DISPLAY0("GetPotentialCapabilities() for current JVMTI env\n");
   246     NSK_DISPLAY0("GetPotentialCapabilities() for current JVMTI env\n");
   247     if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(caps))) {
   247     if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(caps))) {
   248         return NSK_FALSE;
   248         return false;
   249     }
   249     }
   250 
   250 
   251     NSK_DISPLAY0("Got raw capabilities:\n");
   251     NSK_DISPLAY0("Got raw capabilities:\n");
   252     printRawCapabilities(caps);
   252     printRawCapabilities(caps);
   253 
   253 
   254     NSK_DISPLAY0("Known capabilities:\n");
   254     NSK_DISPLAY0("Known capabilities:\n");
   255     printKnownCapabilities(caps);
   255     printKnownCapabilities(caps);
   256 
   256 
   257     return NSK_TRUE;
   257     return true;
   258 }
   258 }
   259 
   259 
   260 /* ============================================================================= */
   260 /* ============================================================================= */
   261 
   261 
   262 /** Agent algorithm. */
   262 /** Agent algorithm. */
   293 /**
   293 /**
   294  * Callback for VM_DEATH event.
   294  * Callback for VM_DEATH event.
   295  */
   295  */
   296 JNIEXPORT void JNICALL
   296 JNIEXPORT void JNICALL
   297 callbackVMDeath(jvmtiEnv* jvmti, JNIEnv* jni) {
   297 callbackVMDeath(jvmtiEnv* jvmti, JNIEnv* jni) {
   298     int success = NSK_TRUE;
   298     bool success = true;
   299 
   299 
   300     NSK_DISPLAY0(">>> Testcase #4: Check capabilities in VM_DEATH callback\n");
   300     NSK_DISPLAY0(">>> Testcase #4: Check capabilities in VM_DEATH callback\n");
   301     success = checkCapabilities(jvmti, &initCaps, "VM_DEATH callback");
   301     success = checkCapabilities(jvmti, &initCaps, "VM_DEATH callback");
   302 
   302 
   303     NSK_DISPLAY1("Disable events: %d events\n", EVENTS_COUNT);
   303     NSK_DISPLAY1("Disable events: %d events\n", EVENTS_COUNT);
   304     if (!nsk_jvmti_enableEvents(JVMTI_DISABLE, EVENTS_COUNT, events, NULL)) {
   304     if (!nsk_jvmti_enableEvents(JVMTI_DISABLE, EVENTS_COUNT, events, NULL)) {
   305         success = NSK_FALSE;
   305         success = false;
   306     } else {
   306     } else {
   307         NSK_DISPLAY0("  ... disabled\n");
   307         NSK_DISPLAY0("  ... disabled\n");
   308     }
   308     }
   309 
   309 
   310     if (success != NSK_TRUE) {
   310     if (success != true) {
   311         NSK_DISPLAY1("Exit with FAIL exit status: %d\n", STATUS_FAIL);
   311         NSK_DISPLAY1("Exit with FAIL exit status: %d\n", STATUS_FAIL);
   312         NSK_BEFORE_TRACE(exit(STATUS_FAIL));
   312         NSK_BEFORE_TRACE(exit(STATUS_FAIL));
   313     }
   313     }
   314 }
   314 }
   315 
   315