Testing C++ with GoogleTest: installation and Makefile
General reference: GoogleTest Primer.
Installation details are in the README. To sum up:
$ mkdir mybuild # Create a directory to hold the build output.
$ cd mybuild
$ cmake ${GTEST_DIR} # Generate native build scripts.
$ make
$ cp libgtest.a /usr/local/lib
$ cp libgtest_main.a /usr/local/lib
A bare minimum google test is:
#include <gtest/gtest.h>
TEST(MathTest, TwoPlusTwoEqualsFour) {
EXPECT_EQ(2 + 2, 4);
}
int main(int argc, char **argv)
{
::testing::InitGoogleTest( &argc, argv );
return RUN_ALL_TESTS();
}
and compiles with
g++ -I ${GTEST_DIR}/include/ mytest.cpp ${LIBRARIES} -lpthread -o a.out
Wrapping up everything in a nice makefile yields:
TARGET = network TEST = check CC = g++ CFLAGS = -g -Wall LIBS = -lpthread DEPS = file1.h file2.h OBJ = file1.o file2.o GTEST = gtest-1.7.0/include LIBGTEST = /usr/local/lib/libgtest_main.a /usr/local/lib/libgtest.a TESTDIR = tests %.o: %.cpp $(DEPS) $(CC) -c -o $@ $< $(CFLAGS) $(TARGET): $(OBJ) main.o $(CC) -o $@ $^ $(CFLAGS) $(TEST): $(OBJ) $(CC) -o $@ $^ $(CFLAGS) -I $(GTEST) $(TESTDIR)/*.cc $(LIBGTEST) $(LIBS) ./$(TEST) clean: rm -rf *.o *.gch rm -f $(TARGET) $(TEST)