How do I write an automake file for CxxTest?

587 Views Asked by At

The CxxTest documentation has an example of a Makefile that generates and runs unit tests. How do I do the same for automake (Makefile.am)?

1

There are 1 best solutions below

0
Malvineous On BEST ANSWER

I did this by creating this Makefile.am in a tests directory, where all the test code was:

check_PROGRAMS = tests

EXTRA_tests_SOURCES  = test_example1.hpp
EXTRA_tests_SOURCES += test_example2.hpp

tests_SOURCES = runner-autogen.cpp

BUILT_SOURCES = runner-autogen.cpp
MAINTAINERCLEANFILES = runner-autogen.cpp

runner-autogen.cpp: $(EXTRA_tests_SOURCES)
    /path/to/cxxtest/bin/cxxtestgen --runner=ErrorPrinter -o $@ $<

What this does is compile runner-autogen.cpp into the test program (called tests) and runs it with make check. If any of the listed .hpp files change, it will run cxxtestgen to recreate runner-autogen.cpp.

Because runner-autogen.cpp is listed as a source file, it will be included in the release archive by make dist, so the user won't need cxxtest present unless they modify one of the .hpp files.