| # |
| # mod_macro non regression tests |
| |
| # where is apache |
| APA.dir = /tmp/apache |
| |
| # apache executable with mod macro loaded |
| HTTPD = \ |
| $(APA.dir)/bin/httpd \ |
| -C 'LoadModule macro_module modules/mod_macro.so' \ |
| -C "Define PWD $$PWD/conf" |
| |
| # default target |
| .PHONY: default |
| default: clean |
| |
| # run all non regression tests |
| .PHONY: check |
| check: check-out |
| |
| # result directory |
| OUT = out |
| out: |
| mkdir $@ |
| |
| # test cases & results |
| F.conf = $(wildcard conf/test*.conf) |
| F.out = $(F.conf:conf/%.conf=$(OUT)/%.out) |
| |
| # run all tests |
| .PHONY: run-test |
| run-test: $(F.out) |
| |
| # generate & compare in a separate directory |
| .PHONY: check-out |
| check-out: out |
| $(RM) out/*.out |
| $(MAKE) OUT=out run-test |
| diff -r out/ ref/ |
| |
| # generate & compare in the same directory |
| .PHONY: check-ref |
| check-ref: |
| $(RM) ref/*.out |
| $(MAKE) OUT=ref run-test |
| svn diff ref/ |
| |
| # run one test case |
| # filter output so that it is portable |
| # use '|' sed separator because $PWD will contain plenty '/' |
| $(OUT)/%.out: conf/%.conf |
| { \ |
| echo "# testing with $<" ; \ |
| $(HTTPD) -f $$PWD/$< 2>&1 ; \ |
| echo "# exit: $$?" ; \ |
| } > $@.tmp ; \ |
| sed -e "s|$$PWD|.|g" \ |
| -e "s|^\[[\.a-zA-Z0-9 :]*\] ||" \ |
| -e "s|\[pid [0-9]*:tid [0-9]*] ||" \ |
| $@.tmp > $@ ; \ |
| $(RM) $@.tmp |
| |
| # cleanup |
| .PHONY: clean |
| clean: |
| $(RM) *~ |
| $(RM) -r out |