I find that many places we should use isHeaderLikeModules instead of isModuleMapModules since the semantics of clang module map modules are similar to header units.
But the downside of the patch is that it misses test cases. Another alternative will be add the test case one by one, which will be more painful and slower but more stable.