/*
 * 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",
          "test.java.util.TestFormatter"]
},
{
  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"]
}
]
