#!/bin/bash
-# Test suite for Mage.
+# Test suite for mgear.
-echo "Test suite for Mage"
+echo "Test suite for mgear"
cd "$(dirname "$0")"
Z=test-zone
trap 'echo; echo "TEST SUITE FAILED in section $section!" >&2' ERR
#set -x
-ln -s ../mage.mk mage.mk
+ln -s ../mgear.mk .
function fail {
false
echo "SECTION: $1"
}
-function do_mage {
+function do_mgear {
echo "Running: make $*"
- make "$@" 2>&1 | tee mage.log
+ make "$@" 2>&1 | tee mgear.log
}
function assert_contents {
# Options can be passed to grep: assert_saw -i override
function assert_saw {
- if grep -q "$@" mage.log; then
+ 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 mage.log
+ cat mgear.log
fail
fi
}
function assert_not_saw {
- if ! grep -q "$@" mage.log; then
+ if ! grep -q "$@" mgear.log; then
echo "Good, saw '${@:$#}' in build log."
else
echo "Did not expect '${@:$#}' in build log but saw it! Log:"
- cat mage.log
+ cat mgear.log
fail
fi
}
# Tests an implicit rule and two competing explicit rules.
# Watch those dollar signs!
cat >Makefile <<'EOF'
-include mage.mk
+include mgear.mk
.SECONDARY:
include hc-rule.mk
$(call mg-define-rule,%,%.ssc,sleep 1 && grep 'warn' $$< && sed -e 's_//.*$$$$__' $$< >$$t)
# Run and make sure the files were compiled correctly.
start_section "Initial full build"
-do_mage foo bar index
+do_mgear foo bar index
assert_contents foo <<'EOF'
This is the foo file.
# to bar.g accidentally being too old.
start_section "Replay bar warning"
-do_mage foo bar index
+do_mgear foo bar index
assert_uptodate foo
assert_uptodate bar
start_section "Override bar"
sleep 1 # No racy cleanliness
echo NEWCONTENT >bar
-do_mage bar
+do_mgear bar
assert_saw -i overrid
assert_contents bar <<<NEWCONTENT
start_section "Change foo.hc"
sleep 1 # No racy cleanliness
echo 'look: # Last-minute addition.' >>foo.hc
-do_mage index foo
+do_mgear index foo
assert_uptodate index
assert_generated foo
cat >hc-rule.mk <<'EOF'
$(call mg-define-rule,%,%.hc,sed -e 's_ *#.*$$$$__' $$< >$$t)
EOF
-do_mage foo
+do_mgear foo
assert_generated foo
assert_contents foo <<'EOF'
sleep 1 # No racy cleanliness
remember_mtime foo foo.g
sed -e '$s/look: /look:/' -i foo.hc
-do_mage foo
+do_mgear foo
assert_generated foo
assert_touched foo.g