# This test tries to record fake audio in real-time.
# This appears to be too sensitive to slowdown, see http://crbug.com/49497
FakeAudioInputTest.BasicCallbacks

# Flaky under all Valgrind-based tools, see http://crbug.com/298771
PipelineIntegrationTest.MediaSource_Opus_Seeking_WebM

# Flaky under valgrind, http://crbug.com/492882
PipelineIntegrationTest.BasicPlaybackHashed
PipelineIntegrationTest.BasicPlaybackLive

# crbug.com/409485, cannot revert due to git migration,
# exclude the test now
AudioInputTest.Record
MacAudioInputTest.AUAudioInputStreamVerifyStereoRecording
AUHALStreamTest.CreateOpenStartStopClose
