Google Testを使う
AndroidのNativeアプリやライブラリで、C++で書いたもののユニットテストはGoogle Testを使用することになる。
使用にあたって、STLのライブラリをリンクする必要がある。幸い、Android 2.2以降はSTLportがついている。
これをリンクすればいい… と思いきや、事はそう単純でもないようだ。
どうやら以前からastlというSTLもどきが存在するのだが、こいつをビルドするかどうかで設定を変えなければいけないらしい。
その辺の設定を行ってるAndroid.mkは、こんな感じになる。
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := tests ifeq ($(BUILD_WITH_ASTL),true) libgtest_test_includes := bionic/libstdc++/include external/astl/include libgtest_test_static_lib := libgtest_main libgtest libastl libgtest_test_shared_lib := libgtest_test_host_static_lib := libgtest_main_host libgtest_host libastl_host libgtest_test_host_shared_lib := else BUILD_WITH_ASTL := false libgtest_test_includes := bionic external/stlport/stlport libgtest_test_static_lib := libgtest_main libgtest libgtest_test_shared_lib := libstlport libgtest_test_host_static_lib := libgtest_test_host_shared_lib := endif LOCAL_C_INCLUDES := external/gtest/include $(libgtest_test_includes) LOCAL_SHARED_LIBRARIES := \ libcutils \ libutils \ libandroid_runtime \ $(libgtest_test_shared_lib) \ $(libgtest_test_host_shared_lib) LOCAL_STATIC_LIBRARIES := \ $(libgtest_test_static_lib) \ $(libgtest_test_host_static_lib) LOCAL_SRC_FILES := \ sample.cpp LOCAL_MODULE := gtest_sample include $(BUILD_EXECUTABLE)
実装については、他のサイトで解説とかあるだろうし、ここでは割愛。
下記を参照すれば大抵わかるのではなかろうか。
http://opencv.jp/googletestdocs/samples.html