- Add Makefile.in for building rsync with mgear. Yay!
[mgear/mgear.git] / testsuite
index a0dc8aa..f7ec807 100755 (executable)
--- 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