From 44b5383a71aa160745d3aabd809eae53b9429713 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 12 Mar 2022 23:47:38 -0500 Subject: [PATCH] JNI for test coverage #3965 --- .../test/java/com/rusefi/native_/JniSandbox.java | 1 + unit_tests/native/native_impl.cpp | 16 +++++++++++++++- unit_tests/unit_test_rules.mk | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/java_console/io/src/test/java/com/rusefi/native_/JniSandbox.java b/java_console/io/src/test/java/com/rusefi/native_/JniSandbox.java index f5ff333fab..f978a740f1 100644 --- a/java_console/io/src/test/java/com/rusefi/native_/JniSandbox.java +++ b/java_console/io/src/test/java/com/rusefi/native_/JniSandbox.java @@ -16,6 +16,7 @@ public class JniSandbox { EngineLogic engineLogic = new EngineLogic(); System.out.println(engineLogic.getVersion()); + engineLogic.setSensor("clt", 90); engineLogic.setConfiguration(new byte[4], 24, 14); } diff --git a/unit_tests/native/native_impl.cpp b/unit_tests/native/native_impl.cpp index 7fd55a83fe..b8d7d4b871 100644 --- a/unit_tests/native/native_impl.cpp +++ b/unit_tests/native/native_impl.cpp @@ -7,6 +7,7 @@ #include "pch.h" #include "com_rusefi_native__EngineLogic.h" +#include "auto_generated_sensor.h" //static EngineTestHelper eth(TEST_ENGINE); @@ -18,7 +19,7 @@ JNIEXPORT jstring JNICALL Java_com_rusefi_native_1_EngineLogic_getVersion(JNIEnv return result; } -JNIEXPORT jbyteArray JNICALL Java_com_rusefi_native_1_EngineLogic_getConfiguration(JNIEnv *env, jobject) { +JNIEXPORT jbyteArray JNICALL Java_com_rusefi_native_1_EngineLogic_getConfiguration(JNIEnv *env, jobject instance) { return nullptr; } @@ -29,3 +30,16 @@ JNIEXPORT void JNICALL Java_com_rusefi_native_1_EngineLogic_setConfiguration(JNI printf("[native] setConfiguration %d %d\n", offset, size); // printf("[native] engine %d %d\n", engineConfiguration->engineType); } + +JNIEXPORT void JNICALL Java_com_rusefi_native_1_EngineLogic_setSensor + (JNIEnv *env, jobject instance, jstring sensorName, jdouble sensorValue) { + + const char *sensorNameNative = env->GetStringUTFChars(sensorName, 0); + + SensorType type = findSensorTypeByName(sensorNameNative); + + printf("Setting [%s] to %f\n", getSensorType(type), sensorValue); + Sensor::setMockValue(type, sensorValue); + + env->ReleaseStringUTFChars(sensorName, sensorNameNative); +} diff --git a/unit_tests/unit_test_rules.mk b/unit_tests/unit_test_rules.mk index b469687c29..0405540322 100644 --- a/unit_tests/unit_test_rules.mk +++ b/unit_tests/unit_test_rules.mk @@ -139,6 +139,7 @@ endif AOPT = -fPIC -I$(JAVA_HOME)/include ifeq ($(OS),Windows_NT) +# TODO: add validation to assert that we do not have Windows slash in JAVA_HOME variable AOPT += -I$(JAVA_HOME)/include/win32 else ifeq ($(IS_MAC),yes)