Home | History | Annotate | Download | only in expectations
      1 /*
      2  * This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
      3  */
      4 [
      5 {
      6   description: "libcore.java.io.OldFileTest#test_deleteOnExit fails on IRM05 mysid-user",
      7   name: "libcore.java.io.OldFileTest#test_deleteOnExit",
      8   bug: 5834665
      9 },
     10 {
     11   description: "FIONREAD/SIOCINQ returns the wrong result on sockets (5731252 is the root cause of 5534202)",
     12   name: "libcore.java.net.SocketTest#testAvailable",
     13   bug: 5731252
     14 },
     15 {
     16   description: "libcore.java.net.URLConnectionTest#testServerShutdownInput fails on ICL27 mysid-userdebug (5534202 is caused by 5731252)",
     17   name: "libcore.java.net.URLConnectionTest#testServerShutdownInput",
     18   bug: 5534202
     19 },
     20 {
     21   description: "Support digest authentication in HttpURLConnection",
     22   name: "libcore.net.http.ParsedHeadersTest#testParseChallengesWithManyParameters",
     23   bug: 6156454
     24 },
     25 {
     26   description: "Without no security manager, we don't care if checkPermission's argument is null",
     27   name: "org.apache.harmony.security.tests.java.security.AccessController2Test#test_checkPermission_NullParameter",
     28   result: EXEC_FAILED
     29 },
     30 {
     31   description: "This test and testGetKeepAlive have been failing in our continuous build recently.",
     32   names: [
     33     "libcore.java.net.URLConnectionTest#testConnectTimeouts",
     34     "libcore.java.net.URLConnectionTest#testGetKeepAlive"
     35   ],
     36   bug: 3441111
     37 },
     38 {
     39   description: "on the RI, writing the two halves of the surrogate pair in separate writes
     40           is an error because the CharsetEncoder doesn't remember it's half-way through a
     41           surrogate pair across the two calls!",
     42   result: EXEC_FAILED,
     43   names: [
     44     "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_IGNORE_RI",
     45     "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_REPLACE_RI",
     46     "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_REPORT_RI"
     47   ]
     48 },
     49 {
     50   description: "We're retiring the security manager. Unfortunately, tests all over the place
     51                 need to check that they're secure, so they all fail when we refuse to install
     52                 a security manager. This suppresses all of these failures.",
     53   result: EXEC_FAILED,
     54   failure: "disable securityManager",
     55   pattern: ".*java.lang.SecurityException\\s+at java.lang.System.setSecurityManager.*",
     56   bug: 2585285
     57 },
     58 {
     59   description: "ignore compilation errors due to different available APIs",
     60   result: COMPILE_FAILED,
     61   failure: "ignore compilation errors",
     62   pattern: ".*\\.java:\\d+: cannot find symbol.*"
     63 },
     64 {
     65   description: "These tests assert the exact bytes of the compressed form. Since we use a
     66                 different zlib configuration, we get a different (but valid) compressed form.",
     67   result: EXEC_FAILED,
     68   names: [
     69     "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testAvailable",
     70     "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testRead",
     71     "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testReadByteArrayIntInt",
     72     "org.apache.harmony.archive.tests.java.util.zip.DeflaterTest#test_deflate_beforeSetInput"
     73   ]
     74 },
     75 {
     76   description: "The RI avoids blocking calls when '\\r' is the last character. We don't
     77                 bother since that adds complexity to every other read call, and '\\r' as the
     78                 last character will be diminishingly rare anyway.",
     79   result: EXEC_FAILED,
     80   name: "java.io.BufferedReader.ReadLine",
     81   substring: "java.lang.RuntimeException: Read past limit"
     82 },
     83 {
     84   description: "The RI avoids blocking calls when '\\r' is the last character. We don't
     85                 bother since that adds complexity to every other read call, and '\\r' as the
     86                 last character will be diminishingly rare anyway.",
     87   result: EXEC_FAILED,
     88   name: "java.io.BufferedReader.Ready",
     89   substring: "Hit infinite wait condition"
     90 },
     91 {
     92   description: "The test is checking that the implementation doesn't read any characters
     93                 earlier than it absolutely needs to. This is a bogus requirement; streams
     94                 are allowed to buffer input as necessary.",
     95   result: EXEC_FAILED,
     96   name: "java.io.StreamTokenizer.Reset",
     97   substring: "Test failed: should get token [, but get -1"
     98 },
     99 {
    100   description: "These tests only pass if the root logger hasn't yet been initialized. They
    101                 incorrectly assume that resetting the LogManager will clear the root logger's
    102                 resource bundle; this isn't the case.",
    103   result: EXEC_FAILED,
    104   name: "org.apache.harmony.logging.tests.java.util.logging.OldLoggerTest#testGetLoggerWithRes_InvalidResourceBundle",
    105   substring: "java.lang.IllegalArgumentException: Resource bundle name 'impossible_not_existing' is inconsistent"
    106 },
    107 {
    108   description: "These tests only pass if the root logger hasn't yet been initialized. They
    109                 incorrectly assume that resetting the LogManager will clear the root logger's
    110                 resource bundle; this isn't the case.",
    111   result: EXEC_FAILED,
    112   name: "org.apache.harmony.logging.tests.java.util.logging.LoggerTest#testGetLogger_Empty",
    113   substring: "junit.framework.AssertionFailedError"
    114 },
    115 {
    116   description: "This tests implementation details",
    117   result: UNSUPPORTED,
    118   name: "java.util.EnumSet.OneUniverse"
    119 },
    120 {
    121   description: "Dalvik doesn't include the SunJCE crypto provider",
    122   result: EXEC_FAILED,
    123   names: [
    124     "com.sun.crypto.provider.Cipher.AES.Test4513830",
    125     "com.sun.crypto.provider.Cipher.AES.Test4512704",
    126     "com.sun.crypto.provider.Cipher.AES.Test4512524",
    127     "com.sun.crypto.provider.Cipher.AES.Test4511676",
    128     "com.sun.crypto.provider.Cipher.AES.Test4517355"
    129   ],
    130   substring: "NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
    131 },
    132 {
    133   description: "Dalvik doesn't include the SunJCE crypto provider",
    134   result: EXEC_FAILED,
    135   name: "com.sun.crypto.provider.Cipher.AES.TestISO10126Padding",
    136   substring: " java.security.NoSuchProviderException: SunJCE"
    137 },
    138 {
    139   description: "Dalvik doesn't include the SunJCE crypto provider",
    140   result: EXEC_FAILED,
    141   name: "com.sun.crypto.provider.Cipher.AES.Test4626070",
    142   substring: "NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
    143 },
    144 {
    145   description: "Dalvik doesn't include the SunJCE crypto provider",
    146   result: EXEC_FAILED,
    147   names: [
    148     "com.sun.crypto.provider.Cipher.AES.TestShortBuffer",
    149     "com.sun.crypto.provider.Cipher.CTS.CTSMode"
    150   ],
    151   substring: "Provider SunJCE is not available"
    152 },
    153 {
    154   description: "Dalvik doesn't include the SunJCE crypto provider",
    155   result: EXEC_FAILED,
    156   names: [
    157     "com.sun.crypto.provider.Cipher.DES.DesAPITest",
    158     "com.sun.crypto.provider.Cipher.DES.DoFinalReturnLen",
    159     "com.sun.crypto.provider.Cipher.DES.FlushBug"
    160   ],
    161   substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
    162 },
    163 {
    164   description: "Dalvik doesn't include the SunJCE crypto provider",
    165   result: EXEC_FAILED,
    166   name: "com.sun.crypto.provider.Cipher.DES.KeyWrapping",
    167   substring: "Provider SunJCE is not available"
    168 },
    169 {
    170   description: "Dalvik doesn't include the SunJCE crypto provider",
    171   result: EXEC_FAILED,
    172   names: [
    173     "com.sun.crypto.provider.Cipher.DES.PaddingTest",
    174     "com.sun.crypto.provider.Cipher.DES.Sealtest",
    175     "com.sun.crypto.provider.Cipher.DES.PerformanceTest"
    176   ],
    177   substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
    178 },
    179 {
    180   description: "Dalvik doesn't include the SunJCE crypto provider",
    181   result: EXEC_FAILED,
    182   names: [
    183     "com.sun.crypto.provider.Cipher.PBE.DecryptWithoutParameters",
    184     "com.sun.crypto.provider.Cipher.PBE.PBEInvalidParamsTest"
    185   ],
    186   substring: "Provider SunJCE is not available"
    187 },
    188 {
    189   description: "Dalvik doesn't include the SunJCE crypto provider",
    190   result: EXEC_FAILED,
    191   name: "com.sun.crypto.provider.Cipher.PBE.PBEKeysAlgorithmNames",
    192   substring: "java.security.NoSuchProviderException: SunJCE"
    193 },
    194 {
    195   description: "Dalvik doesn't include the SunJCE crypto provider",
    196   result: EXEC_FAILED,
    197   names: [
    198     "com.sun.crypto.provider.Cipher.PBE.PBEParametersTest",
    199     "com.sun.crypto.provider.Cipher.PBE.PKCS12Oid",
    200     "com.sun.crypto.provider.Cipher.UTIL.StrongOrUnlimited",
    201     "com.sun.crypto.provider.Cipher.KeyWrap.NISTWrapKAT"
    202   ],
    203   substring: "Provider SunJCE is not available"
    204 },
    205 {
    206   description: "Dalvik doesn't include the SunJCE crypto provider",
    207   result: EXEC_FAILED,
    208   name: "com.sun.crypto.provider.KeyAgreement.DHGenSecretKey",
    209   substring: "java.security.NoSuchProviderException: SunJCE"
    210 },
    211 {
    212   description: "Dalvik doesn't include the SunJCE crypto provider",
    213   result: EXEC_FAILED,
    214   names: [
    215     "com.sun.crypto.provider.KeyAgreement.DHGenSharedSecret",
    216     "com.sun.crypto.provider.KeyAgreement.DHKeyAgreement3",
    217     "com.sun.crypto.provider.KeyAgreement.DHKeyFactory",
    218     "com.sun.crypto.provider.KeyAgreement.DHKeyGenSpeed"
    219   ],
    220   substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
    221 },
    222 {
    223   description: "Dalvik doesn't include the SunJCE crypto provider",
    224   result: EXEC_FAILED,
    225   names: [
    226     "com.sun.crypto.provider.KeyAgreement.TestExponentSize",
    227     "com.sun.crypto.provider.KeyFactory.TestProviderLeak",
    228     "com.sun.crypto.provider.KeyFactory.PBKDF2HmacSHA1FactoryTest"
    229   ],
    230   substring: "java.security.NoSuchProviderException: SunJCE"
    231 },
    232 {
    233   description: "Dalvik doesn't include the SunJCE crypto provider",
    234   result: EXEC_FAILED,
    235   names: [
    236     "com.sun.crypto.provider.KeyGenerator.Test4628062",
    237     "com.sun.crypto.provider.KeyGenerator.TestExplicitKeyLength"
    238   ],
    239   substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
    240 },
    241 {
    242   description: "Dalvik doesn't include the SunJCE crypto provider",
    243   result: EXEC_FAILED,
    244   name: "com.sun.crypto.provider.Mac.HmacPBESHA1",
    245   substring: "java.security.NoSuchProviderException: SunJCE"
    246 },
    247 {
    248   description: "Dalvik doesn't include the SunJCE crypto provider",
    249   result: EXEC_FAILED,
    250   name: "com.sun.crypto.provider.Mac.HmacMD5",
    251   substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE"
    252 },
    253 {
    254   description: "Dalvik doesn't include the SunJCE crypto provider",
    255   result: EXEC_FAILED,
    256   name: "com.sun.crypto.provider.Mac.MacClone",
    257   substring: "java.security.NoSuchProviderException: SunJCE"
    258 },
    259 {
    260   description: "Dalvik doesn't include the SunJCE crypto provider",
    261   result: EXEC_FAILED,
    262   failure: "JKS keystore not found",
    263   substring: "KeyStore JKS implementation not found"
    264 },
    265 {
    266   description: "These NPEs all happen while calling Provider#getName on the result of
    267                 Security#getProvider(). Unfortunately, that method is permitted to return
    268                 null if the system has no provider with the requested name. And since we don't
    269                 have the SunJCE provider, tests fail",
    270   result: EXEC_FAILED,
    271   name: "com.sun.crypto.provider.Cipher.PBE.PKCS12Cipher",
    272   pattern: ".*PKCS12Cipher.java\\:87\\).*NullPointerException.*"
    273 },
    274 {
    275   description: "These NPEs all happen while calling Provider#getName on the result of
    276                 Security#getProvider(). Unfortunately, that method is permitted to return
    277                 null if the system has no provider with the requested name. And since we don't
    278                 have the SunJCE provider, tests fail",
    279   result: EXEC_FAILED,
    280   name: "com.sun.crypto.provider.Cipher.PBE.PKCS12CipherKAT",
    281   pattern: ".*NullPointerException.*PKCS12CipherKAT.java\\:183\\).*"
    282 },
    283 {
    284   description: "These NPEs all happen while calling Provider#getName on the result of
    285                 Security#getProvider(). Unfortunately, that method is permitted to return
    286                 null if the system has no provider with the requested name. And since we don't
    287                 have the SunJCE provider, tests fail",
    288   result: EXEC_FAILED,
    289   name: "com.sun.crypto.provider.Cipher.RC2ArcFour.CipherKAT",
    290   pattern: ".*NullPointerException.*CipherKAT.java\\:205\\).*"
    291 },
    292 {
    293   description: "These NPEs all happen while calling Provider#getName on the result of
    294                 Security#getProvider(). Unfortunately, that method is permitted to return
    295                 null if the system has no provider with the requested name. And since we don't
    296                 have the SunJCE provider, tests fail",
    297   result: EXEC_FAILED,
    298   name: "com.sun.crypto.provider.Cipher.RSA.TestOAEP_KAT",
    299   pattern: ".*TestOAEP_KAT.java\\:62\\).*NullPointerException.*"
    300 },
    301 {
    302   description: "These NPEs all happen while calling Provider#getName on the result of
    303                 Security#getProvider(). Unfortunately, that method is permitted to return
    304                 null if the system has no provider with the requested name. And since we don't
    305                 have the SunJCE provider, tests fail",
    306   result: EXEC_FAILED,
    307   name: "com.sun.crypto.provider.Cipher.RSA.TestOAEP",
    308   pattern: ".*TestOAEP.java\\:50\\).*NullPointerException.*"
    309 },
    310 {
    311   description: "These NPEs all happen while calling Provider#getName on the result of
    312                 Security#getProvider(). Unfortunately, that method is permitted to return
    313                 null if the system has no provider with the requested name. And since we don't
    314                 have the SunJCE provider, tests fail",
    315   result: EXEC_FAILED,
    316   name: "com.sun.crypto.provider.Cipher.RSA.TestOAEPParameterSpec",
    317   pattern: ".*TestOAEPParameterSpec.java\\:124\\).*NullPointerException.*"
    318 },
    319 {
    320   description: "These NPEs all happen while calling Provider#getName on the result of
    321                 Security#getProvider(). Unfortunately, that method is permitted to return
    322                 null if the system has no provider with the requested name. And since we don't
    323                 have the SunJCE provider, tests fail",
    324   result: EXEC_FAILED,
    325   name: "com.sun.crypto.provider.Cipher.RSA.TestOAEPWithParams",
    326   pattern: ".*TestOAEPWithParams.java\\:58\\).*NullPointerException.*"
    327 },
    328 {
    329   description: "These NPEs all happen while calling Provider#getName on the result of
    330                 Security#getProvider(). Unfortunately, that method is permitted to return
    331                 null if the system has no provider with the requested name. And since we don't
    332                 have the SunJCE provider, tests fail",
    333   result: EXEC_FAILED,
    334   name: "com.sun.crypto.provider.Cipher.RSA.TestRSA",
    335   pattern: ".*TestRSA.java\\:171\\).*NullPointerException.*"
    336 },
    337 {
    338   description: "These NPEs all happen while calling Provider#getName on the result of
    339                 Security#getProvider(). Unfortunately, that method is permitted to return
    340                 null if the system has no provider with the requested name. And since we don't
    341                 have the SunJCE provider, tests fail",
    342   result: EXEC_FAILED,
    343   name: "com.sun.crypto.provider.Mac.HmacSaltLengths",
    344   pattern: ".*HmacSaltLengths.java\\:83\\).*java.lang.NullPointerException.*"
    345 },
    346 {
    347   description: "These NPEs all happen while calling Provider#getName on the result of
    348                 Security#getProvider(). Unfortunately, that method is permitted to return
    349                 null if the system has no provider with the requested name. And since we don't
    350                 have the SunJCE provider, tests fail",
    351   result: EXEC_FAILED,
    352   name: "com.sun.crypto.provider.Mac.MacKAT",
    353   pattern: ".*MacKAT.java\\:228\\).*java.lang.NullPointerException.*"
    354 },
    355 {
    356   description: "These tests call into misc Sun classes that we don't have",
    357   result: COMPILE_FAILED,
    358   name: "com.sun.crypto.provider.KeyAgreement.DHKeyAgreement2",
    359   pattern: ".*cannot find symbol.*sun.misc.HexDumpEncoder.*"
    360 },
    361 {
    362   description: "These tests call into misc Sun classes that we don't have",
    363   result: COMPILE_FAILED,
    364   name: "com.sun.crypto.provider.Cipher.KeyWrap.XMLEncKAT",
    365   pattern: ".*cannot find symbol.*sun.misc.BASE64Decoder.*"
    366 },
    367 {
    368   description: "These tests call into misc Sun classes that we don't have",
    369   result: COMPILE_FAILED,
    370   names: [
    371     "com.sun.crypto.provider.TLS.TestKeyMaterial",
    372     "com.sun.crypto.provider.TLS.TestMasterSecret",
    373     "com.sun.crypto.provider.TLS.TestPremaster",
    374     "com.sun.crypto.provider.TLS.TestPRF"
    375   ],
    376   substring: "package sun.security.internal.spec does not exist"
    377 },
    378 {
    379   description: "We don't have most com.sun packages.",
    380   result: COMPILE_FAILED,
    381   failure: "Dalvik doesn't include Sun packages",
    382   pattern: ".*package (com\\.)?sun\\.[\\w\\.]+ does not exist.*"
    383 },
    384 {
    385   description: "We don't have several Java packages either.",
    386   result: COMPILE_FAILED,
    387   failure: "Dalvik doesn't include applets",
    388   substring: "package java.applet does not exist"
    389 },
    390 {
    391   description: "We don't have several Java packages either.",
    392   result: COMPILE_FAILED,
    393   failure: "Dalvik doesn't include AWT (bug it has java.awt.font)",
    394   pattern: ".*package java.awt(\\.image)? does not exist.*"
    395 },
    396 {
    397   description: "We don't have several Java packages either.",
    398   result: "COMPILE_FAILED",
    399   failure: "Dalvik doesn't include NIO.2",
    400   substring: "package java.nio.file does not exist"
    401 },
    402 {
    403   description: "We don't have several Java packages either.",
    404   result: "COMPILE_FAILED",
    405   failure: "Dalvik doesn't include RMI",
    406   substring: "package java.rmi does not exist"
    407 },
    408 {
    409   description: "We don't have several Java packages either.",
    410   result: "COMPILE_FAILED",
    411   failure: "Dalvik doesn't include JNDI",
    412   substring: "package javax.naming does not exist"
    413 },
    414 {
    415   description: "We don't have several Java packages either.",
    416   result: "COMPILE_FAILED",
    417   failure: "Dalvik doesn't include JMX",
    418   substring: "package java.lang.management does not exist"
    419 },
    420 {
    421   description: "We don't have several Java packages either.",
    422   result: "COMPILE_FAILED",
    423   failure: "Dalvik doesn't include Swing",
    424   substring: "package javax.swing.tree does not exist"
    425 },
    426 {
    427   description: "We don't have several Java packages either.",
    428   result: "COMPILE_FAILED",
    429   failure: "Dalvik doesn't include javax.crypto",
    430   substring: "package javax.xml.crypto does not exist"
    431 },
    432 {
    433   description: "Dalvik doesn't include a com.sun.net HTTP server",
    434   result: UNSUPPORTED,
    435   names: [
    436     "com.sun.net.httpserver",
    437     "sun.net.www"
    438   ]
    439 },
    440 {
    441   description: "Dalvik doesn't include AWT except the font package",
    442   result: UNSUPPORTED,
    443   name: "java.awt"
    444 },
    445 {
    446   description: "Dalvik doesn't include AWT except the font package",
    447   result: "SUCCESS",
    448   names: [
    449     "java.awt.FontClass",
    450     "java.awt.font"
    451   ]
    452 },
    453 {
    454   description: "Dalvik doesn't include java.beans except for property listeners",
    455   result: UNSUPPORTED,
    456   name: "java.beans"
    457 },
    458 {
    459   description: "Dalvik doesn't include java.beans except for property listeners",
    460   result: "SUCCESS",
    461   name: "java.beans.PropertyChangeSupport"
    462 },
    463 {
    464   description: "Dalvik doesn't include java.lang.instrument",
    465   result: UNSUPPORTED,
    466   name: "java.lang.instrument"
    467 },
    468 {
    469   description: "Dalvik doesn't include java.lang.management",
    470   result: UNSUPPORTED,
    471   name: "java.lang.management"
    472 },
    473 {
    474   description: "Dalvik doesn't include RMI",
    475   result: UNSUPPORTED,
    476   names: [
    477     "java.rmi",
    478     "sun.rmi"
    479   ]
    480 },
    481 {
    482   description: "Dalvik doesn't include javax.imageio",
    483   result: UNSUPPORTED,
    484   name: "javax.imageio"
    485 },
    486 {
    487   description: "Dalvik doesn't include javax.management",
    488   result: UNSUPPORTED,
    489   name: "javax.management"
    490 },
    491 {
    492   description: "Dalvik doesn't include javax.naming",
    493   result: UNSUPPORTED,
    494   name: "javax.naming"
    495 },
    496 {
    497   description: "Dalvik doesn't include javax.print",
    498   result: UNSUPPORTED,
    499   name: "javax.print"
    500 },
    501 {
    502   description: "Dalvik doesn't include javax.script",
    503   result: UNSUPPORTED,
    504   name: "javax.script"
    505 },
    506 {
    507   description: "Dalvik doesn't include javax.sound",
    508   result: UNSUPPORTED,
    509   name: "javax.sound"
    510 },
    511 {
    512   description: "Dalvik doesn't include javax.swing",
    513   result: UNSUPPORTED,
    514   name: "javax.swing"
    515 },
    516 {
    517   description: "Dalvik doesn't include sun.management",
    518   result: UNSUPPORTED,
    519   name: "sun.management"
    520 },
    521 {
    522   description: "Dalvik doesn't include javax.smartcardio",
    523   result: UNSUPPORTED,
    524   name: "sun.security.smartcardio"
    525 },
    526 {
    527   description: "Our exception messages don't match the RIs",
    528   result: EXEC_FAILED,
    529   names: [
    530     "java.lang.StringBuilder.Exceptions",
    531     "java.lang.StringBuffer.Exceptions"
    532   ],
    533   substring: "got java.lang.StringIndexOutOfBoundsException: null - FAILED"
    534 },
    535 {
    536   description: "ICU doesn't like 3-letter names like CST because they're ambiguous.
    537                 Harmony prefers them because they're more human readable. We'll be
    538                 consistent with ICU, since that seems least fragile.
    539                 See https://issues.apache.org/jira/browse/HARMONY-5468
    540                 and http://bugs.icu-project.org/trac/ticket/6174",
    541   result: EXEC_FAILED,
    542   name: "org.apache.harmony.luni.tests.java.util.DateTest#test_toString",
    543   substring: "GMT-07:00"
    544 },
    545 {
    546   description: "This test fails because on Android, RuleBasedCollators default to
    547                 CANONICAL_DECOMPOSITION, not NO_DECOMPOSITION.",
    548   result: EXEC_FAILED,
    549   name: "org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testEqualsObject",
    550   substring: "expected:<0> but was:<1>"
    551 },
    552 {
    553   description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible
    554                 with the RI. Our implementation is more conservative and throws on the bogus inputs.",
    555   result: EXEC_FAILED,
    556   name: "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_headSet",
    557   substring: "java.lang.IllegalArgumentException: 100 not in range (100..109]"
    558 },
    559 {
    560   description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible
    561                 with the RI. Our implementation is more conservative and throws on the bogus inputs.",
    562   result: EXEC_FAILED,
    563   names: [
    564     "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_tailSet",
    565     "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_headSet"
    566   ],
    567   substring: "java.lang.IllegalArgumentException: null not in range [100..109)"
    568 },
    569 {
    570   description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible
    571                 with the RI. Our implementation is more conservative and throws on the bogus inputs.",
    572   result: EXEC_FAILED,
    573   names: [
    574     "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMap_tailMap",
    575     "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_tailSet",
    576     "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_SubMap_headMap"
    577   ],
    578   substring: "java.lang.IllegalArgumentException: 100 not in range (100..109]"
    579 },
    580 {
    581   description: "why are they using reflection to test implementation details?",
    582   result: EXEC_FAILED,
    583   name: "org.apache.harmony.luni.tests.java.util.ArraysTest#test_swap_I_I_$Ljava_lang_Object",
    584   substring: "java.lang.NoSuchMethodException"
    585 },
    586 {
    587   description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose
    588                 to disallow.",
    589   result: EXEC_FAILED,
    590   name: "org.apache.harmony.luni.tests.java.util.SimpleImmutableEntryTest#test_SimpleImmutableEntry_Constructor_LEntry",
    591   pattern: ".*java.lang.NullPointerException.*at java.util.TreeMap.find.*"
    592 },
    593 {
    594   description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose
    595                 to disallow.",
    596   result: EXEC_FAILED,
    597   names: [
    598     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingEntry",
    599     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingKey",
    600     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorEntry",
    601     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorKey",
    602     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherEntry",
    603     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherKey",
    604     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerEntry",
    605     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerKey"
    606   ],
    607   substring: "java.lang.NullPointerException"
    608 },
    609 {
    610   description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose
    611                 to disallow.",
    612   result: EXEC_FAILED,
    613   name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_illegalFirstNullKey",
    614   pattern: ".*java.lang.NullPointerException.*at java.util.TreeMap.find.*"
    615 },
    616 {
    617   description: "this is testing exception priorities",
    618   result: EXEC_FAILED,
    619   name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectLjava_lang_Object",
    620   substring: "java.lang.ClassCastException: java.lang.Object"
    621 },
    622 {
    623   description: "the null-friendly comparator isn't symmetric",
    624   result: EXEC_FAILED,
    625   name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectZLjava_lang_ObjectZ",
    626   substring: "java.lang.NullPointerException"
    627 },
    628 {
    629   description: "we fail fast on not-comparable objects",
    630   result: EXEC_FAILED,
    631   names: [
    632     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_equals",
    633     "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_putLjava_lang_ObjectLjava_lang_Object"
    634   ],
    635   substring: "java.lang.ClassCastException: java.lang.Object"
    636 },
    637 {
    638   description: "tests that depend on the iteration order of a hash",
    639   result: EXEC_FAILED,
    640   name: "org.apache.harmony.luni.tests.java.util.CollectionsTest#test_unmodifiable_toString_methods",
    641   substring: "expected:<...one=1, two=2...> but was:<...two=2, one=1...>"
    642 },
    643 {
    644   description: "tests that depend on the iteration order of a hash",
    645   result: EXEC_FAILED,
    646   name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet_subtest1",
    647   pattern: ".*java.lang.IllegalStateException.*at java.util.Hashtable.*"
    648 },
    649 {
    650   description: "tests that depend on the iteration order of a hash",
    651   result: EXEC_FAILED,
    652   name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_elements_subtest0",
    653   substring: "junit.framework.AssertionFailedError: unexpected: b"
    654 },
    655 {
    656   description: "tests that depend on the iteration order of a hash",
    657   result: EXEC_FAILED,
    658   name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_rehash",
    659   substring: "junit.framework.AssertionFailedError: expected same"
    660 },
    661 {
    662   description: "tests that depend on the iteration order of a hash",
    663   result: EXEC_FAILED,
    664   name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialpropertyNames",
    665   substring: "expected:<current.b.key> but was:<current.a.key>"
    666 },
    667 {
    668   description: "tests that depend on the iteration order of a hash",
    669   result: EXEC_FAILED,
    670   name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialstringPropertyNames",
    671   substring: "junit.framework.ComparisonFailure"
    672 },
    673 {
    674   description: "tests that depend on the iteration order of a hash",
    675   result: EXEC_FAILED,
    676   name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_propertyNames_sequence",
    677   substring: "junit.framework.AssertionFailedError: expected:<current.b.key> but was:<current.a.key>"
    678 },
    679 {
    680   description: "tests that use secret type information to reason about behavior",
    681   result: EXEC_FAILED,
    682   name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet",
    683   substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$Synchronized...> but was:<...Hashtable$Key...>"
    684 },
    685 {
    686   description: "tests that use secret type information to reason about behavior",
    687   result: EXEC_FAILED,
    688   name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_entrySet",
    689   substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$Synchronized...> but was:<...Hashtable$Entry...>"
    690 },
    691 {
    692   description: "tests that use secret type information to reason about behavior",
    693   result: EXEC_FAILED,
    694   name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_values",
    695   substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$SynchronizedCollection> but was:<...Hashtable$Values>"
    696 },
    697 {
    698   description: "this test is invalid, proxy.equals isn't symmetric",
    699   result: EXEC_FAILED,
    700   name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_proxies"
    701 },
    702 {
    703   description: "this test is invalid, the mock map's entry set isn't to spec",
    704   result: EXEC_FAILED,
    705   name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_putAllLjava_util_Map",
    706   substring: "java.lang.NullPointerException"
    707 },
    708 {
    709   description: "this test assumes remove acts on equals() equality, not comparator equality",
    710   result: EXEC_FAILED,
    711   name: "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_using_comparator",
    712   substring: "junit.framework.AssertionFailedError"
    713 },
    714 {
    715   description: "tests that violate the API and then guess about the outcomes",
    716   result: EXEC_FAILED,
    717   name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_getLjava_lang_Object",
    718   substring: "junit.framework.AssertionFailedError"
    719 },
    720 {
    721   description: "this test assumes Integer.toString() always returns a new instance",
    722   result: EXEC_FAILED,
    723   name: "org.apache.harmony.luni.tests.java.util.IdentityHashMap2Test#test_containsKeyLjava_lang_Object",
    724   substring: "junit.framework.AssertionFailedError: Returned true for copy of valid key"
    725 },
    726 {
    727   description: "tests that cast to Harmony-specific types",
    728   result: EXEC_FAILED,
    729   failure: "bogus cast to harmony Hashtable$KeyEnumeration",
    730   substring: "java.util.Hashtable$KeyEnumeration"
    731 },
    732 {
    733   description: "tests that cast to Harmony-specific types",
    734   result: EXEC_FAILED,
    735   failure: "bogus cast to Hashtable$ValueEnumeration",
    736   substring: "java.util.Hashtable$ValueEnumeration"
    737 },
    738 {
    739   description: "test doesn't expect it, but the spec permits the exception. RI also throws here.",
    740   result: EXEC_FAILED,
    741   names: [
    742     "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_Compatible",
    743     "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_exists"
    744   ],
    745   substring: "java.lang.ClassCastException"
    746 },
    747 {
    748   description: "localization tests where our data disagree",
    749   result: EXEC_FAILED,
    750   name: "org.apache.harmony.luni.tests.java.util.LocaleTest#test_getAvailableLocales",
    751   substring: "Wrong number of locales"
    752 },
    753 {
    754   description: "test that enforce redundant implements clauses",
    755   result: EXEC_FAILED,
    756   name: "org.apache.harmony.luni.tests.java.util.LinkedHashMapTest#test_getInterfaces",
    757   substring: "junit.framework.AssertionFailedError: expected:<3> but was:<2>"
    758 },
    759 {
    760   description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.",
    761   result: EXEC_FAILED,
    762   name: "org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_applyLocalizedPatternLjava_lang_String",
    763   substring: "java.lang.IllegalArgumentException: Invalid pattern character 'u' in 'GuMtkHmsSEDFwWahKz'"
    764 },
    765 {
    766   description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.",
    767   result: EXEC_FAILED,
    768   name: "org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_toLocalizedPattern",
    769   substring: "junit.framework.AssertionFailedError: Wrong pattern: GyMdkHmsSEDFwWahKz"
    770 },
    771 {
    772   description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.",
    773   result: EXEC_FAILED,
    774   name: "org.apache.harmony.text.tests.java.text.DateFormatSymbolsTest#test_getLocalPatternChars",
    775   substring: "junit.framework.ComparisonFailure: Returned incorrect pattern string expected:<...YeugAZvcLQqV> but was:<...Z>"
    776 },
    777 {
    778   description: "we don't support the CharsetProvider spi, so we don't have \"mockCharset00\".",
    779   result: EXEC_FAILED,
    780   name: "tests.api.java.nio.charset.CharsetTest#test_availableCharsets",
    781   substring: "junit.framework.AssertionFailedError"
    782 },
    783 {
    784   description: "we don't support the CharsetProvider spi, so we don't have \"mockCharset00\".",
    785   result: EXEC_FAILED,
    786   name: "tests.api.java.nio.charset.CharsetTest#test_forNameLString",
    787   substring: "java.nio.charset.UnsupportedCharsetException: mockCharset00"
    788 },
    789 {
    790   description: "the average length of possible UTF-8 sequences is 2 bytes.",
    791   result: EXEC_FAILED,
    792   name: "tests.api.java.nio.charset.UTFCharsetEncoderTest#testSpecificDefaultValue",
    793   substring: "junit.framework.AssertionFailedError: expected:<1.1> but was:<2.0>"
    794 },
    795 {
    796   description: "this test needs external interaction",
    797   result: UNSUPPORTED,
    798   names: [
    799     "com.sun.tools.attach.Application",
    800     "java.io.SystemInAvailable",
    801     "sun.jvmstat.testlibrary.Sleeper"
    802   ]
    803 },
    804 {
    805   description: "these benchmarks take a long time and don't demonstrate correctness",
    806   result: UNSUPPORTED,
    807   names: [
    808     "java.lang.Class.TypeCheckMicroBenchmark",
    809     "java.nio.Buffer.SwapMicroBenchmark",
    810     "java.util.ArrayList.RangeCheckMicroBenchmark",
    811     "java.util.ArrayList.IteratorMicroBenchmark"
    812   ]
    813 },
    814 {
    815   description: "The RI is still on Unicode 4.0, we're on 5.2, and Harmony is inconsistent
    816                 between its test for isJavaIdentifierPart(char) and isJavaIdentifierPart(int).",
    817   result: EXEC_FAILED,
    818   name: "org.apache.harmony.luni.tests.java.lang.CharacterTest#test_isJavaIdentifierPartC"
    819 },
    820 {
    821   description: "We removed this: we don't support Pack200.",
    822   result: UNSUPPORTED,
    823   name: "org.apache.harmony.archive.tests.java.util.jar.Pack200Test"
    824 },
    825 {
    826   description: "We removed this: we don't cache canonical paths.",
    827   result: UNSUPPORTED,
    828   name: "org.apache.harmony.luni.tests.java.io.FileCanonPathCacheTest"
    829 },
    830 {
    831   description: "We removed this: we don't throw NotYetImplementedException.",
    832   result: UNSUPPORTED,
    833   name: "org.apache.harmony.luni.tests.util.NYITest"
    834 },
    835 {
    836   description: "We removed this: we don't support localized exceptions.",
    837   result: UNSUPPORTED,
    838   name: "org.apache.harmony.luni.tests.internal.nls.MessagesTest"
    839 },
    840 {
    841   description: "These test implementation details we don't share.",
    842   result: EXEC_FAILED,
    843   names: [
    844     "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getInt",
    845     "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getLong",
    846     "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getShort"
    847   ]
    848 },
    849 {
    850   description: "These format specifiers are documented to not take flags, but the RI accepts and ignores them.",
    851   result: EXEC_FAILED,
    852   name: "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_LineSeparator",
    853   substring: "java.util.IllegalFormatFlagsException: %n doesn't take an argument"
    854 },
    855 {
    856   description: "These format specifiers are documented to not take flags, but the RI accepts and ignores them.",
    857   result: EXEC_FAILED,
    858   names: [
    859     "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Percent",
    860     "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Width"
    861   ],
    862   substring: "java.util.IllegalFormatFlagsException: %% doesn't take an argument"
    863 },
    864 {
    865   description: "Some tests (ExcludedProxyTest) connect to a public webserver to check that the HTTP client works",
    866   result: EXEC_FAILED,
    867   failure: "connect to the Internet",
    868   pattern: ".*java.net.UnknownHostException:.*jcltest.apache.org.*"
    869 },
    870 {
    871   description: "These tests violate visibility rules when trying to unit test internal classes",
    872   result: EXEC_FAILED,
    873   name: "javax.net.ssl.DefaultSSLSocketFactoryTest",
    874   substring: "java.lang.IllegalAccessError: tried to access class javax.net.ssl.DefaultSSLSocketFactory from class javax.net.ssl.DefaultSSLSocketFactoryTest"
    875 },
    876 {
    877   description: "These tests expect to be called with commandline arguments",
    878   result: EXEC_FAILED,
    879   name: "java.io.FileOutputStream.FileOpenNeg",
    880   substring: "java.lang.ArrayIndexOutOfBoundsException"
    881 },
    882 {
    883   description: "",
    884   result: EXEC_FAILED,
    885   name: "java.io.FileOutputStream.FileOpenPos",
    886   substring: "java.lang.ArrayIndexOutOfBoundsException"
    887 }
    888 ]
    889