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