| |
| coverage_opts = -ftest-coverage -fprofile-arcs |
| |
| binaries = unit_test jhash_test config_test metrics_test |
| include = -I ../src/xapp -I ../src/alarm -I ../src/messaging -I ../src/config -I ../ext/jsmn -I ../src/json -I ../src/metrics -I ../src/model -I ../src/rest-client -I ../src/rest-server |
| |
| tests:: $(binaries) |
| |
| # RMR emulation |
| rmr_em.o:: rmr_em.c |
| cc -g rmr_em.c -c |
| |
| # include the emulated rmr stuff, but we still need the rmr lib for symtab things which we cannot hope to |
| # emulate (and don't need to) |
| # |
| unit_test:: unit_test.cpp rmr_em.o |
| g++ -g $(coverage_opts) $(include) unit_test.cpp -o unit_test -L../.build -lricxfcpp rmr_em.o -lrmr_si -lpthread -lm -lboost_system -lcrypto -lssl -lcpprest -lpistache -lnlohmann_json_schema_validator |
| |
| # build a special jwrapper object with coverage settings |
| jwrapper_test.o:: ../src/json/jwrapper.c ../src/json/jwrapper.h |
| cc $(coverage_opts) -DDEBUG=0 -g -I ../src/json -I ../ext/jsmn ../src/json/jwrapper.c -c -o jwrapper_test.o |
| |
| jhash_test:: jwrapper_test.o jhash_test.cpp |
| # do NOT link the xapp lib; we include all modules in the test programme |
| g++ -g $(coverage_opts) -I ../src/json -I ../ext/jsmn jhash_test.cpp -o jhash_test jwrapper_test.o -lrmr_si -lpthread -lm -lboost_system -lcrypto -lssl -lcpprest -lpistache -lnlohmann_json_schema_validator |
| |
| metrics_test:: metrics_test.cpp rmr_em.o |
| g++ -g $(coverage_opts) $(include) metrics_test.cpp -o metrics_test -L../.build -lricxfcpp rmr_em.o -l rmr_si -lpthread -lm -lboost_system -lcrypto -lssl -lcpprest -lpistache -lnlohmann_json_schema_validator |
| |
| config_test:: config_test.cpp jwrapper_test.o |
| g++ -g $(coverage_opts) $(include) config_test.cpp -o config_test jwrapper_test.o -lricxfcpp -lrmr_si -lpthread -lm -lboost_system -lcrypto -lssl -lcpprest -lpistache -lnlohmann_json_schema_validator |
| |
| # prune gcov files generated by system include files |
| clean:: |
| rm -f *.h.gcov *.c.gcov |
| |
| # ditch anything that can be rebuilt |
| nuke:: |
| rm -f *.a *.o *.gcov *.gcda *.gcno core a.out $(binaries) |
| |
| |