< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp

Print this page
rev 52233 : 8212884: Remove the assignments in ifs for vmTestbase/[a-s]
Summary:
Reviewed-by:


  80     if (read_bytes != classDef.class_byte_count) {
  81         NSK_COMPLAIN0("error reading file\n");
  82         return NSK_FALSE;
  83     }
  84 
  85     return NSK_TRUE;
  86 }
  87 
  88 /* ============================================================================= */
  89 
  90 /** Agent algorithm. */
  91 static void JNICALL
  92 agentProc(jvmtiEnv* jvmti, JNIEnv* jni, void* arg) {
  93 
  94     /*Wait for debuggee to set classes to be redefined nsk_jvmti_waitForSync#4*/
  95     NSK_DISPLAY0("Wait for debuggee to set classes to be redefined nsk_jvmti_waitForSync#4\n");
  96     if (!nsk_jvmti_waitForSync(timeout))
  97         return;
  98 
  99     NSK_DISPLAY1("Find class: %s\n", TESTED_CLASS_NAME);
 100     if (!NSK_JNI_VERIFY(jni, (classDef.klass = jni->FindClass(TESTED_CLASS_NAME)) != NULL)) {

 101         nsk_jvmti_setFailStatus();
 102         return;
 103     }
 104 
 105     if (!NSK_JNI_VERIFY(jni, (classDef.klass = (jclass)
 106             jni->NewGlobalRef(classDef.klass)) != NULL)) {
 107         nsk_jvmti_setFailStatus();
 108         return;
 109     }
 110 
 111     NSK_DISPLAY0("Redfine class with new byte code\n");
 112     NSK_DISPLAY3("class definition:\n\t0x%p, 0x%p:%d\n",
 113                     classDef.klass,
 114                     classDef.class_bytes,
 115                     classDef.class_byte_count);
 116     if (nsk_getVerboseMode()) {
 117         nsk_printHexBytes("   ", 16, classDef.class_byte_count,
 118                                 classDef.class_bytes);
 119     }
 120     if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &classDef))) {
 121         nsk_jvmti_setFailStatus();
 122         return;
 123     }
 124 
 125     jni->DeleteGlobalRef(classDef.klass);
 126 


 133 /** Agent library initialization. */
 134 #ifdef STATIC_BUILD
 135 JNIEXPORT jint JNICALL Agent_OnLoad_bi04t002(JavaVM *jvm, char *options, void *reserved) {
 136     return Agent_Initialize(jvm, options, reserved);
 137 }
 138 JNIEXPORT jint JNICALL Agent_OnAttach_bi04t002(JavaVM *jvm, char *options, void *reserved) {
 139     return Agent_Initialize(jvm, options, reserved);
 140 }
 141 JNIEXPORT jint JNI_OnLoad_bi04t002(JavaVM *jvm, char *options, void *reserved) {
 142     return JNI_VERSION_1_8;
 143 }
 144 #endif
 145 jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) {
 146     jvmtiEnv *jvmti = NULL;
 147 
 148     if (!NSK_VERIFY(nsk_jvmti_parseOptions(options)))
 149         return JNI_ERR;
 150 
 151     timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
 152 
 153     if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL))

 154         return JNI_ERR;
 155 
 156     {
 157         jvmtiCapabilities caps;
 158         memset(&caps, 0, sizeof(caps));
 159 
 160         caps.can_redefine_classes = 1;
 161         caps.can_redefine_any_class = 1;
 162         if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)))
 163             return JNI_ERR;
 164     }
 165 
 166     if (!NSK_VERIFY(readNewBytecode(jvmti)))
 167         return JNI_ERR;
 168 
 169     if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL)))
 170         return JNI_ERR;
 171 
 172     return JNI_OK;
 173 }


  80     if (read_bytes != classDef.class_byte_count) {
  81         NSK_COMPLAIN0("error reading file\n");
  82         return NSK_FALSE;
  83     }
  84 
  85     return NSK_TRUE;
  86 }
  87 
  88 /* ============================================================================= */
  89 
  90 /** Agent algorithm. */
  91 static void JNICALL
  92 agentProc(jvmtiEnv* jvmti, JNIEnv* jni, void* arg) {
  93 
  94     /*Wait for debuggee to set classes to be redefined nsk_jvmti_waitForSync#4*/
  95     NSK_DISPLAY0("Wait for debuggee to set classes to be redefined nsk_jvmti_waitForSync#4\n");
  96     if (!nsk_jvmti_waitForSync(timeout))
  97         return;
  98 
  99     NSK_DISPLAY1("Find class: %s\n", TESTED_CLASS_NAME);
 100     classDef.klass = jni->FindClass(TESTED_CLASS_NAME);
 101     if (!NSK_JNI_VERIFY(jni, classDef.klass != NULL)) {
 102         nsk_jvmti_setFailStatus();
 103         return;
 104     }
 105 
 106     classDef.klass = (jclass) jni->NewGlobalRef(classDef.klass);
 107     if (!NSK_JNI_VERIFY(jni, classDef.klass != NULL)) {
 108         nsk_jvmti_setFailStatus();
 109         return;
 110     }
 111 
 112     NSK_DISPLAY0("Redfine class with new byte code\n");
 113     NSK_DISPLAY3("class definition:\n\t0x%p, 0x%p:%d\n",
 114                     classDef.klass,
 115                     classDef.class_bytes,
 116                     classDef.class_byte_count);
 117     if (nsk_getVerboseMode()) {
 118         nsk_printHexBytes("   ", 16, classDef.class_byte_count,
 119                                 classDef.class_bytes);
 120     }
 121     if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &classDef))) {
 122         nsk_jvmti_setFailStatus();
 123         return;
 124     }
 125 
 126     jni->DeleteGlobalRef(classDef.klass);
 127 


 134 /** Agent library initialization. */
 135 #ifdef STATIC_BUILD
 136 JNIEXPORT jint JNICALL Agent_OnLoad_bi04t002(JavaVM *jvm, char *options, void *reserved) {
 137     return Agent_Initialize(jvm, options, reserved);
 138 }
 139 JNIEXPORT jint JNICALL Agent_OnAttach_bi04t002(JavaVM *jvm, char *options, void *reserved) {
 140     return Agent_Initialize(jvm, options, reserved);
 141 }
 142 JNIEXPORT jint JNI_OnLoad_bi04t002(JavaVM *jvm, char *options, void *reserved) {
 143     return JNI_VERSION_1_8;
 144 }
 145 #endif
 146 jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) {
 147     jvmtiEnv *jvmti = NULL;
 148 
 149     if (!NSK_VERIFY(nsk_jvmti_parseOptions(options)))
 150         return JNI_ERR;
 151 
 152     timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
 153 
 154     jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved);
 155     if (!NSK_VERIFY(jvmti != NULL))
 156         return JNI_ERR;
 157 
 158     {
 159         jvmtiCapabilities caps;
 160         memset(&caps, 0, sizeof(caps));
 161 
 162         caps.can_redefine_classes = 1;
 163         caps.can_redefine_any_class = 1;
 164         if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)))
 165             return JNI_ERR;
 166     }
 167 
 168     if (!NSK_VERIFY(readNewBytecode(jvmti)))
 169         return JNI_ERR;
 170 
 171     if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL)))
 172         return JNI_ERR;
 173 
 174     return JNI_OK;
 175 }
< prev index next >