Я работаю над довольно сложной библиотекой С++, которую я планирую правильно протестировать с помощью googletest для Android NDK.
До сих пор я следую примеру Google test и строю проект следующим образом:
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := foo
LOCAL_SRC_FILES := foo.cpp
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := foo_unittest
LOCAL_SRC_FILES := foo_unittest.cpp
LOCAL_SHARED_LIBRARIES := foo
LOCAL_STATIC_LIBRARIES := googletest_main
include $(BUILD_EXECUTABLE)
$(call import-module,third_party/googletest)
Я создаю и вызываю тест с помощью файла script:
adb push libs/armeabi/libfoo.so //data/local/tmp/
adb push libs/armeabi/libgnustl_shared.so //data/local/tmp/
adb push libs/armeabi/foo_unittest //data/local/tmp/
adb shell chmod 775 //data/local/tmp/foo_unittest
adb shell "LD_LIBRARY_PATH=//data/local/tmp //data/local/tmp/foo_unittest"
Это отлично работает с любым чистым кодом на С++, который не имеет много ссылок, но многие из моего кода фактически используют java/jni-вызовы. Как запустить googletest с полным файлом apk, который поставляется не только с кодом С++, но также с java и ресурсами?