/*
 * This file contains expectations for ART's buildbot. The purpose of this file is
 * to temporary and quickly list failing tests and not break the bots, 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: "Assert.java differences between vogar and junit.",
  result: EXEC_FAILED,
  modes: [host],
  name: "libcore.java.math.RunCSVTests#test_csv"
},
{
  description: "Differences between vogar and cts in user directory",
  result: EXEC_FAILED,
  modes: [device],
  name: "libcore.java.lang.SystemTest#testSystemProperties_mutable"
},
{
  description: "Differences between vogar and cts. Passes with --mode activity",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.java.lang.OldSystemTest#test_getProperties"]
},
{
  description: "Differences between vogar and cts. EACCESS when run with vogar.
                Passes on host, passes with cts. Passes with vogar with su
                (--invoke-with \"su root\"). Does not pass after setting chmod
                777 all directories on path to socket (on device without su).",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.io.OsTest#testUnixDomainSockets_in_file_system"]
},
{
  description: "Issue with incorrect device time (1970)",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.java.util.TimeZoneTest#testDisplayNames",
          "libcore.java.util.TimeZoneTest#test_useDaylightTime_Taiwan",
          "org.apache.harmony.tests.java.util.TimeZoneTest#test_hasSameRules_Ljava_util_TimeZone"],
  bug: 20879084
},
{
  description: "Issue with incorrect device time (1970). Test assumes that DateTime.now()
                is greater then a date in 1998.",
  result: EXEC_FAILED,
  modes: [device],
  names: ["org.apache.harmony.tests.java.util.DateTest#test_Constructor"]
},
{
  description: "Failing due to a locale problem on hammerhead.",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.icu.DateIntervalFormatTest#test10089890",
          "libcore.icu.DateIntervalFormatTest#test10209343_when_not_this_year",
          "libcore.icu.DateIntervalFormatTest#test10560853_for_single_day_events",
          "libcore.icu.DateIntervalFormatTest#test10560853_when_time_not_displayed",
          "libcore.icu.RelativeDateTimeFormatterTest#test_getRelativeDateTimeString",
          "libcore.icu.RelativeDateTimeFormatterTest#test_getRelativeTimeSpanString",
          "libcore.icu.RelativeDateTimeFormatterTest#test_getRelativeTimeSpanStringAbbrev",
          "libcore.java.text.OldDateFormatTest#test_parseLString",
          "libcore.java.text.SimpleDateFormatTest#testDstZoneNameWithNonDstTimestamp",
          "libcore.java.text.SimpleDateFormatTest#testDstZoneWithNonDstTimestampForNonHourDstZone",
          "libcore.java.text.SimpleDateFormatTest#testNonDstZoneNameWithDstTimestamp",
          "libcore.java.text.SimpleDateFormatTest#testNonDstZoneWithDstTimestampForNonHourDstZone"]
},
{
  description: "Failing due to missing localhost on hammerhead and volantis.",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.javax.crypto.CipherTest#testCipherInitWithCertificate",
          "libcore.net.NetworkSecurityPolicyTest#testCleartextTrafficPolicyWithFtpURLConnection",
          "libcore.net.NetworkSecurityPolicyTest#testCleartextTrafficPolicyWithJarFtpURLConnection",
          "libcore.net.NetworkSecurityPolicyTest#testCleartextTrafficPolicyWithLoggingSocketHandler",
          "libcore.net.NetworkSecurityPolicyTest#testCleartextTrafficPolicyWithHttpURLConnection",
          "libcore.net.NetworkSecurityPolicyTest#testCleartextTrafficPolicyWithJarHttpURLConnection",
          "org.apache.harmony.luni.tests.internal.net.www.protocol.http.HttpURLConnectionTest",
          "org.apache.harmony.luni.tests.internal.net.www.protocol.https.HttpsURLConnectionTest",
          "org.apache.harmony.luni.tests.java.net.URLConnectionTest",
          "org.apache.harmony.tests.java.util.ScannerTest#test_Constructor_LReadableByteChannel"
         ]
},
{
  description: "Test timeouts",
  result: EXEC_TIMEOUT,
  modes: [device],
  names: ["org.apache.harmony.tests.java.util.ScannerTest#testPerformance"]
},
{
  description: "Needs the newest cat version on the device",
  result: EXEC_FAILED,
  modes: [device],
  names: ["org.apache.harmony.tests.java.lang.ProcessTest#test_getErrorStream"]
},
{
  description: "Short date format flag ignored for es_US locale.",
  result: EXEC_FAILED,
  name: "libcore.icu.DateIntervalFormatTest#test_formatDateInterval",
  bug: 18619426
},
{
  description: "Error decoding digital signature bytes.",
  result: EXEC_FAILED,
  name: "org.apache.harmony.security.tests.java.security.Signature2Test#test_verify$BII",
  bug: 18869265
},
{
  description: "Test sometimes timeouts on volantis, and on most modes in debug mode",
  result: EXEC_TIMEOUT,
  names: ["libcore.java.lang.SystemTest#testArrayCopyConcurrentModification"],
  bug: 19165288
},
{
  description: "Needs kernel updates on host/device",
  result: EXEC_FAILED,
  names: ["libcore.io.OsTest#test_socketPing"]
},
{
  description: "Linker issues in chrooted environment",
  modes: [device],
  result: EXEC_FAILED,
  names: ["org.apache.harmony.tests.java.lang.ProcessManagerTest#testEnvironment"]
},
{
  description: "Crypto failures",
  result: EXEC_FAILED,
  names: ["libcore.javax.crypto.CipherTest#testCipher_ShortBlock_Failure",
          "libcore.javax.crypto.CipherTest#testCipher_Success"]
},
{
  description: "Flake when running with libartd.so or interpreter",
  result: EXEC_FAILED,
  bug:22106064,
  name: "libcore.java.lang.OldThreadGroupTest#test_enumerateLThreadArrayLZtest_enumerateLThreadArrayLZ"
},
{
  description: "test_xattr fails on arm64 on the buildbots only: needs investigation",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.io.OsTest#test_xattr"],
  bug: 22258911
},
{
  description: "fails on L builds: needs investigation",
  result: EXEC_FAILED,
  modes: [device],
  names: ["org.apache.harmony.tests.java.lang.ClassTest#test_forNameLjava_lang_String"]
},
{
  description: "TimeZoneTest.testAllDisplayNames times out, needs investigation",
  result: EXEC_TIMEOUT,
  modes: [device],
  names: ["libcore.java.util.TimeZoneTest#testAllDisplayNames"],
  bug: 22786792
},
{
  description: "Lack of IPv6 on some buildbot slaves",
  result: EXEC_FAILED,
  names: ["libcore.io.OsTest#test_byteBufferPositions_sendto_recvfrom_af_inet6",
          "libcore.io.OsTest#test_sendtoSocketAddress_af_inet6"],
  bug: 25178637
},
{
  description: "Non-deterministic test because of a dependency on weak ref collection.",
  result: EXEC_FAILED,
  names: ["org.apache.harmony.tests.java.util.WeakHashMapTest#test_keySet"],
  bug: 25437292
},
{
  description: "Failing tests after OpenJDK move.",
  result: EXEC_FAILED,
  bug: 26326992,
  names: ["libcore.icu.RelativeDateTimeFormatterTest#test_getRelativeDateTimeStringDST",
          "libcore.java.lang.OldSystemTest#test_load",
          "libcore.java.text.NumberFormatTest#test_currencyWithPatternDigits",
          "libcore.java.text.NumberFormatTest#test_setCurrency",
          "libcore.java.text.OldNumberFormatTest#test_getIntegerInstanceLjava_util_Locale",
          "libcore.java.util.CalendarTest#testAddOneDayAndOneDayOver30MinuteDstForwardAdds48Hours",
          "libcore.java.util.CalendarTest#testNewCalendarKoreaIsSelfConsistent",
          "libcore.java.util.CalendarTest#testSetTimeInZoneWhereDstIsNoLongerUsed",
          "libcore.java.util.CalendarTest#test_nullLocale",
          "libcore.java.util.FormatterTest#test_numberLocalization",
          "libcore.java.util.FormatterTest#test_uppercaseConversions",
          "libcore.javax.crypto.CipherTest#testCipher_getInstance_WrongType_Failure",
          "libcore.javax.crypto.CipherTest#testDecryptBufferZeroSize_mustDecodeToEmptyString",
          "libcore.javax.security.auth.x500.X500PrincipalTest#testExceptionsForWrongDNs",
          "org.apache.harmony.luni.tests.java.net.URLConnectionTest#test_getDate",
          "org.apache.harmony.luni.tests.java.net.URLConnectionTest#test_getExpiration",
          "org.apache.harmony.regex.tests.java.util.regex.PatternSyntaxExceptionTest#testPatternSyntaxException",
          "org.apache.harmony.tests.java.lang.FloatTest#test_parseFloat_LString_Harmony6261",
          "org.apache.harmony.tests.java.lang.ThreadTest#test_isDaemon",
          "org.apache.harmony.tests.java.text.DecimalFormatSymbolsTest#test_setInternationalCurrencySymbolLjava_lang_String",
          "org.apache.harmony.tests.java.text.DecimalFormatTest#testSerializationHarmonyRICompatible",
          "org.apache.harmony.tests.java.text.SimpleDateFormatTest#test_parseLjava_lang_StringLjava_text_ParsePosition",
          "org.apache.harmony.tests.java.text.SimpleDateFormatTest#test_parse_W_w_dd_MMMM_yyyy_EEEE",
          "org.apache.harmony.tests.java.text.SimpleDateFormatTest#test_parse_dayOfYearPatterns",
          "org.apache.harmony.tests.java.text.SimpleDateFormatTest#test_parse_h_m_z",
          "org.apache.harmony.tests.java.text.SimpleDateFormatTest#test_parse_h_z_2DigitOffsetFromGMT",
          "org.apache.harmony.tests.java.text.SimpleDateFormatTest#test_parse_h_z_4DigitOffsetFromGMT",
          "org.apache.harmony.tests.java.text.SimpleDateFormatTest#test_parse_h_z_4DigitOffsetNoGMT",
          "org.apache.harmony.tests.java.util.jar.JarFileTest#test_getInputStreamLjava_util_jar_JarEntry_subtest0",
          "libcore.java.util.CalendarTest#test_clear_45877",
          "org.apache.harmony.crypto.tests.javax.crypto.spec.SecretKeySpecTest#testGetFormat",
          "org.apache.harmony.tests.java.util.TimerTaskTest#test_scheduledExecutionTime"]
},
{
  description: "Missing resource in classpath",
  result: EXEC_FAILED,
  modes: [device],
  names: ["libcore.java.util.prefs.OldAbstractPreferencesTest#testClear",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testExportNode",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testExportSubtree",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testGet",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testGetBoolean",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testGetByteArray",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testGetDouble",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testGetFloat",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testGetInt",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testGetLong",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testKeys",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testNodeExists",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testPut",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testPutBoolean",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testPutByteArray",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testPutDouble",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testPutFloat",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testPutInt",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testPutLong",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testRemove",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testRemoveNode",
          "libcore.java.util.prefs.OldAbstractPreferencesTest#testSync",
          "libcore.java.util.prefs.PreferencesTest#testHtmlEncoding",
          "libcore.java.util.prefs.PreferencesTest#testPreferencesClobbersExistingFiles",
          "org.apache.harmony.tests.java.util.PropertiesTest#test_storeToXMLLjava_io_OutputStreamLjava_lang_StringLjava_lang_String",
          "org.apache.harmony.tests.java.util.prefs.AbstractPreferencesTest#testExportNode",
          "org.apache.harmony.tests.java.util.prefs.AbstractPreferencesTest#testExportSubtree",
          "org.apache.harmony.tests.java.util.prefs.AbstractPreferencesTest#testFlush",
          "org.apache.harmony.tests.java.util.prefs.AbstractPreferencesTest#testSync",
          "org.apache.harmony.tests.java.util.prefs.FilePreferencesImplTest#testPutGet"]
},
{
  description: "libnativehelper_compat_libc++ loading issue",
  result: EXEC_FAILED,
  modes: [device],
  names: ["dalvik.system.JniTest#testGetSuperclass",
          "dalvik.system.JniTest#testPassingBooleans",
          "dalvik.system.JniTest#testPassingBytes",
          "dalvik.system.JniTest#testPassingChars",
          "dalvik.system.JniTest#testPassingClass",
          "dalvik.system.JniTest#testPassingDoubles",
          "dalvik.system.JniTest#testPassingFloats",
          "dalvik.system.JniTest#testPassingInts",
          "dalvik.system.JniTest#testPassingLongs",
          "dalvik.system.JniTest#testPassingObjectReferences",
          "dalvik.system.JniTest#testPassingShorts",
          "dalvik.system.JniTest#testPassingThis",
          "libcore.util.NativeAllocationRegistryTest#testBadSize",
          "libcore.util.NativeAllocationRegistryTest#testEarlyFree",
          "libcore.util.NativeAllocationRegistryTest#testNativeAllocationAllocatorAndNoSharedRegistry",
          "libcore.util.NativeAllocationRegistryTest#testNativeAllocationAllocatorAndSharedRegistry",
          "libcore.util.NativeAllocationRegistryTest#testNativeAllocationNoAllocatorAndNoSharedRegistry",
          "libcore.util.NativeAllocationRegistryTest#testNativeAllocationNoAllocatorAndSharedRegistry",
          "libcore.util.NativeAllocationRegistryTest#testNullArguments"]
},
{
  description: "libnativehelper_compat_libc++.so not found by dlopen on ARM64",
  result: EXEC_FAILED,
  modes: [device],
  bug: 28082914,
  names: ["libcore.java.lang.ThreadTest#testContextClassLoaderIsInherited",
          "libcore.java.lang.ThreadTest#testContextClassLoaderIsNotNull",
          "libcore.java.lang.ThreadTest#testGetAllStackTracesIncludesAllGroups",
          "libcore.java.lang.ThreadTest#testGetStackTrace",
          "libcore.java.lang.ThreadTest#testJavaContextClassLoader",
          "libcore.java.lang.ThreadTest#testLeakingStartedThreads",
          "libcore.java.lang.ThreadTest#testLeakingUnstartedThreads",
          "libcore.java.lang.ThreadTest#testNativeThreadNames",
          "libcore.java.lang.ThreadTest#testThreadInterrupted",
          "libcore.java.lang.ThreadTest#testThreadSleep",
          "libcore.java.lang.ThreadTest#testThreadSleepIllegalArguments",
          "libcore.java.lang.ThreadTest#testThreadWakeup"]
},
{
  description: "Only work with --mode=activity",
  result: EXEC_FAILED,
  names: [ "libcore.java.io.FileTest#testJavaIoTmpdirMutable" ]
},
{
  description: "Made for extending, shouldn't be run",
  result: EXEC_FAILED,
  names: ["jsr166.CollectionTest#testEmptyMeansEmpty",
          "jsr166.Collection8Test#testForEach",
          "jsr166.Collection8Test#testForEachConcurrentStressTest"]
}
]
