# These tests leak data intentionally, so are inappropriate for Valgrind tests.
# Similar list in ../purify/net_unittests.exe.gtest.txt
# TODO(dkegel): either merge the two files or keep them in sync,
# see http://code.google.com/p/chromium/issues/detail?id=8951
DiskCacheBackendTest.AppCacheInvalidEntry
DiskCacheBackendTest.AppCacheInvalidEntryRead
DiskCacheBackendTest.AppCacheInvalidEntryWithLoad
DiskCacheBackendTest.InvalidEntry
DiskCacheBackendTest.InvalidEntryRead
DiskCacheBackendTest.InvalidEntryWithLoad
DiskCacheBackendTest.TrimInvalidEntry
DiskCacheBackendTest.TrimInvalidEntry2
DiskCacheBackendTest.InvalidEntryEnumeration
DiskCacheBackendTest.NewEvictionInvalidEntry
DiskCacheBackendTest.NewEvictionInvalidEntryRead
DiskCacheBackendTest.NewEvictionInvalidEntryWithLoad
DiskCacheBackendTest.NewEvictionTrimInvalidEntry
DiskCacheBackendTest.NewEvictionTrimInvalidEntry2
DiskCacheBackendTest.NewEvictionInvalidEntryEnumeration
