# Build rules for the OpenAFS test suite. srcdir=@srcdir@/../src/external/c-tap-harness/tests abs_top_srcdir=@abs_top_srcdir@ abs_top_builddir=@abs_top_builddir@ include @TOP_OBJDIR@/src/config/Makefile.config include @TOP_OBJDIR@/src/config/Makefile.pthread MODULE_CFLAGS = -DC_TAP_SOURCE='"$(abs_top_srcdir)/tests"' \ -DC_TAP_BUILD='"$(abs_top_builddir)/tests"' SUBDIRS = tap common auth util cmd volser opr rx all: runtests @for A in $(SUBDIRS); do cd $$A && $(MAKE) $@ && cd .. || exit 1; done runtests: runtests.o $(AFS_LDRULE) runtests.o runtests.o: $(srcdir)/runtests.c $(AFS_CCRULE) $(srcdir)/runtests.c RUNTESTS_V0_DEFAULT=-l $(abs_top_srcdir)/tests/TESTS RUNTESTS_V1_DEFAULT=-v -l $(abs_top_srcdir)/tests/TESTS # If $(TESTS) is blank, RUNTESTS_ARGS will expand to RUNTESTS_DEFAULT_, so # we'll run our default list of tests. If $(TESTS) is not blank, # $(RUNTESTS_DEFAULT_$(TESTS)) will expand into nothing, so RUNTESTS_ARGS will # just become effectively $(TESTS). RUNTESTS_DEFAULT_=$(RUNTESTS_V$(V)_DEFAULT) RUNTESTS_ARGS=$(RUNTESTS_DEFAULT_$(TESTS)) $(TESTS) # To run specific tests, run e.g. 'make check TESTS="rx/foo opr/foo"' check test tests: all runtests MAKECHECK=1 $(abs_top_srcdir)/tests/libwrap @TOP_OBJDIR@/lib \ ./runtests $(RUNTESTS_ARGS) # To start an interactive subshell with the environment required to run # the test programs, run 'make shell'. Run 'exit' to end the subshell. # # Example usage: # # $ make shell # Starting a shell to run tests. Run 'exit' when done. # $ PS1="(tests) $PS1" # Optionally set the PS1 in the subshell. # (tests) $ rx/perf-t # Run tests directly or via a debugger. # ... # (tests) $ exit # Exit when done. # shell: all runtests @if [ "x$$MAKECHECK" = "x1" ]; then \ echo "Already in the tests subshell."; \ else \ echo "Starting a shell to run tests. Run 'exit' when done."; \ MAKECHECK=1 \ C_TAP_SOURCE=@abs_top_srcdir@/tests \ C_TAP_BUILD=@abs_top_builddir@/tests \ SOURCE=@abs_top_srcdir@/tests \ BUILD=@abs_top_builddir@/tests \ @abs_top_srcdir@/tests/libwrap @TOP_OBJDIR@/lib $(SHELL); \ fi install: clean distclean: @for A in $(SUBDIRS); do cd $$A && $(MAKE) $@ && cd .. || exit 1; done $(RM) -f *.o core runtests