Sorry, my previous message accidentally sent before I was done. One more comment:
-----Original Message-----
From: Stefan Beller [mailto:sbeller@google.com]
+test_expect_failure '"checkout --recurse-submodules" needs -f to update
modifed submodule content' '
+ echo modified >submodule/second.t &&
+ test_must_fail git checkout --recurse-submodules HEAD^ &&
+ test_must_fail git diff-files --quiet submodule &&
+ git diff-files --quiet file &&
+ git checkout --recurse-submodules -f HEAD^ &&
+ git diff-files --quiet &&
+ git diff-index --quiet --cached HEAD &&
+ git checkout --recurse-submodules -f master &&
+ git diff-files --quiet &&
+ git diff-index --quiet --cached HEAD
+'
It might be worth adding some comments explaining why you expect these to fail.