| /* |
| * 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: "FIONREAD/SIOCINQ returns the wrong result on sockets (5731252 is the root cause of 5534202)", |
| name: "libcore.java.net.SocketTest#testAvailable", |
| bug: 5731252 |
| }, |
| { |
| description: "libcore.java.net.URLConnectionTest#testServerShutdownInput fails on ICL27 mysid-userdebug (5534202 is caused by 5731252)", |
| name: "libcore.java.net.URLConnectionTest#testServerShutdownInput", |
| bug: 5534202 |
| }, |
| { |
| description: "Support digest authentication in HttpURLConnection", |
| name: "libcore.net.http.ParsedHeadersTest#testParseChallengesWithManyParameters", |
| bug: 6156454 |
| }, |
| { |
| description: "Without no security manager, we don't care if checkPermission's argument is null", |
| name: "org.apache.harmony.security.tests.java.security.AccessController2Test#test_checkPermission_NullParameter", |
| result: EXEC_FAILED |
| }, |
| { |
| description: "This test and testGetKeepAlive have been failing in our continuous build recently.", |
| names: [ |
| "libcore.java.net.URLConnectionTest#testConnectTimeouts", |
| "libcore.java.net.URLConnectionTest#testGetKeepAlive" |
| ], |
| bug: 3441111 |
| }, |
| { |
| description: "on the RI, writing the two halves of the surrogate pair in separate writes |
| is an error because the CharsetEncoder doesn't remember it's half-way through a |
| surrogate pair across the two calls!", |
| result: EXEC_FAILED, |
| names: [ |
| "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_IGNORE_RI", |
| "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_REPLACE_RI", |
| "libcore.java.nio.charset.CharsetEncoderTest#testCharsetEncoderSurrogatesBrokenByDesign_REPORT_RI" |
| ] |
| }, |
| { |
| 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: "These tests assert the exact bytes of the compressed form. Since we use a |
| different zlib configuration, we get a different (but valid) compressed form.", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testAvailable", |
| "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testRead", |
| "org.apache.harmony.archive.tests.java.util.zip.DeflaterInputStreamTest#testReadByteArrayIntInt", |
| "org.apache.harmony.archive.tests.java.util.zip.DeflaterTest#test_deflate_beforeSetInput" |
| ] |
| }, |
| { |
| description: "The RI avoids blocking calls when '\\r' is the last character. We don't |
| bother since that adds complexity to every other read call, and '\\r' as the |
| last character will be diminishingly rare anyway.", |
| result: EXEC_FAILED, |
| name: "java.io.BufferedReader.ReadLine", |
| substring: "java.lang.RuntimeException: Read past limit" |
| }, |
| { |
| description: "The RI avoids blocking calls when '\\r' is the last character. We don't |
| bother since that adds complexity to every other read call, and '\\r' as the |
| last character will be diminishingly rare anyway.", |
| result: EXEC_FAILED, |
| name: "java.io.BufferedReader.Ready", |
| substring: "Hit infinite wait condition" |
| }, |
| { |
| description: "The test is checking that the implementation doesn't read any characters |
| earlier than it absolutely needs to. This is a bogus requirement; streams |
| are allowed to buffer input as necessary.", |
| result: EXEC_FAILED, |
| name: "java.io.StreamTokenizer.Reset", |
| substring: "Test failed: should get token [, but get -1" |
| }, |
| { |
| description: "These tests only pass if the root logger hasn't yet been initialized. They |
| incorrectly assume that resetting the LogManager will clear the root logger's |
| resource bundle; this isn't the case.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.logging.tests.java.util.logging.OldLoggerTest#testGetLoggerWithRes_InvalidResourceBundle", |
| substring: "java.lang.IllegalArgumentException: Resource bundle name 'impossible_not_existing' is inconsistent" |
| }, |
| { |
| description: "These tests only pass if the root logger hasn't yet been initialized. They |
| incorrectly assume that resetting the LogManager will clear the root logger's |
| resource bundle; this isn't the case.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.logging.tests.java.util.logging.LoggerTest#testGetLogger_Empty", |
| substring: "junit.framework.AssertionFailedError" |
| }, |
| { |
| description: "This tests implementation details", |
| result: UNSUPPORTED, |
| name: "java.util.EnumSet.OneUniverse" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.Cipher.AES.Test4513830", |
| "com.sun.crypto.provider.Cipher.AES.Test4512704", |
| "com.sun.crypto.provider.Cipher.AES.Test4512524", |
| "com.sun.crypto.provider.Cipher.AES.Test4511676", |
| "com.sun.crypto.provider.Cipher.AES.Test4517355" |
| ], |
| substring: "NoClassDefFoundError: com.sun.crypto.provider.SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.AES.TestISO10126Padding", |
| substring: " java.security.NoSuchProviderException: SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.AES.Test4626070", |
| substring: "NoClassDefFoundError: com.sun.crypto.provider.SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.Cipher.AES.TestShortBuffer", |
| "com.sun.crypto.provider.Cipher.CTS.CTSMode" |
| ], |
| substring: "Provider SunJCE is not available" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.Cipher.DES.DesAPITest", |
| "com.sun.crypto.provider.Cipher.DES.DoFinalReturnLen", |
| "com.sun.crypto.provider.Cipher.DES.FlushBug" |
| ], |
| substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.DES.KeyWrapping", |
| substring: "Provider SunJCE is not available" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.Cipher.DES.PaddingTest", |
| "com.sun.crypto.provider.Cipher.DES.Sealtest", |
| "com.sun.crypto.provider.Cipher.DES.PerformanceTest" |
| ], |
| substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.Cipher.PBE.DecryptWithoutParameters", |
| "com.sun.crypto.provider.Cipher.PBE.PBEInvalidParamsTest" |
| ], |
| substring: "Provider SunJCE is not available" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.PBE.PBEKeysAlgorithmNames", |
| substring: "java.security.NoSuchProviderException: SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.Cipher.PBE.PBEParametersTest", |
| "com.sun.crypto.provider.Cipher.PBE.PKCS12Oid", |
| "com.sun.crypto.provider.Cipher.UTIL.StrongOrUnlimited", |
| "com.sun.crypto.provider.Cipher.KeyWrap.NISTWrapKAT" |
| ], |
| substring: "Provider SunJCE is not available" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.KeyAgreement.DHGenSecretKey", |
| substring: "java.security.NoSuchProviderException: SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.KeyAgreement.DHGenSharedSecret", |
| "com.sun.crypto.provider.KeyAgreement.DHKeyAgreement3", |
| "com.sun.crypto.provider.KeyAgreement.DHKeyFactory", |
| "com.sun.crypto.provider.KeyAgreement.DHKeyGenSpeed" |
| ], |
| substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.KeyAgreement.TestExponentSize", |
| "com.sun.crypto.provider.KeyFactory.TestProviderLeak", |
| "com.sun.crypto.provider.KeyFactory.PBKDF2HmacSHA1FactoryTest" |
| ], |
| substring: "java.security.NoSuchProviderException: SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| names: [ |
| "com.sun.crypto.provider.KeyGenerator.Test4628062", |
| "com.sun.crypto.provider.KeyGenerator.TestExplicitKeyLength" |
| ], |
| substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Mac.HmacPBESHA1", |
| substring: "java.security.NoSuchProviderException: SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Mac.HmacMD5", |
| substring: "java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Mac.MacClone", |
| substring: "java.security.NoSuchProviderException: SunJCE" |
| }, |
| { |
| description: "Dalvik doesn't include the SunJCE crypto provider", |
| result: EXEC_FAILED, |
| failure: "JKS keystore not found", |
| substring: "KeyStore JKS implementation not found" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.PBE.PKCS12Cipher", |
| pattern: ".*PKCS12Cipher.java\\:87\\).*NullPointerException.*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.PBE.PKCS12CipherKAT", |
| pattern: ".*NullPointerException.*PKCS12CipherKAT.java\\:183\\).*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.RC2ArcFour.CipherKAT", |
| pattern: ".*NullPointerException.*CipherKAT.java\\:205\\).*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.RSA.TestOAEP_KAT", |
| pattern: ".*TestOAEP_KAT.java\\:62\\).*NullPointerException.*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.RSA.TestOAEP", |
| pattern: ".*TestOAEP.java\\:50\\).*NullPointerException.*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.RSA.TestOAEPParameterSpec", |
| pattern: ".*TestOAEPParameterSpec.java\\:124\\).*NullPointerException.*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.RSA.TestOAEPWithParams", |
| pattern: ".*TestOAEPWithParams.java\\:58\\).*NullPointerException.*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Cipher.RSA.TestRSA", |
| pattern: ".*TestRSA.java\\:171\\).*NullPointerException.*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Mac.HmacSaltLengths", |
| pattern: ".*HmacSaltLengths.java\\:83\\).*java.lang.NullPointerException.*" |
| }, |
| { |
| description: "These NPEs all happen while calling Provider#getName on the result of |
| Security#getProvider(). Unfortunately, that method is permitted to return |
| null if the system has no provider with the requested name. And since we don't |
| have the SunJCE provider, tests fail", |
| result: EXEC_FAILED, |
| name: "com.sun.crypto.provider.Mac.MacKAT", |
| pattern: ".*MacKAT.java\\:228\\).*java.lang.NullPointerException.*" |
| }, |
| { |
| description: "These tests call into misc Sun classes that we don't have", |
| result: COMPILE_FAILED, |
| name: "com.sun.crypto.provider.KeyAgreement.DHKeyAgreement2", |
| pattern: ".*cannot find symbol.*sun.misc.HexDumpEncoder.*" |
| }, |
| { |
| description: "These tests call into misc Sun classes that we don't have", |
| result: COMPILE_FAILED, |
| name: "com.sun.crypto.provider.Cipher.KeyWrap.XMLEncKAT", |
| pattern: ".*cannot find symbol.*sun.misc.BASE64Decoder.*" |
| }, |
| { |
| description: "These tests call into misc Sun classes that we don't have", |
| result: COMPILE_FAILED, |
| names: [ |
| "com.sun.crypto.provider.TLS.TestKeyMaterial", |
| "com.sun.crypto.provider.TLS.TestMasterSecret", |
| "com.sun.crypto.provider.TLS.TestPremaster", |
| "com.sun.crypto.provider.TLS.TestPRF" |
| ], |
| substring: "package sun.security.internal.spec does not exist" |
| }, |
| { |
| description: "We don't have most com.sun packages.", |
| result: COMPILE_FAILED, |
| failure: "Dalvik doesn't include Sun packages", |
| pattern: ".*package (com\\.)?sun\\.[\\w\\.]+ does not exist.*" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: COMPILE_FAILED, |
| failure: "Dalvik doesn't include applets", |
| substring: "package java.applet does not exist" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: COMPILE_FAILED, |
| failure: "Dalvik doesn't include AWT (bug it has java.awt.font)", |
| pattern: ".*package java.awt(\\.image)? does not exist.*" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: "COMPILE_FAILED", |
| failure: "Dalvik doesn't include NIO.2", |
| substring: "package java.nio.file does not exist" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: "COMPILE_FAILED", |
| failure: "Dalvik doesn't include RMI", |
| substring: "package java.rmi does not exist" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: "COMPILE_FAILED", |
| failure: "Dalvik doesn't include JNDI", |
| substring: "package javax.naming does not exist" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: "COMPILE_FAILED", |
| failure: "Dalvik doesn't include JMX", |
| substring: "package java.lang.management does not exist" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: "COMPILE_FAILED", |
| failure: "Dalvik doesn't include Swing", |
| substring: "package javax.swing.tree does not exist" |
| }, |
| { |
| description: "We don't have several Java packages either.", |
| result: "COMPILE_FAILED", |
| failure: "Dalvik doesn't include javax.crypto", |
| substring: "package javax.xml.crypto does not exist" |
| }, |
| { |
| description: "Dalvik doesn't include a com.sun.net HTTP server", |
| result: UNSUPPORTED, |
| names: [ |
| "com.sun.net.httpserver", |
| "sun.net.www" |
| ] |
| }, |
| { |
| description: "Dalvik doesn't include AWT except the font package", |
| result: UNSUPPORTED, |
| name: "java.awt" |
| }, |
| { |
| description: "Dalvik doesn't include AWT except the font package", |
| result: "SUCCESS", |
| names: [ |
| "java.awt.FontClass", |
| "java.awt.font" |
| ] |
| }, |
| { |
| description: "Dalvik doesn't include java.beans except for property listeners", |
| result: UNSUPPORTED, |
| name: "java.beans" |
| }, |
| { |
| description: "Dalvik doesn't include java.beans except for property listeners", |
| result: "SUCCESS", |
| name: "java.beans.PropertyChangeSupport" |
| }, |
| { |
| description: "Dalvik doesn't include java.lang.instrument", |
| result: UNSUPPORTED, |
| name: "java.lang.instrument" |
| }, |
| { |
| description: "Dalvik doesn't include java.lang.management", |
| result: UNSUPPORTED, |
| name: "java.lang.management" |
| }, |
| { |
| description: "Dalvik doesn't include RMI", |
| result: UNSUPPORTED, |
| names: [ |
| "java.rmi", |
| "sun.rmi" |
| ] |
| }, |
| { |
| description: "Dalvik doesn't include javax.imageio", |
| result: UNSUPPORTED, |
| name: "javax.imageio" |
| }, |
| { |
| description: "Dalvik doesn't include javax.management", |
| result: UNSUPPORTED, |
| name: "javax.management" |
| }, |
| { |
| description: "Dalvik doesn't include javax.naming", |
| result: UNSUPPORTED, |
| name: "javax.naming" |
| }, |
| { |
| description: "Dalvik doesn't include javax.print", |
| result: UNSUPPORTED, |
| name: "javax.print" |
| }, |
| { |
| description: "Dalvik doesn't include javax.script", |
| result: UNSUPPORTED, |
| name: "javax.script" |
| }, |
| { |
| description: "Dalvik doesn't include javax.sound", |
| result: UNSUPPORTED, |
| name: "javax.sound" |
| }, |
| { |
| description: "Dalvik doesn't include javax.swing", |
| result: UNSUPPORTED, |
| name: "javax.swing" |
| }, |
| { |
| description: "Dalvik doesn't include sun.management", |
| result: UNSUPPORTED, |
| name: "sun.management" |
| }, |
| { |
| description: "Dalvik doesn't include javax.smartcardio", |
| result: UNSUPPORTED, |
| name: "sun.security.smartcardio" |
| }, |
| { |
| description: "Our exception messages don't match the RIs", |
| result: EXEC_FAILED, |
| names: [ |
| "java.lang.StringBuilder.Exceptions", |
| "java.lang.StringBuffer.Exceptions" |
| ], |
| substring: "got java.lang.StringIndexOutOfBoundsException: null - FAILED" |
| }, |
| { |
| description: "ICU doesn't like 3-letter names like CST because they're ambiguous. |
| Harmony prefers them because they're more human readable. We'll be |
| consistent with ICU, since that seems least fragile. |
| See https://issues.apache.org/jira/browse/HARMONY-5468 |
| and http://bugs.icu-project.org/trac/ticket/6174", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.DateTest#test_toString", |
| substring: "GMT-07:00" |
| }, |
| { |
| description: "These harmony tests are broken. The RI doesn't ship with es__TRADITIONAL, so |
| they have incorrect expectations. |
| http://b/2608750", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testGetCollationElementIteratorCharacterIterator", |
| "org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testGetCollationElementIteratorString" |
| ], |
| substring: "expected:<1> but was:<2>" |
| }, |
| { |
| description: "This test fails because on Android, RuleBasedCollators default to |
| CANONICAL_DECOMPOSITION, not NO_DECOMPOSITION.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testEqualsObject", |
| substring: "expected:<0> but was:<1>" |
| }, |
| { |
| description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible |
| with the RI. Our implementation is more conservative and throws on the bogus inputs.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_headSet", |
| substring: "java.lang.IllegalArgumentException: 100 not in range (100..109]" |
| }, |
| { |
| description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible |
| with the RI. Our implementation is more conservative and throws on the bogus inputs.", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_tailSet", |
| "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_headSet" |
| ], |
| substring: "java.lang.IllegalArgumentException: null not in range [100..109)" |
| }, |
| { |
| description: "These Harmony tests are enforcing a buggy behaviour in TreeMap, presumably to be bug-compatible |
| with the RI. Our implementation is more conservative and throws on the bogus inputs.", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMap_tailMap", |
| "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_tailSet", |
| "org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_SubMap_headMap" |
| ], |
| substring: "java.lang.IllegalArgumentException: 100 not in range (100..109]" |
| }, |
| { |
| description: "why are they using reflection to test implementation details?", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.ArraysTest#test_swap_I_I_$Ljava_lang_Object", |
| substring: "java.lang.NoSuchMethodException" |
| }, |
| { |
| description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose |
| to disallow.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.SimpleImmutableEntryTest#test_SimpleImmutableEntry_Constructor_LEntry", |
| pattern: ".*java.lang.NullPointerException.*at java.util.TreeMap.find.*" |
| }, |
| { |
| description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose |
| to disallow.", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingEntry", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingKey", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorEntry", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorKey", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherEntry", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherKey", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerEntry", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerKey" |
| ], |
| substring: "java.lang.NullPointerException" |
| }, |
| { |
| description: "all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose |
| to disallow.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_illegalFirstNullKey", |
| pattern: ".*java.lang.NullPointerException.*at java.util.TreeMap.find.*" |
| }, |
| { |
| description: "this is testing exception priorities", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectLjava_lang_Object", |
| substring: "java.lang.ClassCastException: java.lang.Object" |
| }, |
| { |
| description: "the null-friendly comparator isn't symmetric", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectZLjava_lang_ObjectZ", |
| substring: "java.lang.NullPointerException" |
| }, |
| { |
| description: "we fail fast on not-comparable objects", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_equals", |
| "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_putLjava_lang_ObjectLjava_lang_Object" |
| ], |
| substring: "java.lang.ClassCastException: java.lang.Object" |
| }, |
| { |
| description: "tests that depend on the iteration order of a hash", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.CollectionsTest#test_unmodifiable_toString_methods", |
| substring: "expected:<...one=1, two=2...> but was:<...two=2, one=1...>" |
| }, |
| { |
| description: "tests that depend on the iteration order of a hash", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet_subtest1", |
| pattern: ".*java.lang.IllegalStateException.*at java.util.Hashtable.*" |
| }, |
| { |
| description: "tests that depend on the iteration order of a hash", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_elements_subtest0", |
| substring: "junit.framework.AssertionFailedError: unexpected: b" |
| }, |
| { |
| description: "tests that depend on the iteration order of a hash", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_rehash", |
| substring: "junit.framework.AssertionFailedError: expected same" |
| }, |
| { |
| description: "tests that depend on the iteration order of a hash", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialpropertyNames", |
| substring: "expected:<current.b.key> but was:<current.a.key>" |
| }, |
| { |
| description: "tests that depend on the iteration order of a hash", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialstringPropertyNames", |
| substring: "junit.framework.ComparisonFailure" |
| }, |
| { |
| description: "tests that depend on the iteration order of a hash", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.PropertiesTest#test_propertyNames_sequence", |
| substring: "junit.framework.AssertionFailedError: expected:<current.b.key> but was:<current.a.key>" |
| }, |
| { |
| description: "tests that use secret type information to reason about behavior", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet", |
| substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$Synchronized...> but was:<...Hashtable$Key...>" |
| }, |
| { |
| description: "tests that use secret type information to reason about behavior", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_entrySet", |
| substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$Synchronized...> but was:<...Hashtable$Entry...>" |
| }, |
| { |
| description: "tests that use secret type information to reason about behavior", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_values", |
| substring: "junit.framework.ComparisonFailure: Not synchronized expected:<...Collections$SynchronizedCollection> but was:<...Hashtable$Values>" |
| }, |
| { |
| description: "this test is invalid, proxy.equals isn't symmetric", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_proxies" |
| }, |
| { |
| description: "this test is invalid, the mock map's entry set isn't to spec", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashMapTest#test_putAllLjava_util_Map", |
| substring: "java.lang.NullPointerException" |
| }, |
| { |
| description: "this test assumes remove acts on equals() equality, not comparator equality", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_using_comparator", |
| substring: "junit.framework.AssertionFailedError" |
| }, |
| { |
| description: "tests that violate the API and then guess about the outcomes", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.HashtableTest#test_getLjava_lang_Object", |
| substring: "junit.framework.AssertionFailedError" |
| }, |
| { |
| description: "this test assumes Integer.toString() always returns a new instance", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.IdentityHashMap2Test#test_containsKeyLjava_lang_Object", |
| substring: "junit.framework.AssertionFailedError: Returned true for copy of valid key" |
| }, |
| { |
| description: "tests that cast to Harmony-specific types", |
| result: EXEC_FAILED, |
| failure: "bogus cast to harmony Hashtable$KeyEnumeration", |
| substring: "java.util.Hashtable$KeyEnumeration" |
| }, |
| { |
| description: "tests that cast to Harmony-specific types", |
| result: EXEC_FAILED, |
| failure: "bogus cast to Hashtable$ValueEnumeration", |
| substring: "java.util.Hashtable$ValueEnumeration" |
| }, |
| { |
| description: "test doesn't expect it, but the spec permits the exception. RI also throws here.", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_Compatible", |
| "org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_exists" |
| ], |
| substring: "java.lang.ClassCastException" |
| }, |
| { |
| description: "localization tests where our data disagree", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.LocaleTest#test_getAvailableLocales", |
| substring: "Wrong number of locales" |
| }, |
| { |
| description: "test that enforce redundant implements clauses", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.LinkedHashMapTest#test_getInterfaces", |
| substring: "junit.framework.AssertionFailedError: expected:<3> but was:<2>" |
| }, |
| { |
| description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_applyLocalizedPatternLjava_lang_String", |
| substring: "java.lang.IllegalArgumentException: Invalid pattern character 'u' in 'GuMtkHmsSEDFwWahKz'" |
| }, |
| { |
| description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_toLocalizedPattern", |
| substring: "junit.framework.AssertionFailedError: Wrong pattern: GyMdkHmsSEDFwWahKz" |
| }, |
| { |
| description: "ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.text.tests.java.text.DateFormatSymbolsTest#test_getLocalPatternChars", |
| substring: "junit.framework.ComparisonFailure: Returned incorrect pattern string expected:<...YeugAZvcLQqV> but was:<...Z>" |
| }, |
| { |
| description: "we don't support the CharsetProvider spi, so we don't have \"mockCharset00\".", |
| result: EXEC_FAILED, |
| name: "tests.api.java.nio.charset.CharsetTest#test_availableCharsets", |
| substring: "junit.framework.AssertionFailedError" |
| }, |
| { |
| description: "we don't support the CharsetProvider spi, so we don't have \"mockCharset00\".", |
| result: EXEC_FAILED, |
| name: "tests.api.java.nio.charset.CharsetTest#test_forNameLString", |
| substring: "java.nio.charset.UnsupportedCharsetException: mockCharset00" |
| }, |
| { |
| description: "the average length of possible UTF-8 sequences is 2 bytes.", |
| result: EXEC_FAILED, |
| name: "tests.api.java.nio.charset.UTFCharsetEncoderTest#testSpecificDefaultValue", |
| substring: "junit.framework.AssertionFailedError: expected:<1.1> but was:<2.0>" |
| }, |
| { |
| description: "We don't permit runtime switching of the default charset (and neither does the RI)", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.nio_char.tests.java.nio.charset.CharsetTest#test_defaultCharset", |
| substring: "expected:<ISO-8859-1> but was:<UTF-8>" |
| }, |
| { |
| description: "this test needs external interaction", |
| result: UNSUPPORTED, |
| names: [ |
| "com.sun.tools.attach.Application", |
| "java.io.SystemInAvailable", |
| "sun.jvmstat.testlibrary.Sleeper" |
| ] |
| }, |
| { |
| description: "these benchmarks take a long time and don't demonstrate correctness", |
| result: UNSUPPORTED, |
| names: [ |
| "java.lang.Class.TypeCheckMicroBenchmark", |
| "java.nio.Buffer.SwapMicroBenchmark", |
| "java.util.ArrayList.RangeCheckMicroBenchmark", |
| "java.util.ArrayList.IteratorMicroBenchmark" |
| ] |
| }, |
| { |
| description: "The RI is still on Unicode 4.0, we're on 5.2, and Harmony is inconsistent |
| between its test for isJavaIdentifierPart(char) and isJavaIdentifierPart(int).", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.lang.CharacterTest#test_isJavaIdentifierPartC" |
| }, |
| { |
| description: "We removed this: we don't support Pack200.", |
| result: UNSUPPORTED, |
| name: "org.apache.harmony.archive.tests.java.util.jar.Pack200Test" |
| }, |
| { |
| description: "We removed this: we don't cache canonical paths.", |
| result: UNSUPPORTED, |
| name: "org.apache.harmony.luni.tests.java.io.FileCanonPathCacheTest" |
| }, |
| { |
| description: "We removed this: we don't throw NotYetImplementedException.", |
| result: UNSUPPORTED, |
| name: "org.apache.harmony.luni.tests.util.NYITest" |
| }, |
| { |
| description: "We removed this: we don't support localized exceptions.", |
| result: UNSUPPORTED, |
| name: "org.apache.harmony.luni.tests.internal.nls.MessagesTest" |
| }, |
| { |
| description: "These test implementation details we don't share.", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getInt", |
| "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getLong", |
| "org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getShort" |
| ] |
| }, |
| { |
| description: "These format specifiers are documented to not take flags, but the RI accepts and ignores them.", |
| result: EXEC_FAILED, |
| name: "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_LineSeparator", |
| substring: "java.util.IllegalFormatFlagsException: %n doesn't take an argument" |
| }, |
| { |
| description: "These format specifiers are documented to not take flags, but the RI accepts and ignores them.", |
| result: EXEC_FAILED, |
| names: [ |
| "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Percent", |
| "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Width" |
| ], |
| substring: "java.util.IllegalFormatFlagsException: %% doesn't take an argument" |
| }, |
| { |
| 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: "These tests violate visibility rules when trying to unit test internal classes", |
| result: EXEC_FAILED, |
| name: "javax.net.ssl.DefaultSSLSocketFactoryTest", |
| substring: "java.lang.IllegalAccessError: tried to access class javax.net.ssl.DefaultSSLSocketFactory from class javax.net.ssl.DefaultSSLSocketFactoryTest" |
| }, |
| { |
| description: "These tests expect to be called with commandline arguments", |
| result: EXEC_FAILED, |
| name: "java.io.FileOutputStream.FileOpenNeg", |
| substring: "java.lang.ArrayIndexOutOfBoundsException" |
| }, |
| { |
| description: "", |
| result: EXEC_FAILED, |
| name: "java.io.FileOutputStream.FileOpenPos", |
| substring: "java.lang.ArrayIndexOutOfBoundsException" |
| } |
| ] |