/*
 * This file contains expectations for ART's buildbot's concurrent collector
 * configurations. The purpose of this file is to temporary and quickly list
 * failing tests and not break the bots on the CC configurations, until they
 * are fixed or until the libcore expectation files get properly updated. The
 * script that uses this file is art/tools/run-libcore-tests.sh.
 *
 * It is also used to enable AOSP experiments, and not mess up with CTS's
 * expectations.
 */

[
{
  description: "Assertion failing on the concurrent collector configuration.",
  result: EXEC_FAILED,
  names: ["jsr166.LinkedTransferQueueTest#testTransfer2",
          "jsr166.LinkedTransferQueueTest#testWaitingConsumer"],
  bug: 25883050
},
{
  description: "libcore.java.lang.OldSystemTest#test_gc failure on armv8-concurrent-collector.",
  result: EXEC_FAILED,
  names: ["libcore.java.lang.OldSystemTest#test_gc"],
  bug: 26155567
},
{
  description: "TimeoutException on host-{x86,x86-64}-concurrent-collector",
  result: EXEC_FAILED,
  modes: [host],
  names: ["libcore.java.util.zip.DeflaterOutputStreamTest#testSyncFlushEnabled",
          "libcore.java.util.zip.DeflaterOutputStreamTest#testSyncFlushDisabled",
          "libcore.java.util.zip.GZIPInputStreamTest#testLongMessage",
          "libcore.java.util.zip.GZIPOutputStreamTest#testSyncFlushEnabled",
          "libcore.java.util.zip.OldAndroidGZIPStreamTest#testGZIPStream",
          "libcore.java.util.zip.OldAndroidZipStreamTest#testZipStream",
          "libcore.java.util.zip.ZipFileTest#testZipFileWithLotsOfEntries",
          "libcore.java.util.zip.ZipInputStreamTest#testLongMessage"],
  bug: 26507762
},
{
  description: "TimeoutException on hammerhead-concurrent-collector",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.icu.RelativeDateTimeFormatterTest#test_bug25821045",
          "libcore.java.text.SimpleDateFormatTest#testLocales",
          "libcore.java.util.zip.ZipFileTest#testZipFileWithLotsOfEntries"],
  bug: 26711853
}
]
