+# Test cleaning. Remember, bar is still overridden.
+
+start_section "Cleaning"
+do_mgear clean
+
+assert_saw 'rm.*foo' # Some sort of indication of foo's deletion
+assert ! [ -f foo ] # foo deleted
+assert ! [ -f foo.g ] # foo.g deleted
+assert [ -f bar ] # bar not actually deleted...
+assert_contents bar <<<NEWCONTENT # and contents still correct.
+
+# Test rebuild and clean after override removal.
+
+start_section "Rebuild after override removal"
+rm bar
+do_mgear bar
+assert_generated bar
+assert_contents bar <<'EOF' # contents of bar restored according to rule
+the bar file has a different personality
+
+# I slip through
+warn: tell me about it!
+EOF
+
+start_section "Clean after override removal"
+do_mgear clean
+assert_saw 'rm.*bar'
+assert ! [ -f bar ] # bar finally deleted
+
+# Override bar again. Make sure an override works if bar.g doesn't exist just
+# as well as if bar.g is older than bar.
+
+start_section "Override bar before it is ever built"
+echo NEWERCONTENT >bar
+do_mgear bar
+
+assert_saw -i overrid
+assert_contents bar <<<NEWERCONTENT
+