My team sometimes discovers bugs in our build system where modifying one particular file doesn't trigger a rebuild of some dependent file.
While our continuous integration system (Jenkins) catches problems when building the whole project, we don't currently have any way to detect problems with partial rebuilds — other than developers getting temporarily confused when they make a change, rebuild, and don't see their change take effect.
As we're in the process of moving from qmake to CMake, now seems like a good time to add some tests of partial rebuilds.
Have you written similar tests? Did you use a shell script (touch, rebuild, grep), or are more advanced tools available?