The current expectations Parser looks at all the configurations for a given port, but fails to account for different configurations having different lists of Skipped files (as in Qt, for example). So, "run-webkit-tests --lint-test-files --platform qt-mac" might pass and "run-webkit-tests --lint-test-files --platform qt-linux" might fail even though they share the same expectations file and the same list of test configurations.
there's several parts to this ...
1) should the linter warn when entries in an earlier file are overridden in a later file (since by design this is supposed to be okay)? I think the answer is, at least by default, no, but maybe there should be a flag to enable this, otherwise it will be easy for cruft to build up in top level files.
2) now that later files strictly override earlier files, files can be linted independently (if you don't want (1) to generate warnings), and we need to change the linter to actually track the contents of each file (especially since we can use dummy names for entries in the cascade that have the same name across ports but different values).
3) Since the results of the lint (depending on the answer in (1) ) are dependent on both the expectations and list of skips, clearly the linter needs to look at port.skipped_layout_tests() as well as the expectations files in order to determine if we've already linted the combination.
Qt isn't present in trunk.