/*
 * This file contains expectations for ART's buildbot. The purpose of this file is
 * to temporarily 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: "Os.memfd_create() only supports bionic-based platforms.",
  result: EXEC_FAILED,
  modes: [host],
  names: ["libcore.android.system.OsTest#testMemfdCreate",
          "libcore.android.system.OsTest#testMemfdCreateErrno",
          "libcore.android.system.OsTest#testMemfdCreateFlags"]
},
{
  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.libcore.io.OsTest#testUnixDomainSockets_in_file_system"]
},
{
  description: "TCP_USER_TIMEOUT is not defined on host's tcp.h (glibc-2.15-4.8).",
  result: EXEC_FAILED,
  modes: [host],
  names: ["libcore.android.system.OsConstantsTest#testTcpUserTimeoutIsDefined",
          "libcore.libcore.io.OsTest#test_socket_tcpUserTimeout_setAndGet",
          "libcore.libcore.io.OsTest#test_socket_tcpUserTimeout_doesNotWorkOnDatagramSocket"],
  bug: 30402085
},
{
  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.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",
          "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: "Needs kernel updates on host/device",
  result: EXEC_FAILED,
  names: ["libcore.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: "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.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: "Lack of IPv6 on some buildbot workers",
  result: EXEC_FAILED,
  names: ["libcore.libcore.io.OsTest#test_byteBufferPositions_sendto_recvfrom_af_inet6",
          "libcore.libcore.io.OsTest#test_sendtoSocketAddress_af_inet6",
          "libcore.libcore.io.OsTest#test_recvfrom_EmptyPacket"],
  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: "Only work with --mode=activity",
  result: EXEC_FAILED,
  names: [ "libcore.java.io.FileTest#testJavaIoTmpdirMutable" ]
},
{
  description: "Flaky test",
  result: EXEC_FAILED,
  bug: 30107038,
  modes: [device],
  names: ["org.apache.harmony.tests.java.lang.ProcessTest#test_destroyForcibly"]
},
{
  description: "Flaky failure, native crash in the runtime.
                Unclear if this relates to the tests running sh as a child process.",
  result: EXEC_FAILED,
  bug: 30657148,
  modes: [device],
  names: ["libcore.java.lang.ProcessBuilderTest#testRedirectInherit",
          "libcore.java.lang.ProcessBuilderTest#testRedirect_nullStreams"]
},
{
  description: "java.io.IOException: Error writing ASN.1 encoding",
  result: EXEC_FAILED,
  names: ["libcore.javax.crypto.spec.AlgorithmParametersTestGCM#testEncoding"]
},
{
  description: "fdsan doesn't exist on the host",
  result: EXEC_FAILED,
  modes: [host],
  bug: 113177877,
  names: ["libcore.libcore.io.FdsanTest#testFileInputStream",
          "libcore.libcore.io.FdsanTest#testFileOutputStream",
          "libcore.libcore.io.FdsanTest#testRandomAccessFile",
          "libcore.libcore.io.FdsanTest#testParcelFileDescriptor",
          "libcore.libcore.io.FdsanTest#testDatagramSocket",
          "libcore.libcore.io.FdsanTest#testSocket"]
},
{
  description: "Timeout on heap-poisoning target builds",
  result: EXEC_FAILED,
  modes: [device],
  bug: 116446372,
  names: ["libcore.libcore.io.FdsanTest#testSocket"]
},
{
  description: "Host implementation of android_getaddrinfo differs from device implementation",
  result: EXEC_FAILED,
  modes: [host],
  bug: 121230364,
  names: [
    "libcore.libcore.net.InetAddressUtilsTest#parseNumericAddress[8]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[10]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[11]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[12]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[5]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[6]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[7]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[8]",
    "libcore.libcore.net.InetAddressUtilsTest#test_isNotNumericAddress[9]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[10]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[11]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[12]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[5]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[6]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[7]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[8]",
    "libcore.libcore.net.InetAddressUtilsTest#test_parseNonNumericAddress[9]"
  ]
},
{
  description: "Timeout on walleye bots, currenlty on OPM1.171019.019. But test passes on Q, so just mark it fail here.",
  result: EXEC_FAILED,
  modes: [device],
  names: [
    "libcore.libcore.io.OsTest#testCrossFamilyBindConnectSendto"
  ]
},
{
  description: "Test fails on host with `socket failed: EACCES (Permission denied)`",
  result: EXEC_FAILED,
  modes: [host],
  names: ["libcore.android.system.OsTest#test_socketPing"]
},
{
  description: "Test fails on host with: `/home/dalvik-prebuild/jaxen/xml/test/tests.xml: open failed: ENOENT (No such file or directory)`",
  result: EXEC_FAILED,
  names: ["libcore.xml.JaxenXPathTestSuite#suite"]
},
{
  description: "Test fails on host with: `/home/dalvik-prebuild/OASIS/XSLT-Conformance-TC/TESTS/catalog.xml: open failed: ENOENT (No such file or directory)`",
  result: EXEC_FAILED,
  names: ["libcore.xml.XsltXPathConformanceTestSuite#suite"]
},
{
  description: "Fails on device",
  result: EXEC_FAILED,
  modes: [device],
  bug: 145348591,
  names: ["libcore.android.system.OsTest#test_if_nametoindex_if_indextoname"]
},
{
  description: "Fails on non-Android and Android versions < R",
  result: EXEC_FAILED,
  names: ["libcore.android.system.OsTest#test_NetlinkSocket"]
},
{
  description: "Times out on device",
  result: EXEC_FAILED,
  modes: [device],
  bug: 161898207,
  names: ["libcore.java.util.zip.ZipFileTest#testZipFileWithLotsOfEntries"]
},
{
  description: "Times out on device with gcstress and poisoning configurations",
  result: EXEC_FAILED,
  modes: [device],
  bug: 161420453,
  names: ["libcore.java.text.DecimalFormatTest#testCurrencySymbolSpacing"]
},
{
  description: "Test failures due to mismatch of conscrypt and boringssl versions on host",
  result: EXEC_FAILED,
  modes: [host],
  names: ["libcore.javax.net.ssl.DefaultHostnameVerifierTest#testAltIpOnlyCert",
          "libcore.javax.net.ssl.DefaultHostnameVerifierTest#testSubjectAltOnlyCert",
          "libcore.javax.net.ssl.DefaultHostnameVerifierTest#testSubjectWithAltNamesCert",
          "libcore.javax.net.ssl.DefaultHostnameVerifierTest#testSubjectWithWildAltNamesCert",
          "libcore.javax.net.ssl.DefaultHostnameVerifierTest#testWildAltNameOnlyCert"],
  bug: 166619732
},
{
  description: "Test failures on host x86 and device",
  result: EXEC_FAILED,
  bug: 228441328,
  names: ["test.java.lang.Math.CeilAndFloorTests#nearIntegerTests",
          "test.java.time.chrono.TestEraDisplayName",
          "test.java.time.format.TestDateTimeFormatterBuilderWithLocale"]
},
{
  description: "Fails on armv8 device",
  result: EXEC_FAILED,
  modes: [device],
  bug: 228441328,
  names: ["test.java.util.zip.ZipFile.Zip64SizeTest#validateZipEntrySizes"]
},
{
  description: "libcore.android.system.OsTest socket tests work on device only",
  result: EXEC_FAILED,
  modes: [host],
  names: ["libcore.android.system.OsTest#test_sendmsg_af_inet6_4K",
          "libcore.android.system.OsTest#test_sendmsg_af_inet6_4K_directBuffer",
          "libcore.android.system.OsTest#test_sendmsg_af_inet_16K_receiveall_without_recv_msgname",
          "libcore.android.system.OsTest#test_sendmsg_af_inet_16K_reciveall",
          "libcore.android.system.OsTest#test_sendmsg_af_inet_16K_recvparts",
          "libcore.android.system.OsTest#test_sendmsg_af_inet_16K_without_send_msgcontrl",
          "libcore.android.system.OsTest#test_sendmsg_af_inet_4K",
          "libcore.android.system.OsTest#test_socket_udpGro_setAndGet",
          "libcore.android.system.OsTest#test_socket_udpGso_set",
          "libcore.android.system.OsTest#testUnixDomainSocket_abstract_name"]
},
{
  description: "java.lang.Math sin/cos/cbrt on host differs from device",
  result: ERROR,
  modes: [host],
  bug: 228174249,
  names: ["test.java.lang.Math.SinCosCornerCasesTests#testCornerCasesCos",
          "test.java.lang.Math.SinCosCornerCasesTests#testCornerCasesSin",
          "test.java.lang.Math.CubeRootTests#testCubeRoot"]
},
{
  description: "Multiple failures",
  result: ERROR,
  bug: 228441328,
  names: ["tck.java.time",
          "test.java.time"]
},
{
  description: "Timing out after ojluni tests were enabled",
  result: ERROR,
  bug: 231439593,
  names: ["org.apache.harmony.tests.java.math.BigIntegerConstructorsTest#testConstructorPrime"]
},
{
  description: "libcore.android.system.OsConstantsTest CAP constants tests work on device only",
  result: EXEC_FAILED,
  modes: [host],
  names: ["libcore.android.system.OsConstantsTest#test_CAP_TO_INDEX",
          "libcore.android.system.OsConstantsTest#test_CAP_TO_MASK",
          "libcore.android.system.OsConstantsTest#test_CAP_constants"]
},
{
   description: "Record test doens't work properly on vogar/",
   result: EXEC_FAILED,
   bug: 272698028,
   names: ["libcore.java.lang.RecordTest",
           "crossvmtest.java.lang.RecordComponentTest",
           "crossvmtest.java.lang.RecordTest"]
}
]