Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/share/jpda/libNativeMethodsTestThread.cpp
41161 views
/*1* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/22#include "jni.h"23#include <stdlib.h>2425extern "C" {262728static void logMessage(JNIEnv *env, jobject thisObject, jstring message)29{30jclass klass;31klass = env->GetObjectClass(thisObject);32env->CallVoidMethod(thisObject,33env->GetMethodID(klass, "log", "(Ljava/lang/String;)V"),34message);35}3637JNIEXPORT void JNICALL38Java_nsk_share_jpda_NativeMethodsTestThread_VoidMethod(JNIEnv *env,39jobject thisObject, jstring message)40{41logMessage(env, thisObject, message);42}4344JNIEXPORT jboolean JNICALL45Java_nsk_share_jpda_NativeMethodsTestThread_BooleanMethod(JNIEnv *env,46jobject thisObject, jstring message)47{48jclass klass;49jfieldID valueField;5051logMessage(env, thisObject, message);5253klass = env->GetObjectClass(thisObject);5455valueField = env->GetStaticFieldID(klass, "expectedBooleanValue", "Z");5657return env->GetStaticBooleanField(klass, valueField);58}5960JNIEXPORT jbyte JNICALL61Java_nsk_share_jpda_NativeMethodsTestThread_ByteMethod(JNIEnv *env,62jobject thisObject, jstring message)63{64jclass klass;65jfieldID valueField;6667logMessage(env, thisObject, message);6869klass = env->GetObjectClass(thisObject);7071valueField = env->GetStaticFieldID(klass, "expectedByteValue", "B");7273return env->GetStaticByteField(klass, valueField);74}7576JNIEXPORT jshort JNICALL77Java_nsk_share_jpda_NativeMethodsTestThread_ShortMethod(JNIEnv *env,78jobject thisObject, jstring message)79{80jclass klass;81jfieldID valueField;8283logMessage(env, thisObject, message);8485klass = env->GetObjectClass(thisObject);8687valueField = env->GetStaticFieldID(klass, "expectedShortValue", "S");8889return env->GetStaticShortField(klass, valueField);90}9192JNIEXPORT jchar JNICALL93Java_nsk_share_jpda_NativeMethodsTestThread_CharMethod(JNIEnv *env,94jobject thisObject, jstring message)95{96jclass klass;97jfieldID valueField;9899logMessage(env, thisObject, message);100101klass = env->GetObjectClass(thisObject);102103valueField = env->GetStaticFieldID(klass, "expectedCharValue", "C");104105return env->GetStaticCharField(klass, valueField);106}107108JNIEXPORT jint JNICALL109Java_nsk_share_jpda_NativeMethodsTestThread_IntMethod(JNIEnv *env,110jobject thisObject, jstring message)111{112jclass klass;113jfieldID valueField;114115logMessage(env, thisObject, message);116117klass = env->GetObjectClass(thisObject);118119valueField = env->GetStaticFieldID(klass, "expectedIntValue", "I");120121return env->GetStaticIntField(klass, valueField);122}123124JNIEXPORT jlong JNICALL125Java_nsk_share_jpda_NativeMethodsTestThread_LongMethod(JNIEnv *env,126jobject thisObject, jstring message)127{128jclass klass;129jfieldID valueField;130131logMessage(env, thisObject, message);132133klass = env->GetObjectClass(thisObject);134135valueField = env->GetStaticFieldID(klass, "expectedLongValue", "J");136137return env->GetStaticLongField(klass, valueField);138}139140JNIEXPORT jfloat JNICALL141Java_nsk_share_jpda_NativeMethodsTestThread_FloatMethod(JNIEnv *env,142jobject thisObject, jstring message)143{144jclass klass;145jfieldID valueField;146147logMessage(env, thisObject, message);148149klass = env->GetObjectClass(thisObject);150151valueField = env->GetStaticFieldID(klass, "expectedFloatValue", "F");152153return env->GetStaticFloatField(klass, valueField);154}155156JNIEXPORT jdouble JNICALL157Java_nsk_share_jpda_NativeMethodsTestThread_DoubleMethod(JNIEnv *env,158jobject thisObject, jstring message)159{160jclass klass;161jfieldID valueField;162163logMessage(env, thisObject, message);164165klass = env->GetObjectClass(thisObject);166167valueField = env->GetStaticFieldID(klass, "expectedDoubleValue", "D");168169return env->GetStaticDoubleField(klass, valueField);170}171172JNIEXPORT jobject JNICALL173Java_nsk_share_jpda_NativeMethodsTestThread_ObjectArrayMethod(JNIEnv *env,174jobject thisObject, jstring message)175{176jclass klass;177jfieldID valueField;178179logMessage(env, thisObject, message);180181klass = env->GetObjectClass(thisObject);182183valueField = env->GetStaticFieldID(klass, "expectedObjectArrayValue",184"[Ljava/lang/Object;");185186return env->GetStaticObjectField(klass, valueField);187}188189JNIEXPORT jobject JNICALL190Java_nsk_share_jpda_NativeMethodsTestThread_StringMethod(JNIEnv *env,191jobject thisObject, jstring message)192{193jclass klass;194jfieldID valueField;195196logMessage(env, thisObject, message);197198klass = env->GetObjectClass(thisObject);199200valueField = env->GetStaticFieldID(klass, "expectedStringValue",201"Ljava/lang/String;");202203return env->GetStaticObjectField(klass, valueField);204}205206JNIEXPORT jobject JNICALL207Java_nsk_share_jpda_NativeMethodsTestThread_ThreadMethod(JNIEnv *env,208jobject thisObject, jstring message)209{210jclass klass;211jfieldID valueField;212213logMessage(env, thisObject, message);214215klass = env->GetObjectClass(thisObject);216217valueField = env->GetStaticFieldID(klass, "expectedThreadValue",218"Ljava/lang/Thread;");219220return env->GetStaticObjectField(klass, valueField);221}222223JNIEXPORT jobject JNICALL224Java_nsk_share_jpda_NativeMethodsTestThread_ThreadGroupMethod(JNIEnv *env,225jobject thisObject, jstring message)226{227jclass klass;228jfieldID valueField;229230logMessage(env, thisObject, message);231232klass = env->GetObjectClass(thisObject);233234valueField = env->GetStaticFieldID(klass, "expectedThreadGroupValue",235"Ljava/lang/ThreadGroup;");236237return env->GetStaticObjectField(klass, valueField);238}239240JNIEXPORT jobject JNICALL241Java_nsk_share_jpda_NativeMethodsTestThread_ClassObjectMethod(JNIEnv *env,242jobject thisObject, jstring message)243{244jclass klass;245jfieldID valueField;246247logMessage(env, thisObject, message);248249klass = env->GetObjectClass(thisObject);250251valueField = env->GetStaticFieldID(klass, "expectedClassObjectValue",252"Ljava/lang/Class;");253254return env->GetStaticObjectField(klass, valueField);255}256257JNIEXPORT jobject JNICALL258Java_nsk_share_jpda_NativeMethodsTestThread_ClassLoaderMethod(JNIEnv *env,259jobject thisObject, jstring message)260{261jclass klass;262jfieldID valueField;263264logMessage(env, thisObject, message);265266klass = env->GetObjectClass(thisObject);267268valueField = env->GetStaticFieldID(klass, "expectedClassLoaderValue",269"Ljava/lang/ClassLoader;");270271return env->GetStaticObjectField(klass, valueField);272}273274JNIEXPORT jobject JNICALL275Java_nsk_share_jpda_NativeMethodsTestThread_ObjectMethod(JNIEnv *env,276jobject thisObject, jstring message)277{278jclass klass;279jfieldID valueField;280281logMessage(env, thisObject, message);282283klass = env->GetObjectClass(thisObject);284285valueField = env->GetStaticFieldID(klass, "expectedObjectValue",286"Ljava/lang/Object;");287288return env->GetStaticObjectField(klass, valueField);289}290291JNIEXPORT jobject JNICALL292Java_nsk_share_jpda_NativeMethodsTestThread_BooleanWrapperMethod(JNIEnv *env,293jobject thisObject, jstring message)294{295jclass klass;296jfieldID valueField;297298logMessage(env, thisObject, message);299300klass = env->GetObjectClass(thisObject);301302valueField = env->GetStaticFieldID(klass, "expectedBooleanWrapperValue",303"Ljava/lang/Boolean;");304305return env->GetStaticObjectField(klass, valueField);306}307308JNIEXPORT jobject JNICALL309Java_nsk_share_jpda_NativeMethodsTestThread_ByteWrapperMethod(JNIEnv *env,310jobject thisObject, jstring message)311{312jclass klass;313jfieldID valueField;314315logMessage(env, thisObject, message);316317klass = env->GetObjectClass(thisObject);318319valueField = env->GetStaticFieldID(klass, "expectedByteWrapperValue",320"Ljava/lang/Byte;");321322return env->GetStaticObjectField(klass, valueField);323}324325JNIEXPORT jobject JNICALL326Java_nsk_share_jpda_NativeMethodsTestThread_ShortWrapperMethod(JNIEnv *env,327jobject thisObject, jstring message)328{329jclass klass;330jfieldID valueField;331332logMessage(env, thisObject, message);333334klass = env->GetObjectClass(thisObject);335336valueField = env->GetStaticFieldID(klass, "expectedShortWrapperValue",337"Ljava/lang/Short;");338339return env->GetStaticObjectField(klass, valueField);340}341342JNIEXPORT jobject JNICALL343Java_nsk_share_jpda_NativeMethodsTestThread_CharWrapperMethod(JNIEnv *env,344jobject thisObject, jstring message)345{346jclass klass;347jfieldID valueField;348349logMessage(env, thisObject, message);350351klass = env->GetObjectClass(thisObject);352353valueField = env->GetStaticFieldID(klass, "expectedCharWrapperValue",354"Ljava/lang/Character;");355356return env->GetStaticObjectField(klass, valueField);357}358359JNIEXPORT jobject JNICALL360Java_nsk_share_jpda_NativeMethodsTestThread_IntWrapperMethod(JNIEnv *env,361jobject thisObject, jstring message)362{363jclass klass;364jfieldID valueField;365366logMessage(env, thisObject, message);367368klass = env->GetObjectClass(thisObject);369370valueField = env->GetStaticFieldID(klass, "expectedIntWrapperValue",371"Ljava/lang/Integer;");372373return env->GetStaticObjectField(klass, valueField);374}375376JNIEXPORT jobject JNICALL377Java_nsk_share_jpda_NativeMethodsTestThread_LongWrapperMethod(JNIEnv *env,378jobject thisObject, jstring message)379{380jclass klass;381jfieldID valueField;382383logMessage(env, thisObject, message);384385klass = env->GetObjectClass(thisObject);386387valueField = env->GetStaticFieldID(klass, "expectedLongWrapperValue",388"Ljava/lang/Long;");389390return env->GetStaticObjectField(klass, valueField);391}392393JNIEXPORT jobject JNICALL394Java_nsk_share_jpda_NativeMethodsTestThread_FloatWrapperMethod(JNIEnv *env,395jobject thisObject, jstring message)396{397jclass klass;398jfieldID valueField;399400logMessage(env, thisObject, message);401402klass = env->GetObjectClass(thisObject);403404valueField = env->GetStaticFieldID(klass, "expectedFloatWrapperValue",405"Ljava/lang/Float;");406407return env->GetStaticObjectField(klass, valueField);408}409410JNIEXPORT jobject JNICALL411Java_nsk_share_jpda_NativeMethodsTestThread_DoubleWrapperMethod(JNIEnv *env,412jobject thisObject, jstring message)413{414jclass klass;415jfieldID valueField;416417logMessage(env, thisObject, message);418419klass = env->GetObjectClass(thisObject);420421valueField = env->GetStaticFieldID(klass, "expectedDoubleWrapperValue",422"Ljava/lang/Double;");423424return env->GetStaticObjectField(klass, valueField);425}426427}428429430