CUnitを組み込んでみる
NativeのアプリやライブラリのユニットテストをAndroid環境下でやりたい。と、何となく思い立ったので調査してみた。
Androidには標準でEmbedded Unitが含まれているから、意味はないのかもしれないが…でも調べてみた。
日本語ではほとんど資料が見つからなかったので、ここに記しておく。
といっても、まだmakeまでしかやってない。実際にテストアプリを作ってはいないので、本当にこの方法でいいのかは未調査。
※CppUnitの方は、何故かビルドできなくて困ってる。誰か助けて欲しい…
CUnitのソースをダウンロードする
SourceForgeからダウンロードする (現時点での最新版は 2.1-2)
http://sourceforge.net/projects/cunit/
Androidでビルドする
ここでは、外部ライブラリ"libcunit"としてコンパイルされるようにする。
- externalに"libcunit"ディレクトリを作成する
- ダウンロードしたファイルを展開し、CUnitディレクトリ内にあるHeaders, Sourcesディレクトリを丸ごとexternal/libcunitディレクトリにコピーする
- external/libcunitディレクトリに、Android.mkを作成する
Android.mkの中身は、下記のように書けばよし。
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # the output modul name LOCAL_MODULE := libcunit # No prelinking of the lib LOCAL_PRELINK_MODULE := false # the src files that will be build in the lib LOCAL_SRC_FILES := \ Sources/Basic/Basic.c \ Sources/Framework/CUError.c \ Sources/Framework/MyMem.c \ Sources/Framework/TestDB.c \ Sources/Framework/TestRun.c \ Sources/Framework/Util.c \ Sources/Automated/Automated.c \ Sources/Console/Console.c # the header files LOCAL_C_INCLUDES :=$(LOCAL_PATH)/Headers # other shared libs that this lib will use LOCAL_SHARED_LIBRARIES := libcutils libc # add rules for building shared lib include $(BUILD_SHARED_LIBRARY)
以上でビルド可能になるはず。