[cfe-dev] Tests for Clang-tidy STL containers checks

Eugene Zelenko via cfe-dev cfe-dev at lists.llvm.org
Wed Dec 16 10:38:42 PST 2015


Hi, Alexander!

On Wed, Dec 16, 2015 at 5:53 AM, Alexander Kornienko <alexfh at google.com> wrote:
> We mock out STL containers for multiple reasons. One of them is to make the
> tests hermetic (as in "independent from the environment"). The developer has
> to make the mocks appropriately model the implementation of the standard
> library. If another implementation is sufficiently different, we need to add
> mocks for that implementation as well. Making the tests use actual library
> headers is problematic, since it will significantly increase testing time
> and complicate integration with different tests environments. So I'm
> strongly against this. We could make a mode where the actual headers are
> used instead of mock implementations, but we're not going to remove mocks
> completely.

Problem with hermetic tests that they are testing mocks, not real
implementations. I caught problems manually because I was lucky to
spot pattern which was supposed to be recognized by
readability-container-size-empty, but it was not. But this should be
caught by regular automated regressions to maintain reliability of
Clang-tidy checks.

I don't think that including STL headers will increase tests time significantly.

> Please file bugs for the specific issues you find. If you can isolate
> specific differences between library implementations that result in
> incorrect work of the checks (and maybe create the appropriate mocks for the
> library you use), it would help check developers to fix their checks.

I already filed bugs 25804, 25812 and 25813 and developers took care
about them, through problems were not fixed completely yet.

Eugene.


More information about the cfe-dev mailing list