X-Git-Url: https://mattmccutchen.net/mgear/mgear.git/blobdiff_plain/59ba5775171ada02731636b6ec3877f493085153..b811570b2cb4d27923b09d8b2e286dd234f5fab0:/testsuite diff --git a/testsuite b/testsuite index a0dc8aa..f7ec807 100755 --- a/testsuite +++ b/testsuite @@ -32,7 +32,8 @@ function start_section { function do_mgear { echo "Running: make $*" - make "$@" 2>&1 | tee mgear.log + make --warn-undefined-variables "$@" 2>&1 | tee mgear.log + assert_not_saw 'warning: undefined variable' } function assert_contents { @@ -49,17 +50,15 @@ function assert_saw { if grep -q "$@" mgear.log; then echo "Good, saw '${@:$#}' in build log." else - echo "Expected '${@:$#}' in build log but didn't see it! Log:" - cat mgear.log + echo "Expected '${@:$#}' in build log but didn't see it!" fail fi } function assert_not_saw { if ! grep -q "$@" mgear.log; then - echo "Good, saw '${@:$#}' in build log." + echo "Good, didn't see '${@:$#}' in build log." else - echo "Did not expect '${@:$#}' in build log but saw it! Log:" - cat mgear.log + echo "Did not expect '${@:$#}' in build log but saw it!" fail fi } @@ -119,8 +118,10 @@ include mgear.mk .SECONDARY: include hc-rule.mk -$(call mg-define-rule,%,%.ssc,sleep 1 && grep 'warn' $$< && sed -e 's_//.*$$$$__' $$< >$$t) -$(call mg-define-rule,index,index.in,sort $$< >$$t) +cmd-ssc=sleep 1 && grep 'warn' $< && sed -e 's_//.*$$__' $< >$@ +$(call mg-define-rule,%,%.ssc,cmd-ssc) +cmd-index=sort $< >$@ +$(call mg-define-rule,index,index.in,cmd-index) clean: $(call mg-clean-cmd,.) @@ -128,7 +129,8 @@ clean: EOF cat >hc-rule.mk <<'EOF' -$(call mg-define-rule,%,%.hc,sed -e 's_#.*$$$$__' $$< >$$t) +cmd-hc=sed -e 's_$(hash).*$$__' $< >$@ +$(call mg-define-rule,%,%.hc,cmd-hc) EOF # Input files. @@ -219,10 +221,12 @@ EOF # Change the rule for # comments to strip spaces before a #. # Make sure foo is updated properly. +# Also, make sure commas in commands work properly. start_section "Command change for % <- %.hc" cat >hc-rule.mk <<'EOF' -$(call mg-define-rule,%,%.hc,sed -e 's_ *#.*$$$$__' $$< >$$t) +cmd-hc=sed -e 's, *$(hash).*$$,,' $< >$@ +$(call mg-define-rule,%,%.hc,cmd-hc) EOF do_mgear foo