xref: /aosp_15_r20/external/libtextclassifier/native/testing/jvm_test_launcher.cc (revision 993b0882672172b81d12fad7a7ac0c3e5c824a12)
1*993b0882SAndroid Build Coastguard Worker #include <jni.h>
2*993b0882SAndroid Build Coastguard Worker 
3*993b0882SAndroid Build Coastguard Worker #include "utils/testing/logging_event_listener.h"
4*993b0882SAndroid Build Coastguard Worker #include "gtest/gtest.h"
5*993b0882SAndroid Build Coastguard Worker 
6*993b0882SAndroid Build Coastguard Worker JNIEnv* g_jenv = nullptr;
7*993b0882SAndroid Build Coastguard Worker jobject g_context = nullptr;
8*993b0882SAndroid Build Coastguard Worker 
9*993b0882SAndroid Build Coastguard Worker // This method is called from Java to trigger running of all the tests.
10*993b0882SAndroid Build Coastguard Worker extern "C" JNIEXPORT jboolean JNICALL
Java_com_google_android_textclassifier_tests_JvmTestLauncher_testsMain(JNIEnv * env,jclass clazz,jobject context)11*993b0882SAndroid Build Coastguard Worker Java_com_google_android_textclassifier_tests_JvmTestLauncher_testsMain(
12*993b0882SAndroid Build Coastguard Worker     JNIEnv* env, jclass clazz, jobject context) {
13*993b0882SAndroid Build Coastguard Worker   g_jenv = env;
14*993b0882SAndroid Build Coastguard Worker   g_context = context;
15*993b0882SAndroid Build Coastguard Worker 
16*993b0882SAndroid Build Coastguard Worker   char arg[] = "jvm_test_launcher";
17*993b0882SAndroid Build Coastguard Worker   std::vector<char*> argv = {arg};
18*993b0882SAndroid Build Coastguard Worker   int argc = 1;
19*993b0882SAndroid Build Coastguard Worker   testing::InitGoogleTest(&argc, argv.data());
20*993b0882SAndroid Build Coastguard Worker   testing::UnitTest::GetInstance()->listeners().Append(
21*993b0882SAndroid Build Coastguard Worker       new libtextclassifier3::LoggingEventListener());
22*993b0882SAndroid Build Coastguard Worker   return RUN_ALL_TESTS() == 0;
23*993b0882SAndroid Build Coastguard Worker }