/*
 * 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#testSyncFlushDisabled",
          "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"],
  bug: 26711853
}
]
