# List of suppressions

# Android will not support StackTrace.
StackTrace.*
#
# Sometimes this is automatically generated by run_tests.py
VerifyPathControlledByUserTest.Symlinks

# http://crbug.com/138845
MessagePumpLibeventTest.TestWatchingFromBadThread

StringPrintfTest.StringPrintfMisc
StringPrintfTest.StringAppendfString
StringPrintfTest.StringAppendfInt
StringPrintfTest.StringPrintfBounds
# TODO(jrg): Fails on bots.  Works locally.  Figure out why.  2/6/12
FieldTrialTest.*
# Flaky?
ScopedJavaRefTest.RefCounts
FileTest.MemoryCorruption
MessagePumpLibeventTest.QuitOutsideOfRun
ScopedFD.ScopedFDCrashesOnCloseFailure

# http://crbug.com/245043
StackContainer.BufferAlignment
