cmakeとCppUTestの実行やってみる
cmakeとかとても便利ですね。
昔やってた仕事がゴリゴリMakefile書いてたの思い出しました(T_T)
ということで、最初に言っておきますが今回はCocos2d-x関係ないです。 C++とtestのお話です。
参考
上記書籍にでてくるサンプルコード github
brewでcpputestをinstallする
installされたディレクトリをメモっとく。/usr/local/Cellar/cpputest/3.5
$ brew install cpputest $ brew info cpputest cpputest: stable 3.5 http://www.cpputest.org/ /usr/local/Cellar/cpputest/3.5 (49 files, 852K) * Built from source From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/cpputest.rb
cpputestの環境パスを追加
~/.bash_profile
# CPPUTEST export CPPUTEST_HOME=/usr/local/Cellar/cpputest/3.5
cmakeをbrewでインストールする
$ brew install cmake
たぶん2.8がinstallされる。
cpputestのサンプルをgit cloneする
$ git clone https://github.com/davisford/cmake-cpputest
サンプルプロジェクトをcmakeしてmakeする
$ cd cmake-cpputest $ mkdir build $ cd build $ cmake .. $ make
こんな警告ができるけど、とりあえず気にしない。(今はCppUtest実行するのが目標)
warning: implicit declaration of function 'RuntimeError' is invalid in C99
100%で成功。
1 warning generated. Linking C static library ../lib/libLedDriver.a [ 20%] Built target LedDriver [ 40%] Built target Tutorial [ 60%] Built target RuntimeErrorStub [ 80%] Built target LedDriverTest Linking CXX executable ../bin/RunAllTests [100%] Built target RunAllTests
テストを実行する
$ ./bin/RunAllTests -v TEST(LedDriver, AllOff) - 0 ms TEST(LedDriver, AllOn) - 0 ms TEST(LedDriver, OutOfBoundsLedsAreAlwaysOff) - 0 ms TEST(LedDriver, IsOff) - 0 ms TEST(LedDriver, IsOn) - 0 ms TEST(LedDriver, OutOfBoundsProducesRuntimeError) - 0 ms IGNORE_TEST(LedDriver, OutOfBoundsToDo) - 0 ms TEST(LedDriver, OutOfBoundsTurnOffDoesNoHarm) - 0 ms TEST(LedDriver, OutOfBoundsTurnOnDoesNoHarm) - 0 ms TEST(LedDriver, UpperAndLowerBounds) - 0 ms TEST(LedDriver, LedMemoryIsNotReadable) - 0 ms TEST(LedDriver, TurnOffAnyLed) - 0 ms TEST(LedDriver, TurnOnMultipleLeds) - 0 ms TEST(LedDriver, TurnOffLedOne) - 0 ms TEST(LedDriver, TurnOnLedOne) - 0 ms TEST(LedDriver, LedsAreOffAfterCreate) - 0 ms OK (16 tests, 16 ran, 20 checks, 0 ignored, 0 filtered out, 1 ms)
わーい。Testできたー(小並感
おわり
とりあえず、cmakeが何ぞ?とか細かいこととかどうなってるかとか今は気にしない。
(基本的に、動くものを用意してそこからイジりながら理解する派なので。。。)
もし次があれば、これをベースに適当にCocos2d-xのソースをテストしみようかなーとか思ってる。