mattak's blog

人生を1ミリ進める

google test使ってみる

DL

ちょうど、1.7.0-rcが出ててた。 https://code.google.com/p/googletest/downloads/list

アーカイブを作成

$ cd $HOME/src/gtest-1.7.0
$ export GTEST_DIR=`pwd`
$ g++ -isystem $GTEST_DIR/include -I$GTEST_DIR -pthread -c $GTEST_DIR/src/gtest-all.cc
$ ar -rv libgtest.a gtest-all.o

サンプルが動くかチェック

$ cd $GTEST_DIR/make
$ make
$ ./sample1_unittest

シンプルに手動リンクでビルド

$ mkdir sample
$ cd sample
$ cat main.cpp
#include <gtest/gtest.h>

TEST(SampleTest, IsZero) {
    EXPECT_EQ(1, 1);
}

int
main(int argc, char** argv)
{
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

$ g++ -isystem $GTEST_DIR/include -pthread main.cpp $GTEST_DIR/libgtest.a -o main
$ ./main

cmakeでビルド

CMakeLists.txtを書く

# setting
cmake_minimum_required(VERSION 2.8)

# project name
PROJECT(Sample C CXX)

# include
INCLUDE_DIRECTORIES($ENV{HOME}/src/gtest-1.7.0/include)
LINK_DIRECTORIES($ENV{HOME}/src/gtest-1.7.0)

# flags
FIND_PACKAGE(Threads)

# target
ADD_EXECUTABLE(main main.cpp)

TARGET_LINK_LIBRARIES(main gtest)
TARGET_LINK_LIBRARIES(main ${CMAKE_THREAD_LIBS_INIT})

ビルドする

$ mkdir build
$ cmake ..
$ make
$ ./main