/*
 * This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
 */
[
{
  description: "libcore.java.io.OldFileTest#test_deleteOnExit fails on IRM05 mysid-user",
  name: "libcore.java.io.OldFileTest#test_deleteOnExit",
  bug: 5834665
},
{
  description: "We're retiring the security manager. Unfortunately, tests all over the place
                need to check that they're secure, so they all fail when we refuse to install
                a security manager. This suppresses all of these failures.",
  result: EXEC_FAILED,
  failure: "disable securityManager",
  pattern: ".*java.lang.SecurityException\\s+at java.lang.System.setSecurityManager.*",
  bug: 2585285
},
{
  description: "ignore compilation errors due to different available APIs",
  result: COMPILE_FAILED,
  failure: "ignore compilation errors",
  pattern: ".*\\.java:\\d+: cannot find symbol.*"
},
{
  description: "the average length of possible UTF-8 sequences is 2 bytes.",
  result: EXEC_FAILED,
  name: "org.apache.harmony.tests.java.nio.charset.UTFCharsetEncoderTest#testSpecificDefaultValue",
  substring: "junit.framework.AssertionFailedError: expected:<1.1> but was:<2.0>"
},
{
  description: "Some tests (ExcludedProxyTest) connect to a public webserver to check that the HTTP client works",
  result: EXEC_FAILED,
  failure: "connect to the Internet",
  pattern: ".*java.net.UnknownHostException:.*jcltest.apache.org.*"
},
{
  description: "Some tests depend on ICU data, which has changed. Others make assumptions about floating point rounding",
  result: EXEC_FAILED,
  names: [
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalExceptionOrder",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_DateTimeConversion",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionE",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionF",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionG",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_FloatDoubleBigDecimalExceptionOrder",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_GeneralConversionOther",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_LineSeparator",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Percent",
    "org.apache.harmony.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Width"
  ]
},
{
  description: "(Needs investigation) Some tests make assertions that don't make sense, others use broken port allocation logic.",
  result: EXEC_FAILED,
  names: [
    "org.apache.harmony.tests.java.net.Inet6AddressTest#test_getByNameLjava_lang_String",
    "org.apache.harmony.tests.java.net.InetAddressTest#test_getByNameLjava_lang_String",
    "org.apache.harmony.tests.java.net.InetAddressTest#test_isReachableLjava_net_NetworkInterfaceII_loopbackInterface"
  ]
},
{
  description: "(Needs investigation) Test failures from the harmony import of external/apache-harmony/archive",
  bug: 12189307,
  result: EXEC_FAILED,
  names: [
    "org.apache.harmony.tests.java.util.jar.ManifestTest#testNul",
    "org.apache.harmony.tests.java.util.jar.ManifestTest#testRead",
    "org.apache.harmony.tests.java.util.jar.ManifestTest#testStreamConstructor"
  ]
},
{
  description: "Potentially flakey because they rely on a specific local TCP port being free.",
  result: EXEC_FAILED,
  names: [
      "org.apache.harmony.tests.java.nio.channels.ServerSocketChannelTest#test_bind_explicitPort"
  ]
},
{
  description: "The ResourceBundle code under test is probably not used much on Android and needs a lot of attention.",
  modes: [device],
  bug: 13747957,
  names: [
      "org.apache.harmony.tests.java.util.ControlTest#test_needsReload_LStringLLocaleLStringLClassLoaderResourceBundleJ"
  ]
},
{
  description: "Fails in CTS, passes in CoreTestRunner.",
  result: EXEC_FAILED,
  modes: [device],
  names: [
      "org.apache.harmony.tests.java.net.URLConnection#test_getContentEncoding",
      "libcore.java.text.OldNumberFormatTest#test_parseLjava_lang_String",
      "libcore.java.nio.channels.OldSocketChannelTest#test_writeLjava_nio_ByteBuffer_Nonblocking_HugeData",
      "org.apache.harmony.tests.java.lang.ProcessManagerTest#testSleep",
      "libcore.java.security.cert.OldPKIXParametersTest#testPKIXParametersKeyStore04"
  ]
},
{
  description: "Suffers from DH slowness, disabling for now.",
  result: EXEC_FAILED,
  names: [
      "libcore.java.security.OldDHTest#testDHGen",
      "libcore.java.security.OldKeyPairGeneratorTestDH#testKeyPairGenerator",
      "libcore.javax.crypto.spec.KeyPairGeneratorTestDH#testKeyPairGenerator",
      "libcore.javax.crypto.spec.AlgorithmParametersTestDH#testAlgorithmParameters",
      "libcore.javax.crypto.spec.AlgorithmParameterGeneratorTestDH#testAlgorithmParameterGenerator"
  ]
},
{
  description: "Destroys MD5 provider, hurts succeeding tests",
  result: EXEC_FAILED,
  names: [
      "org.apache.harmony.tests.api.javax.security.cert.X509CertificateTest#testVerifyPublicKey",
      "org.apache.harmony.tests.api.javax.security.cert.X509CertificateTest#testVerifyPublicKeyString"
  ]
},
{
  description: "Suffers from side effect of other, currently unknown test",
  result: EXEC_FAILED,
  names: [
      "org.apache.harmony.luni.tests.internal.net.www.protocol.http.HttpURLConnectionTest#testProxyAuthorization"
  ]
},
{
  description: "Support_TestWebServer requires isolation.",
  result: EXEC_FAILED,
  names: [
      "libcore.java.net.OldURLClassLoaderTest#test_findResourceLjava_lang_String"
  ]
},
{
  description: "Causes OutOfMemoryError to test finalization",
  result: EXEC_FAILED,
  names: [
      "org.apache.harmony.tests.java.lang.ref.SoftReferenceTest#test_get_SoftReference",
      "org.apache.harmony.crypto.tests.javax.crypto#ExemptionMechanismTest#test_finalize"
  ]
},
{
  description: "Causes open dex file error",
  modes: [device],
  names: [
      "org.apache.harmony.tests.java.lang.reflect.GenericSignatureFormatErrorTest#test_signatureFormatError"
  ]
}
]
