xref: /aosp_15_r20/libnativehelper/tests_mts/jni/jni_invocation_test.cpp (revision 0797b24ee566c78eb48500180cb4bf71f81c8aab)
1*0797b24eSAndroid Build Coastguard Worker /*
2*0797b24eSAndroid Build Coastguard Worker  * Copyright (C) 2020 The Android Open Source Project
3*0797b24eSAndroid Build Coastguard Worker  *
4*0797b24eSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*0797b24eSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*0797b24eSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*0797b24eSAndroid Build Coastguard Worker  *
8*0797b24eSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*0797b24eSAndroid Build Coastguard Worker  *
10*0797b24eSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*0797b24eSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*0797b24eSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*0797b24eSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*0797b24eSAndroid Build Coastguard Worker  * limitations under the License.
15*0797b24eSAndroid Build Coastguard Worker  */
16*0797b24eSAndroid Build Coastguard Worker 
17*0797b24eSAndroid Build Coastguard Worker #include "libnativehelper_test.h"
18*0797b24eSAndroid Build Coastguard Worker 
TEST_F(LibnativehelperTest,GetCreatedJavaVMs)19*0797b24eSAndroid Build Coastguard Worker TEST_F(LibnativehelperTest, GetCreatedJavaVMs) {
20*0797b24eSAndroid Build Coastguard Worker     JavaVM* createdVMs[2] = { nullptr, nullptr };
21*0797b24eSAndroid Build Coastguard Worker     jsize count;
22*0797b24eSAndroid Build Coastguard Worker     ASSERT_NE(nullptr, mEnv);
23*0797b24eSAndroid Build Coastguard Worker     ASSERT_EQ(JNI_OK, JNI_GetCreatedJavaVMs(&createdVMs[0], 2, &count));
24*0797b24eSAndroid Build Coastguard Worker     ASSERT_EQ(1, count);
25*0797b24eSAndroid Build Coastguard Worker     ASSERT_NE(nullptr, createdVMs[0]);
26*0797b24eSAndroid Build Coastguard Worker     ASSERT_EQ(nullptr, createdVMs[1]);
27*0797b24eSAndroid Build Coastguard Worker 
28*0797b24eSAndroid Build Coastguard Worker     JavaVM* currentVM;
29*0797b24eSAndroid Build Coastguard Worker     ASSERT_EQ(JNI_OK, mEnv->GetJavaVM(&currentVM));
30*0797b24eSAndroid Build Coastguard Worker     ASSERT_EQ(createdVMs[0], currentVM);
31*0797b24eSAndroid Build Coastguard Worker }
32*0797b24eSAndroid Build Coastguard Worker 
TEST_F(LibnativehelperTest,GetDefaultJavaVMInitArgs)33*0797b24eSAndroid Build Coastguard Worker TEST_F(LibnativehelperTest, GetDefaultJavaVMInitArgs) {
34*0797b24eSAndroid Build Coastguard Worker     JavaVMOption options[1];
35*0797b24eSAndroid Build Coastguard Worker     JavaVMInitArgs initArgs;
36*0797b24eSAndroid Build Coastguard Worker     initArgs.version = JNI_VERSION_1_6;
37*0797b24eSAndroid Build Coastguard Worker     initArgs.nOptions = 0;
38*0797b24eSAndroid Build Coastguard Worker     initArgs.options = options;
39*0797b24eSAndroid Build Coastguard Worker     initArgs.ignoreUnrecognized = JNI_TRUE;
40*0797b24eSAndroid Build Coastguard Worker     // ART does not support JNI_GetDefaultJavaVMInitArgs(), should this change it'll need a test.
41*0797b24eSAndroid Build Coastguard Worker     ASSERT_EQ(JNI_ERR, JNI_GetDefaultJavaVMInitArgs(&initArgs));
42*0797b24eSAndroid Build Coastguard Worker }
43