From 65ff145a8d97a60ca55e77c1b0bfb398cc77615c Mon Sep 17 00:00:00 2001 From: rusefillc <48498823+rusefillc@users.noreply.github.com> Date: Sun, 13 Mar 2022 20:03:49 -0400 Subject: [PATCH] Jni engine (#3995) * JNI for test coverage #3965 * JNI for test coverage #3965 * JNI for test coverage #3965 --- unit_tests/engine_test_helper.cpp | 8 +++++++- unit_tests/native/native_impl.cpp | 13 +++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/unit_tests/engine_test_helper.cpp b/unit_tests/engine_test_helper.cpp index 2391485cf6..0da4a04cd7 100644 --- a/unit_tests/engine_test_helper.cpp +++ b/unit_tests/engine_test_helper.cpp @@ -30,7 +30,13 @@ extern bool printTriggerTrace; extern bool printFuelDebug; extern int minCrankingRpm; -EngineTestHelperBase::EngineTestHelperBase(Engine * eng, engine_configuration_s * econfig, persistent_config_s * pers) { +bool isTestingInitialized = false; + +EngineTestHelperBase::EngineTestHelperBase(Engine * eng, engine_configuration_s * econfig, persistent_config_s * pers) { + if (!isTestingInitialized) { + testing::InitGoogleTest(); + isTestingInitialized = true; + } // todo: make this not a global variable, we need currentTimeProvider interface on engine timeNowUs = 0; minCrankingRpm = 0; diff --git a/unit_tests/native/native_impl.cpp b/unit_tests/native/native_impl.cpp index d9249b5350..f76b85ebc2 100644 --- a/unit_tests/native/native_impl.cpp +++ b/unit_tests/native/native_impl.cpp @@ -9,7 +9,16 @@ #include "com_rusefi_native__EngineLogic.h" #include "auto_generated_sensor.h" -//static EngineTestHelper eth(TEST_ENGINE); +#include + +static std::unique_ptr eth; + +static EngineTestHelper* getEth() { + if (!eth) { + eth = std::make_unique(TEST_ENGINE); + } + return eth.get(); +} JNIEXPORT jstring JNICALL Java_com_rusefi_native_1_EngineLogic_getVersion(JNIEnv * env, jobject) { const char msg[60] = "Hello from unit tests"; @@ -23,7 +32,6 @@ JNIEXPORT jbyteArray JNICALL Java_com_rusefi_native_1_EngineLogic_getConfigurati return nullptr; } - JNIEXPORT void JNICALL Java_com_rusefi_native_1_EngineLogic_setConfiguration(JNIEnv *env, jobject instance, jbyteArray data, jint offset, jint size) { @@ -47,4 +55,5 @@ JNIEXPORT void JNICALL Java_com_rusefi_native_1_EngineLogic_setSensor JNIEXPORT void JNICALL Java_com_rusefi_native_1_EngineLogic_invokePeriodicCallback (JNIEnv *, jobject) { + EngineTestHelper* eth = getEth(); }