OSDN Git Service

Use JSON for expectations files.
authorJesse Wilson <jessewilson@google.com>
Thu, 23 Sep 2010 02:16:17 +0000 (19:16 -0700)
committerJesse Wilson <jessewilson@google.com>
Thu, 23 Sep 2010 02:16:17 +0000 (19:16 -0700)
This allows us to print the expectation description when a test
fails. I'll follow this up by wiring vogar to do very clever things
with the statuses of linked bugs.

Change-Id: Idc3048b5dafff864675e760a3bb0c8fea48bb807

expectations/brokentests.txt
expectations/icebox.txt
expectations/knownfailures.txt
expectations/taggedtests.txt

index 065a236..91e6bb1 100644 (file)
-# This file contains expectations for tests that we don't ever intend to fix.
-
-# 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.
-# http://b/issue?id=2585285
-failure disable securityManager
-result EXEC_FAILED
-pattern .*java.lang.SecurityException\s+at java.lang.System.setSecurityManager.*
-
-
-# ignore compilation errors due to different available APIs
-failure ignore compilation errors
-result COMPILE_FAILED
-pattern .*\.java:\d+: cannot find symbol.*
-
-
-# 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.
-test java.io.BufferedReader.ReadLine
-result EXEC_FAILED
-pattern .*java.lang.RuntimeException: Read past limit.*
-
-test java.io.BufferedReader.Ready
-result EXEC_FAILED
-pattern .*Hit infinite wait condition.*
-
-
-# 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.
-test java.io.StreamTokenizer.Reset
-result EXEC_FAILED
-pattern .*Test failed: should get token \[, but get -1.*
-
-
-# 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.
-test org.apache.harmony.logging.tests.java.util.logging.LoggerTest#testGetLoggerWithRes_InvalidResourceBundle
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: Resource bundle name 'impossible_not_existing' is inconsistent.*
-
-test org.apache.harmony.logging.tests.java.util.logging.LoggerTest#testGetLogger_Empty
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError.*
-
-
-# This tests implementation details
-test java.util.EnumSet.OneUniverse
-result UNSUPPORTED
-
-
-# Dalvik doesn't include the "SunJCE" crypto provider
-test com.sun.crypto.provider.Cipher.AES.Test4513830
-result EXEC_FAILED
-pattern .*NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.AES.Test4512704
-result EXEC_FAILED
-pattern .*NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.AES.Test4512524
-result EXEC_FAILED
-pattern .*NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.AES.Test4511676
-result EXEC_FAILED
-pattern .*NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.AES.Test4517355
-result EXEC_FAILED
-pattern .*NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.AES.TestISO10126Padding
-result EXEC_FAILED
-pattern .* java.security.NoSuchProviderException: SunJCE.*
-
-test com.sun.crypto.provider.Cipher.AES.Test4626070
-result EXEC_FAILED
-pattern .*NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.AES.TestShortBuffer
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.CTS.CTSMode
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.DES.DesAPITest
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.DES.DoFinalReturnLen
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.DES.FlushBug
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.DES.KeyWrapping
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.DES.PaddingTest
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.DES.Sealtest
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.DES.PerformanceTest
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Cipher.PBE.DecryptWithoutParameters
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.PBE.PBEInvalidParamsTest
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.PBE.PBEKeysAlgorithmNames
-result EXEC_FAILED
-pattern .*java.security.NoSuchProviderException: SunJCE.*
-
-test com.sun.crypto.provider.Cipher.PBE.PBEParametersTest
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.PBE.PKCS12Oid
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.UTIL.StrongOrUnlimited
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.Cipher.KeyWrap.NISTWrapKAT
-result EXEC_FAILED
-pattern .*Provider SunJCE is not available.*
-
-test com.sun.crypto.provider.KeyAgreement.DHGenSecretKey
-result EXEC_FAILED
-pattern .*java.security.NoSuchProviderException: SunJCE.*
-
-test com.sun.crypto.provider.KeyAgreement.DHGenSharedSecret
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.KeyAgreement.DHKeyAgreement3
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.KeyAgreement.DHKeyFactory
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.KeyAgreement.DHKeyGenSpeed
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.KeyAgreement.TestExponentSize
-result EXEC_FAILED
-pattern .*java.security.NoSuchProviderException: SunJCE.*
-
-test com.sun.crypto.provider.KeyFactory.TestProviderLeak
-result EXEC_FAILED
-pattern .*java.security.NoSuchProviderException: SunJCE.*
-
-test com.sun.crypto.provider.KeyFactory.PBKDF2HmacSHA1FactoryTest
-result EXEC_FAILED
-pattern .*java.security.NoSuchProviderException: SunJCE.*
-
-test com.sun.crypto.provider.KeyGenerator.Test4628062
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.KeyGenerator.TestExplicitKeyLength
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Mac.HmacPBESHA1
-result EXEC_FAILED
-pattern .*java.security.NoSuchProviderException: SunJCE.*
-
-test com.sun.crypto.provider.Mac.HmacMD5
-result EXEC_FAILED
-pattern .*java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE.*
-
-test com.sun.crypto.provider.Mac.MacClone
-result EXEC_FAILED
-pattern .*java.security.NoSuchProviderException: SunJCE.*
-
-failure JKS keystore not found
-result EXEC_FAILED
-pattern .*KeyStore JKS implementation not found.*
-
-
-# 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
-test com.sun.crypto.provider.Cipher.PBE.PKCS12Cipher
-result EXEC_FAILED
-pattern .*PKCS12Cipher.java\:87\).*NullPointerException.*
-
-test com.sun.crypto.provider.Cipher.PBE.PKCS12CipherKAT
-result EXEC_FAILED
-pattern .*NullPointerException.*PKCS12CipherKAT.java\:183\).*
-
-test com.sun.crypto.provider.Cipher.RC2ArcFour.CipherKAT
-result EXEC_FAILED
-pattern .*NullPointerException.*CipherKAT.java\:205\).*
-
-test com.sun.crypto.provider.Cipher.RSA.TestOAEP_KAT
-result EXEC_FAILED
-pattern .*TestOAEP_KAT.java\:62\).*NullPointerException.*
-
-test com.sun.crypto.provider.Cipher.RSA.TestOAEP
-result EXEC_FAILED
-pattern .*TestOAEP.java\:50\).*NullPointerException.*
-
-test com.sun.crypto.provider.Cipher.RSA.TestOAEPParameterSpec
-result EXEC_FAILED
-pattern .*TestOAEPParameterSpec.java\:124\).*NullPointerException.*
-
-test com.sun.crypto.provider.Cipher.RSA.TestOAEPWithParams
-result EXEC_FAILED
-pattern .*TestOAEPWithParams.java\:58\).*NullPointerException.*
-
-test com.sun.crypto.provider.Cipher.RSA.TestRSA
-result EXEC_FAILED
-pattern .*TestRSA.java\:171\).*NullPointerException.*
-
-test com.sun.crypto.provider.Mac.HmacSaltLengths
-result EXEC_FAILED
-pattern .*HmacSaltLengths.java\:83\).*java.lang.NullPointerException.*
-
-test com.sun.crypto.provider.Mac.MacKAT
-result EXEC_FAILED
-pattern .*MacKAT.java\:228\).*java.lang.NullPointerException.*
-
-
-# These tests call into misc Sun classes that we don't have
-test com.sun.crypto.provider.KeyAgreement.DHKeyAgreement2
-result COMPILE_FAILED
-pattern .*cannot find symbol.*sun.misc.HexDumpEncoder.*
-
-test com.sun.crypto.provider.Cipher.KeyWrap.XMLEncKAT
-result COMPILE_FAILED
-pattern .*cannot find symbol.*sun.misc.BASE64Decoder.*
-
-test com.sun.crypto.provider.TLS.TestKeyMaterial
-result COMPILE_FAILED
-pattern .*package sun.security.internal.spec does not exist.*
-
-test com.sun.crypto.provider.TLS.TestMasterSecret
-result COMPILE_FAILED
-pattern .*package sun.security.internal.spec does not exist.*
-
-test com.sun.crypto.provider.TLS.TestPremaster
-result COMPILE_FAILED
-pattern .*package sun.security.internal.spec does not exist.*
-
-test com.sun.crypto.provider.TLS.TestPRF
-result COMPILE_FAILED
-pattern .*package sun.security.internal.spec does not exist.*
-
-
-# We don't have most com.sun packages.
-failure Dalvik doesn't include Sun packages
-result COMPILE_FAILED
-pattern .*package (com\.)?sun\.[\w\.]+ does not exist.*
-
-# We don't have several Java packages either.
-failure Dalvik doesn't include applets
-result COMPILE_FAILED
-pattern .*package java.applet does not exist.*
-
-failure Dalvik doesn't include AWT (bug it has java.awt.font)
-result COMPILE_FAILED
-pattern .*package java.awt(\.image)? does not exist.*
-
-failure Dalvik doesn't include NIO.2
-result COMPILE_FAILED
-pattern .*package java.nio.file does not exist.*
-
-failure Dalvik doesn't include RMI
-result COMPILE_FAILED
-pattern .*package java.rmi does not exist.*
-
-failure Dalvik doesn't include JNDI
-result COMPILE_FAILED
-pattern .*package javax.naming does not exist.*
-
-failure Dalvik doesn't include JMX
-result COMPILE_FAILED
-pattern .*package java.lang.management does not exist.*
-
-failure Dalvik doesn't include Swing
-result COMPILE_FAILED
-pattern .*package javax.swing.tree does not exist.*
-
-failure Dalvik doesn't include javax.crypto
-result COMPILE_FAILED
-pattern .*package javax.xml.crypto does not exist.*
-
-# Dalvik doesn't include a com.sun.net HTTP server
-test com.sun.net.httpserver
-result UNSUPPORTED
-
-test sun.net.www
-result UNSUPPORTED
-
-
-# Dalvik doesn't include AWT except the font package
-test java.awt
-result UNSUPPORTED
-
-test java.awt.FontClass
-result SUCCESS
-
-test java.awt.font
-result SUCCESS
-
-
-# Dalvik doesn't include java.beans except for property listeners
-test java.beans
-result UNSUPPORTED
-
-test java.beans.PropertyChangeSupport
-result SUCCESS
-
-
-# Dalvik doesn't include java.lang.instrument
-test java.lang.instrument
-result UNSUPPORTED
-
-
-# Dalvik doesn't include java.lang.management
-test java.lang.management
-result UNSUPPORTED
-
-
-# Dalvik doesn't include RMI
-test java.rmi
-result UNSUPPORTED
-
-test sun.rmi
-result UNSUPPORTED
-
-# Dalvik doesn't include javax.imageio
-test javax.imageio
-result UNSUPPORTED
-
-# Dalvik doesn't include javax.management
-test javax.management
-result UNSUPPORTED
-
-# Dalvik doesn't include javax.naming
-test javax.naming
-result UNSUPPORTED
-
-# Dalvik doesn't include javax.print
-test javax.print
-result UNSUPPORTED
-
-# Dalvik doesn't include javax.script
-test javax.script
-result UNSUPPORTED
-
-# Dalvik doesn't include javax.sound
-test javax.sound
-result UNSUPPORTED
-
-
-# Dalvik doesn't include javax.swing
-test javax.swing
-result UNSUPPORTED
-
-
-# Dalvik doesn't include sun.management
-test sun.management
-result UNSUPPORTED
-
-
-# Dalvik doesn't include javax.smartcardio
-test sun.security.smartcardio
-result UNSUPPORTED
-
-
-# Our exception messages don't match the RIs
-test java.lang.StringBuilder.Exceptions
-result EXEC_FAILED
-pattern .*got java\.lang\.StringIndexOutOfBoundsException: null - FAILED.*
-
-test java.lang.StringBuffer.Exceptions
-result EXEC_FAILED
-pattern .*got java\.lang\.StringIndexOutOfBoundsException: null - FAILED.*
-
-
-# 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
-test org.apache.harmony.luni.tests.java.util.DateTest#test_toString
-result EXEC_FAILED
-pattern .*GMT-07:00.*
-
-
-# These harmony tests are broken. The RI doesn't ship with es__TRADITIONAL, so
-# they have incorrect expectations.
-# http://b/2608750
-
-test org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testGetCollationElementIteratorCharacterIterator
-result EXEC_FAILED
-pattern .*expected:<1> but was:<2>.*
-
-test org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testGetCollationElementIteratorString
-result EXEC_FAILED
-pattern .*expected:<1> but was:<2>.*
-
-# This test fails because on Android, RuleBasedCollators default to
-# CANONICAL_DECOMPOSITION, not NO_DECOMPOSITION.
-test org.apache.harmony.text.tests.java.text.RuleBasedCollatorTest#testEqualsObject
-result EXEC_FAILED
-pattern .*expected:<0> but was:<1>.*
-
-
-# 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.
-test org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_headSet
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: 100 not in range \(100..109\].*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_AscendingSubMapKeySet_tailSet
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: null not in range \[100..109\).*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_headSet
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: null not in range \[100..109\).*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMap_tailMap
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: 100 not in range \(100..109\].*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_DescendingSubMapKeySet_tailSet
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: 100 not in range \(100..109\].*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapExtendTest#test_SubMap_headMap
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: 100 not in range \(100..109\].*
-
-# why are they using reflection to test implementation details?
-test org.apache.harmony.luni.tests.java.util.ArraysTest#test_swap_I_I_$Ljava_lang_Object
-result EXEC_FAILED
-pattern .*java.lang.NoSuchMethodException.*
-
-# all these tests rely on a Harmony bug where TreeMaps may have a singleton null, which we choose
-# to disallow.
-test org.apache.harmony.luni.tests.java.util.SimpleImmutableEntryTest#test_SimpleImmutableEntry_Constructor_LEntry
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*at java.util.TreeMap.find.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingEntry
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_ceilingKey
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorEntry
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_floorKey
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherEntry
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_higherKey
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerEntry
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_lowerKey
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_illegalFirstNullKey
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*at java.util.TreeMap.find.*
-
-# this is testing exception priorities
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectLjava_lang_Object
-result EXEC_FAILED
-pattern .*java.lang.ClassCastException: java.lang.Object.*
-
-# the null-friendly comparator isn't symmetric
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_subMapLjava_lang_ObjectZLjava_lang_ObjectZ
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-# we fail fast on not-comparable objects
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_equals
-result EXEC_FAILED
-pattern .*java.lang.ClassCastException: java.lang.Object.*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_putLjava_lang_ObjectLjava_lang_Object
-result EXEC_FAILED
-pattern .*java.lang.ClassCastException: java.lang.Object.*
-
-# tests that depend on the iteration order of a hash
-test org.apache.harmony.luni.tests.java.util.CollectionsTest#test_unmodifiable_toString_methods
-result EXEC_FAILED
-pattern .*expected:<...one=1, two=2...> but was:<...two=2, one=1...>.*
-
-test org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet_subtest1
-result EXEC_FAILED
-pattern .*java.lang.IllegalStateException.*at java.util.Hashtable.*
-
-test org.apache.harmony.luni.tests.java.util.HashtableTest#test_elements_subtest0
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: unexpected: b.*
-
-test org.apache.harmony.luni.tests.java.util.HashMapTest#test_rehash
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: expected same.*
-
-test org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialpropertyNames
-result EXEC_FAILED
-pattern .*expected:<current.b.key> but was:<current.a.key>.*
-
-test org.apache.harmony.luni.tests.java.util.PropertiesTest#test_SequentialstringPropertyNames
-result EXEC_FAILED
-pattern .*junit.framework.ComparisonFailure.*
-
-test org.apache.harmony.luni.tests.java.util.PropertiesTest#test_propertyNames_sequence
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: expected:<current.b.key> but was:<current.a.key>.*
-
-# tests that use secret type information to reason about behavior
-test org.apache.harmony.luni.tests.java.util.HashtableTest#test_keySet
-result EXEC_FAILED
-pattern .*junit.framework.ComparisonFailure: Not synchronized expected:<...Collections\$Synchronized...> but was:<...Hashtable\$Key...>.*
-
-test org.apache.harmony.luni.tests.java.util.HashtableTest#test_entrySet
-result EXEC_FAILED
-pattern .*junit.framework.ComparisonFailure: Not synchronized expected:<...Collections\$Synchronized...> but was:<...Hashtable\$Entry...>.*
-
-test org.apache.harmony.luni.tests.java.util.HashtableTest#test_values
-result EXEC_FAILED
-pattern .*junit.framework.ComparisonFailure: Not synchronized expected:<...Collections\$SynchronizedCollection> but was:<...Hashtable\$Values>.*
-
-# this test is invalid, proxy.equals isn't symmetric
-test org.apache.harmony.luni.tests.java.util.HashMapTest#test_proxies
-result EXEC_FAILED
-
-# this test is invalid, the mock map's entry set isn't to spec
-test org.apache.harmony.luni.tests.java.util.HashMapTest#test_putAllLjava_util_Map
-result EXEC_FAILED
-pattern .*java.lang.NullPointerException.*
-
-# this test assumes remove acts on equals() equality, not comparator equality
-test org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_using_comparator
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError.*
-
-# tests that violate the API and then guess about the outcomes
-test org.apache.harmony.luni.tests.java.util.HashtableTest#test_getLjava_lang_Object
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError.*
-
-# this test assumes Integer.toString() always returns a new instance
-test org.apache.harmony.luni.tests.java.util.IdentityHashMap2Test#test_containsKeyLjava_lang_Object
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: Returned true for copy of valid key.*
-
-# tests that cast to Harmony-specific types
-failure bogus cast to harmony Hashtable$KeyEnumeration
-result EXEC_FAILED
-pattern .*java.util.Hashtable\$KeyEnumeration.*
-
-failure bogus cast to Hashtable$ValueEnumeration
-result EXEC_FAILED
-pattern .*java.util.Hashtable\$ValueEnumeration.*
-
-# test doesn't expect it, but the spec permits the exception. RI also throws here.
-test org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_Compatible
-result EXEC_FAILED
-pattern .*java.lang.ClassCastException.*
-
-test org.apache.harmony.luni.tests.java.util.PriorityQueueTest#test_remove_Ljava_lang_Object_not_exists
-result EXEC_FAILED
-pattern .*java.lang.ClassCastException.*
-
-# localization tests where our data disagree
-test org.apache.harmony.luni.tests.java.util.LocaleTest#test_getAvailableLocales
-result EXEC_FAILED
-pattern .*Wrong number of locales.*
-
-# test that enforce redundant implements clauses
-test org.apache.harmony.luni.tests.java.util.LinkedHashMapTest#test_getInterfaces
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: expected:<3> but was:<2>.*
-
-# this is testing exception priorities
-test org.apache.harmony.nio.tests.java.nio.channels.DatagramChannelTest#testReadByteBuffer_readOnlyBuf
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: read-only buffer.*
-
-# ICU doesn't provide localized pattern characters, and these tests assume the locale they're using has them.
-test org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_applyLocalizedPatternLjava_lang_String
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: Invalid pattern character 'u' in 'GuMtkHmsSEDFwWahKz'.*
-test org.apache.harmony.text.tests.java.text.SimpleDateFormatTest#test_toLocalizedPattern
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: Wrong pattern: GyMdkHmsSEDFwWahKz.*
-test org.apache.harmony.text.tests.java.text.DateFormatSymbolsTest#test_getLocalPatternChars
-result EXEC_FAILED
-pattern .*junit.framework.ComparisonFailure: Returned incorrect pattern string expected:<...YeugAZvcLQqV> but was:<...Z>.*
-
-# we don't support the CharsetProvider spi, so we don't have "mockCharset00".
-test tests.api.java.nio.charset.CharsetTest#test_availableCharsets
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError.*
-test tests.api.java.nio.charset.CharsetTest#test_forNameLString
-result EXEC_FAILED
-pattern .*java.nio.charset.UnsupportedCharsetException: mockCharset00.*
-
-# the average length of possible UTF-8 sequences is 2 bytes.
-test tests.api.java.nio.charset.UTFCharsetEncoderTest#testSpecificDefaultValue
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: expected:<1.1> but was:<2.0>.*
-
-# We don't permit runtime switching of the default charset (and neither does the RI)
-test org.apache.harmony.nio_char.tests.java.nio.charset.CharsetTest#test_defaultCharset
-result EXEC_FAILED
-pattern .*expected:<ISO-8859-1> but was:<UTF-8>.*
-
-# this test needs external interaction
-test com.sun.tools.attach.Application
-result UNSUPPORTED
-
-test java.io.SystemInAvailable
-result UNSUPPORTED
-
-test sun.jvmstat.testlibrary.Sleeper
-result UNSUPPORTED
-
-
-# these benchmarks take a long time and don't demonstrate correctness
-test java.lang.Class.TypeCheckMicroBenchmark
-result UNSUPPORTED
-
-test java.nio.Buffer.SwapMicroBenchmark
-result UNSUPPORTED
-
-test java.util.ArrayList.RangeCheckMicroBenchmark
-result UNSUPPORTED
-
-test java.util.ArrayList.IteratorMicroBenchmark
-result UNSUPPORTED
-
-
-# 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).
-test org.apache.harmony.luni.tests.java.lang.CharacterTest#test_isJavaIdentifierPartC
-result EXEC_FAILED
-
-
-# We removed this: we don't support Pack200.
-test org.apache.harmony.archive.tests.java.util.jar.Pack200Test
-result UNSUPPORTED
-
-# We removed this: we don't cache canonical paths.
-test org.apache.harmony.luni.tests.java.io.FileCanonPathCacheTest
-result UNSUPPORTED
-
-# We removed this: we don't throw NotYetImplementedException.
-test org.apache.harmony.luni.tests.util.NYITest
-result UNSUPPORTED
-
-# We removed this: we don't support localized exceptions.
-test org.apache.harmony.luni.tests.internal.nls.MessagesTest
-result UNSUPPORTED
-
-
-# These test implementation details we don't share.
-test org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getInt
-result EXEC_FAILED
-test org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getLong
-result EXEC_FAILED
-test org.apache.harmony.text.tests.java.text.BreakIteratorTest#test_getShort
-result EXEC_FAILED
-
-
-
-
-# These test exception priority.
-test org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalExceptionOrder
-result EXEC_FAILED
-test org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_BigIntegerExceptionOrder
-result EXEC_FAILED
-test org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_FloatDoubleBigDecimalExceptionOrder
-result EXEC_FAILED
-
-
-# These format specifiers are documented to not take flags, but the RI accepts and ignores them.
-test org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_LineSeparator
-pattern .*java.util.IllegalFormatFlagsException: %n doesn't take an argument.*
-result EXEC_FAILED
-test org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Percent
-pattern .*java.util.IllegalFormatFlagsException: %% doesn't take an argument.*
-result EXEC_FAILED
-test org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_Width
-pattern .*java.util.IllegalFormatFlagsException: %% doesn't take an argument.*
-result EXEC_FAILED
-
-# These tests expect to be able to load resources from the file system
-test org.apache.harmony.luni.tests.java.lang.ClassTest#test_getResourceAsStreamLjava_lang_String
-result EXEC_FAILED
-test org.apache.harmony.luni.tests.java.lang.ClassTest#test_getResourceAsStream_withSharpChar
-result EXEC_FAILED
-test org.apache.harmony.luni.tests.java.lang.ClassTest#test_getResourceLjava_lang_String
-result EXEC_FAILED
-
-# Some tests (ExcludedProxyTest) connect to a public webserver to check that the HTTP client works
-failure connect to the Internet
-result EXEC_FAILED
-pattern .*java.net.UnknownHostException:.*jcltest.apache.org.*
-
-# These tests violate visibility rules when trying to unit test internal classes
-test javax.net.ssl.DefaultSSLSocketFactoryTest
-result EXEC_FAILED
-pattern .*java.lang.IllegalAccessError: tried to access class javax.net.ssl.DefaultSSLSocketFactory from class javax.net.ssl.DefaultSSLSocketFactoryTest.*
+/*
+ * This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+ */
+[
+{
+  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.
+                http://b/issue?id=2585285",
+  result: EXEC_FAILED,
+  failure: "disable securityManager",
+  pattern: ".*java.lang.SecurityException\\s+at java.lang.System.setSecurityManager.*"
+},
+{
+  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.LoggerTest#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: "this is testing exception priorities",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.nio.tests.java.nio.channels.DatagramChannelTest#testReadByteBuffer_readOnlyBuf",
+  substring: "java.lang.IllegalArgumentException: read-only buffer"
+},
+{
+  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 test exception priority.",
+  result: EXEC_FAILED,
+  names: [
+    "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalExceptionOrder",
+    "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_BigIntegerExceptionOrder",
+    "org.apache.harmony.luni.tests.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_FloatDoubleBigDecimalExceptionOrder"
+  ]
+},
+{
+  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: "These tests expect to be able to load resources from the file system",
+  result: EXEC_FAILED,
+  names: [
+    "org.apache.harmony.luni.tests.java.lang.ClassTest#test_getResourceAsStreamLjava_lang_String",
+    "org.apache.harmony.luni.tests.java.lang.ClassTest#test_getResourceAsStream_withSharpChar",
+    "org.apache.harmony.luni.tests.java.lang.ClassTest#test_getResourceLjava_lang_String"
+  ]
+},
+{
+  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"
+}
+]
\ No newline at end of file
index 4959a0e..d4ad548 100644 (file)
-# This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
-
-# Dalvik doesn't support XML Schemas, DTDs or validation
-# http://code.google.com/p/android/issues/detail?id=7395
-test tests.xml.DomTest#testEntityDeclarations
-result EXEC_FAILED
-pattern .*This implementation does not parse entity declarations.*
-
-test tests.xml.DomTest#testGetWholeTextWithEntityReference
-result EXEC_FAILED
-pattern .*This implementation doesn't resolve entity references in getWholeText.*
-
-test tests.xml.DomTest#testIsElementContentWhitespaceWithDeclaration
-result EXEC_FAILED
-pattern .*This implementation does not recognize element content whitespace.*
-
-test tests.xml.DomTest#testNotations
-result EXEC_FAILED
-pattern .*This implementation does not parse notations.*
-
-test tests.xml.DeclarationTest#testGetXmlEncoding
-result EXEC_FAILED
-pattern .*This implementation doesn't parse the encoding from the XML declaration expected:<ISO-8859-1> but was:<null>.*
-
-test tests.xml.DeclarationTest#testGetXmlStandalone
-pattern .*This implementation doesn't parse standalone from the XML declaration expected:<true> but was:<false>.*
-result EXEC_FAILED
-
-test tests.xml.DeclarationTest#testGetXmlVersion
-pattern .*This implementation doesn't parse the version from the XML declaration expected:<...1> but was:<...0>.*
-result EXEC_FAILED
-
-test tests.xml.NormalizeTest#testSchemaTypeDtd
-result EXEC_FAILED
-pattern .*This implementation's setParameter\(\) supports an unexpected value: schema-type=http://www.w3.org/TR/REC-xml.*
-
-test tests.api.javax.xml.parsers.DocumentBuilderTest#testSetEntityResolver
-result EXEC_FAILED
-pattern .*java.lang.ClassCastException: org.apache.harmony.xml.dom.EntityReferenceImpl.*
-
-# the lack of schema parsing also extends to XML parsing in prefs
-test org.apache.harmony.prefs.tests.java.util.prefs.PreferencesTest#testImportPreferences
-result EXEC_FAILED
-pattern .*junit.framework.AssertionFailedError: should throw InvalidPreferencesFormatException.*
-
-
-
-
-# many tests attempt to fork a Java executable, but fork the wrong one
-failure should fork a dalvikvm, not a JVM
-pattern .*/system/bin.*IOException.*
-result EXEC_FAILED
-
-
-# a low impact bug, we can't produce tiny random, probable prime big integers
-test tests.api.java.math.BigIntegerTest#test_ConstructorIILjava_util_Random
-pattern .*junit.framework.AssertionFailedError: Random number one is too big.*
-result EXEC_FAILED
-
-
-# we don't support CANON_EQ in regex
-# http://code.google.com/p/android/issues/detail?id=8592
-test org.apache.harmony.tests.java.util.regex.PatternTest#testCanonEqFlagWithSupplementaryCharacters
-result EXEC_FAILED
-pattern .*UnsupportedOperationException: CANON_EQ flag not supported.*
-
-test org.apache.harmony.tests.java.util.regex.PatternTest#testCanonEqFlag
-result EXEC_FAILED
-pattern .*UnsupportedOperationException: CANON_EQ flag not supported.*
-
-test org.apache.harmony.tests.java.util.regex.PatternErrorTest#testCompileErrors
-result EXEC_FAILED
-pattern .*UnsupportedOperationException: CANON_EQ flag not supported.*
-
-test org.apache.harmony.tests.java.util.regex.PatternTest#testCompileNonCaptGroup
-result EXEC_FAILED
-pattern .*UnsupportedOperationException: CANON_EQ flag not supported.*
-
-test org.apache.harmony.tests.java.util.regex.PatternTest#testIndexesCanonicalEq
-result EXEC_FAILED
-pattern .*UnsupportedOperationException: CANON_EQ flag not supported.*
-
-
-# low-impact XML bugs:
-test tests.xml.DomTest#testAttributeNamedIdIsNotAnIdByDefault
-result EXEC_FAILED
-pattern .*This implementation incorrectly interprets the "id" attribute as an identifier by default.*
-
-test tests.xml.DomTest#testDocumentAddChild
-result EXEC_FAILED
-pattern .*Document nodes shouldn't accept child nodes.*
-
-test tests.xml.DomTest#testElementTraversalFeature
-result EXEC_FAILED
-pattern .*This implementation is expected to support ElementTraversal v. 1.0 but does not..*
-
-test tests.xml.DomTest#testLoadSaveFeature
-result EXEC_FAILED
-pattern .*This implementation is expected to support LS v. 3.0 but does not..*
-
-test tests.xml.SaxTest#testYesPrefixesYesNamespaces
-result EXEC_FAILED
-pattern .*The 'namespace-prefix' feature is not supported while the 'namespaces' feature is enabled..*
-
-test tests.api.javax.xml.parsers.SAXParserFactoryTest#test_newInstance
-result EXEC_FAILED
-pattern .*Expected FactoryConfigurationError was not thrown.*
-
-test tests.api.javax.xml.parsers.DocumentBuilderFactoryTest#test_isSetXIncludeAware
-result EXEC_FAILED
-pattern .*java.lang.UnsupportedOperationException: This parser does not support specification "Unknown" version "0.0".*
-
-test tests.api.javax.xml.parsers.DocumentBuilderTest#testIsXIncludeAware
-result EXEC_FAILED
-pattern .*java.lang.UnsupportedOperationException: This parser does not support specification "Unknown" version "0.0".*
-
-test tests.api.javax.xml.parsers.SAXParserFactoryTest#test_setIsXIncludeAware
-result EXEC_FAILED
-pattern .*java.lang.UnsupportedOperationException: This parser does not support specification "Unknown" version "0.0".*
-
-test tests.api.javax.xml.parsers.SAXParserTest#testIsXIncludeAware
-result EXEC_FAILED
-pattern .*java.lang.UnsupportedOperationException: This parser does not support specification "Unknown" version "0.0".*
-
-# a low-impact bug: "Shared FileDescriptors get closed too early"
-#   http://code.google.com/p/android/issues/detail?id=5923
-test java.io.FileDescriptor.Finalize
-result EXEC_FAILED
-pattern .*java.io.IOException.*openCheck.*
-
-
-# a low-impact bug, also present in Crockford's implementation of org.json
-test org.json.ParsingTest#test64BitHexValues
-result EXEC_FAILED
-pattern .*Large hex longs shouldn't be yield ints or strings expected:<-1> but was:<0xFFFFFFFFFFFFFFFF>.*
-
-
-# this test needs to be fixed. We supply optional qnames, but this test doesn't expect them
-test tests.api.javax.xml.parsers.SAXParserTest#test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String
-result EXEC_FAILED
-
-# these enforce a bug where an exception is incorrectly unthrown, but should maybe be fixed for
-# compatibility.
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_headMapLjava_lang_ObjectZL
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: null not in range ...5\).*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_tailMapLjava_lang_ObjectZL
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: 5 not in range \(5....*
-
-test org.apache.harmony.luni.tests.java.util.TreeMapTest#test_descendingMap_subMap
-result EXEC_FAILED
-pattern .*java.lang.IllegalArgumentException: 5 not in range \(5....*
-
-# BouncyCastle allows unrecognized algorithms, but RI does not, not clear if this is a bug
-test org.apache.harmony.crypto.tests.javax.crypto.KeyAgreementTest#test_generateSecretLjava_lang_String
-pattern .*junit.framework.AssertionFailedError: NoSuchAlgorithmException expected.*
-result EXEC_FAILED
+/*
+ * This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+ */
+[
+{
+  description: "Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testEntityDeclarations",
+  substring: "This implementation does not parse entity declarations"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testGetWholeTextWithEntityReference",
+  substring: "This implementation doesn't resolve entity references in getWholeText"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testIsElementContentWhitespaceWithDeclaration",
+  substring: "This implementation does not recognize element content whitespace"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testNotations",
+  substring: "This implementation does not parse notations"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.DeclarationTest#testGetXmlEncoding",
+  substring: "This implementation doesn't parse the encoding from the XML declaration expected:<ISO-8859-1> but was:<null>"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.DeclarationTest#testGetXmlStandalone",
+  substring: "This implementation doesn't parse standalone from the XML declaration expected:<true> but was:<false>"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.DeclarationTest#testGetXmlVersion",
+  substring: "This implementation doesn't parse the version from the XML declaration expected:<...1> but was:<...0>"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.xml.NormalizeTest#testSchemaTypeDtd",
+  substring: "This implementation's setParameter() supports an unexpected value: schema-type=http://www.w3.org/TR/REC-xml"
+},
+{
+  description: "This file contains expectations for tests that we'd like to eventually fix, but aren't urgent.
+                Dalvik doesn't support XML Schemas, DTDs or validation
+                http://code.google.com/p/android/issues/detail?id=7395",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.xml.parsers.DocumentBuilderTest#testSetEntityResolver",
+  substring: "java.lang.ClassCastException: org.apache.harmony.xml.dom.EntityReferenceImpl"
+},
+{
+  description: "the lack of schema parsing also extends to XML parsing in prefs",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.prefs.tests.java.util.prefs.PreferencesTest#testImportPreferences",
+  substring: "junit.framework.AssertionFailedError: should throw InvalidPreferencesFormatException"
+},
+{
+  description: "many tests attempt to fork a Java executable, but fork the wrong one",
+  result: "EXEC_FAILED",
+  failure: "should fork a dalvikvm, not a JVM",
+  substring: "/system/bin.*IOException"
+},
+{
+  description: "a low impact bug, we can't produce tiny random, probable prime big integers",
+  result: EXEC_FAILED,
+  name: "tests.api.java.math.BigIntegerTest#test_ConstructorIILjava_util_Random",
+  substring: "junit.framework.AssertionFailedError: Random number one is too big"
+},
+{
+  description: "we don't support CANON_EQ in regex
+                http://code.google.com/p/android/issues/detail?id=8592",
+  result: EXEC_FAILED,
+  names: [
+    "org.apache.harmony.tests.java.util.regex.PatternTest#testCanonEqFlagWithSupplementaryCharacters",
+    "org.apache.harmony.tests.java.util.regex.PatternTest#testCanonEqFlag",
+    "org.apache.harmony.tests.java.util.regex.PatternErrorTest#testCompileErrors",
+    "org.apache.harmony.tests.java.util.regex.PatternTest#testCompileNonCaptGroup",
+    "org.apache.harmony.tests.java.util.regex.PatternTest#testIndexesCanonicalEq"
+  ],
+  substring: "UnsupportedOperationException: CANON_EQ flag not supported"
+},
+{
+  description: "low-impact XML bugs:",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testAttributeNamedIdIsNotAnIdByDefault",
+  substring: "This implementation incorrectly interprets the \"id\" attribute as an identifier by default"
+},
+{
+  description: "low-impact XML bugs:",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testDocumentAddChild",
+  substring: "Document nodes shouldn't accept child nodes"
+},
+{
+  description: "low-impact XML bugs:",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testElementTraversalFeature",
+  substring: "This implementation is expected to support ElementTraversal v. 1.0 but does not."
+},
+{
+  description: "low-impact XML bugs:",
+  result: EXEC_FAILED,
+  name: "tests.xml.DomTest#testLoadSaveFeature",
+  substring: "This implementation is expected to support LS v. 3.0 but does not."
+},
+{
+  description: "low-impact XML bugs:",
+  result: EXEC_FAILED,
+  name: "tests.xml.SaxTest#testYesPrefixesYesNamespaces",
+  substring: "The 'namespace-prefix' feature is not supported while the 'namespaces' feature is enabled."
+},
+{
+  description: "low-impact XML bugs:",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.xml.parsers.SAXParserFactoryTest#test_newInstance",
+  substring: "Expected FactoryConfigurationError was not thrown"
+},
+{
+  description: "low-impact XML bugs:",
+  result: EXEC_FAILED,
+  names: [
+    "tests.api.javax.xml.parsers.DocumentBuilderFactoryTest#test_isSetXIncludeAware",
+    "tests.api.javax.xml.parsers.DocumentBuilderTest#testIsXIncludeAware",
+    "tests.api.javax.xml.parsers.SAXParserFactoryTest#test_setIsXIncludeAware",
+    "tests.api.javax.xml.parsers.SAXParserTest#testIsXIncludeAware"
+  ],
+  substring: "java.lang.UnsupportedOperationException: This parser does not support specification \"Unknown\" version \"0.0\""
+},
+{
+  description: "a low-impact bug: \"Shared FileDescriptors get closed too early\"
+                  http://code.google.com/p/android/issues/detail?id=5923",
+  result: EXEC_FAILED,
+  name: "java.io.FileDescriptor.Finalize",
+  pattern: ".*java.io.IOException.*openCheck.*"
+},
+{
+  description: "a low-impact bug, also present in Crockford's implementation of org.json",
+  result: EXEC_FAILED,
+  name: "org.json.ParsingTest#test64BitHexValues",
+  substring: "Large hex longs shouldn't be yield ints or strings expected:<-1> but was:<0xFFFFFFFFFFFFFFFF>"
+},
+{
+  description: "this test needs to be fixed. We supply optional qnames, but this test doesn't expect them",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.xml.parsers.SAXParserTest#test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String"
+},
+{
+  description: "these enforce a bug where an exception is incorrectly unthrown, but should maybe be fixed for
+                compatibility.",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_headMapLjava_lang_ObjectZL",
+  substring: "java.lang.IllegalArgumentException: null not in range ...5)"
+},
+{
+  description: "these enforce a bug where an exception is incorrectly unthrown, but should maybe be fixed for
+                compatibility.",
+  result: EXEC_FAILED,
+  names: [
+    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_tailMapLjava_lang_ObjectZL",
+    "org.apache.harmony.luni.tests.java.util.TreeMapTest#test_descendingMap_subMap"
+  ],
+  substring: "java.lang.IllegalArgumentException: 5 not in range (5..."
+},
+{
+  description: "BouncyCastle allows unrecognized algorithms, but RI does not, not clear if this is a bug",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.crypto.tests.javax.crypto.KeyAgreementTest#test_generateSecretLjava_lang_String",
+  substring: "junit.framework.AssertionFailedError: NoSuchAlgorithmException expected"
+}
+]
\ No newline at end of file
index ad3bd6a..9db8d34 100644 (file)
-# This file contains expectations for tests that were annotated with @KnownFailure at the time
-# this file was created.
-
-# Fails in CTS but passes under run-core-tests
-test tests.api.java.io.FileTest#test_deleteOnExit
-result EXEC_FAILED
-
-# Fails in CTS but passes under run-core-tests
-test tests.api.java.io.SerializationStressTest4#test_writeObject_Proxy
-result EXEC_FAILED
-
-# Defining classes from byte[] not supported in Android
-test org.apache.harmony.luni.tests.java.lang.ClassTest#test_getClasses_subtest0
-result EXEC_FAILED
-
-# There is no protection domain set in Android.
-test org.apache.harmony.luni.tests.java.lang.ClassTest#test_getProtectionDomain
-result EXEC_FAILED
-
-# Fails in CTS but passes under run-core-tests
-test org.apache.harmony.luni.tests.java.lang.RuntimeTest#test_traceMethodCalls
-result EXEC_FAILED
-
-# Fails in CTS but passes under run-core-tests
-test tests.api.java.net.MulticastSocketTest#test_joinGroupLjava_net_SocketAddressLjava_net_NetworkInterface
-result EXEC_FAILED
-
-# Fails in CTS but passes under run-core-tests
-test tests.api.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_DateTimeConversion
-result EXEC_FAILED
-
-# It's not allowed to pass null as parent class loader to a new ClassLoader anymore. Maybe we need
-# to change URLClassLoader to allow this? It's not specified.
-test tests.api.java.util.ResourceBundleTest#test_getBundleLjava_lang_StringLjava_util_LocaleLjava_lang_ClassLoader
-result EXEC_FAILED
-
-# Fails in CTS but passes under run-core-tests
-test tests.api.java.nio.charset.CharsetProviderTest#testForName_InsufficientPrivilege
-result EXEC_FAILED
-
-# Fails in CTS but passes under run-core-tests
-test tests.api.java.nio.charset.CharsetProviderTest#testIsSupported_And_ForName_NormalProvider
-result EXEC_FAILED
-
-# Fails (probably) because no protection domain is set.
-test org.apache.harmony.security.tests.java.security.AccessController2Test#test_checkPermission_InvalidPermission
-result EXEC_FAILED
-
-# Fails (probably) because no protection domain is set.
-test org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedAction
-result EXEC_FAILED
-
-# Fails (probably) because no protection domain is set.
-test org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedActionLjava_security_AccessControlContext
-result EXEC_FAILED
-
-# Fails (probably) because no protection domain is set.
-test org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedExceptionAction
-result EXEC_FAILED
-
-# Fails (probably) because no protection domain is set.
-test org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedExceptionActionLjava_security_AccessControlContext
-result EXEC_FAILED
-
-# Android throws IllegalArgumentException, RI throws NullpointerException
-test org.apache.harmony.security.tests.java.security.SignatureTest#testUpdatebyteArrayintint2
-result EXEC_FAILED
-
-# Android doesn't support protection domains.
-test tests.api.java.security.PermissionCollectionTest#test_impliesLjava_security_Permission
-result EXEC_FAILED
-
-# Android doesn't allow null parent.
-test tests.java.security.SecureClassLoaderTest#testSecureClassLoaderClassLoader
-result EXEC_FAILED
-
-# expired certificate bug 2322662
-test tests.security.cert.CertPathBuilder1Test#testBuild
-result EXEC_FAILED
-
-# expired certificate bug 2322662
-test tests.security.cert.CertPathTest#testSerializationCompatibility
-result EXEC_FAILED
-
-# expired certificate bug 2322662
-test tests.security.cert.CertPathTest#testSerializationSelf
-result EXEC_FAILED
-
-# Assertion does not evaluate to true... Works in javax.Certificate
-test tests.security.cert.CertificateTest#testGetEncoded
-result EXEC_FAILED
-
-# throws SocketException with message: the socket level is invalid. Works on the RI
-test tests.security.permissions.JavaNetSocketTest#test_ctor2
-result EXEC_FAILED
-
-# Not all Drivers are loaded in testsetup. Classloader issue in DriverManager.
-test org.apache.harmony.sql.tests.java.sql.DriverManagerTest#testDeregisterDriver
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.SelectFunctionalityTest#test_SelectRightOuterJoin
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.UpdateFunctionalityTest2#testUpdate2
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.UpdateFunctionalityTest2#testUpdate4
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.UpdateFunctionalityTest2#testUpdate6
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.UpdateFunctionalityTest2#testUpdate7
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DeleteFunctionalityTest#testDelete6
-result EXEC_FAILED
-
-# Not supported : pattern with %
-test tests.java.sql.DatabaseMetaDataTest#test_getColumnsArbitrary
-result EXEC_FAILED
-
-# Wildcard operator does not seem wo work correctly.
-test tests.java.sql.DatabaseMetaDataTest#test_getColumnsSpecific
-result EXEC_FAILED
-
-# Not supported ops applied: test fails on arguments: '', '', '%', '%'
-test tests.java.sql.DatabaseMetaDataTest#test_getColumnsTableWithNoCatalogSchema
-result EXEC_FAILED
-
-# (Ticket 91) Tables apply foreign key constraint. Catalogs not supported
-test tests.java.sql.DatabaseMetaDataTest#test_getCrossReferenceLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_String
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getDatabaseMajorVersion
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getDatabaseMinorVersion
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getDatabaseProductName
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getDatabaseProductVersion
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getDefaultTransactionIsolation
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getDriverName
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getDriverVersion
-result EXEC_FAILED
-
-# Keys are not supported: Ticket 91
-test tests.java.sql.DatabaseMetaDataTest#test_getImportedKeysLjava_lang_StringLjava_lang_StringLjava_lang_String
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getJDBCMajorVersion
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getJDBCMinorVersion
-result EXEC_FAILED
-
-# Not supported feature, Ticket 98. Broken because NUMERIC_FUNCTIONS not complete. When fixed
-# change to @KnownFailure
-test tests.java.sql.DatabaseMetaDataTest#test_getNumericFunctions
-result EXEC_FAILED
-
-#  Ticket 91 : relies on not supported features: getCatalog, keys
-test tests.java.sql.DatabaseMetaDataTest#test_getPrimaryKeysLjava_lang_StringLjava_lang_StringLjava_lang_String
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getResultSetHoldability
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getSQLKeywords
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getSQLStateType
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getSchemas
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getSearchStringEscape
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataTest#test_getStringFunctions
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataTest#test_getSystemFunctions
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getTableTypes
-result EXEC_FAILED
-
-# If no schema is associated: returns empty string where actually null be returned?. Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getTablesLjava_lang_StringLjava_lang_StringLjava_lang_String$Ljava_lang_String
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataTest#test_getTimeDateFunctions
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataTest#test_getTypeInfo
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_getURL
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_insertsAreDetectedI
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_isReadOnly
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_othersDeletesAreVisibleI
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_othersInsertsAreVisibleI
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_othersUpdatesAreVisibleI
-result EXEC_FAILED
-
-# not supported. SQLException checking test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsColumnAliasing
-result EXEC_FAILED
-
-# exception test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsExpressionsInOrderBy
-result EXEC_FAILED
-
-# exception test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsGroupBy
-result EXEC_FAILED
-
-# exception test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsGroupByUnrelated
-result EXEC_FAILED
-
-# Ticket 98
-test tests.java.sql.DatabaseMetaDataTest#test_supportsNonNullableColumns
-result EXEC_FAILED
-
-# exception test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsOrderByUnrelated
-result EXEC_FAILED
-
-# exception test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsSelectForUpdate
-result EXEC_FAILED
-
-# exception test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsSubqueriesInExists
-result EXEC_FAILED
-
-# exception test fails
-test tests.java.sql.DatabaseMetaDataTest#test_supportsTableCorrelationNames
-result EXEC_FAILED
-
-# Not supported ops applied
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_allTablesAreSelectable
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_doesMaxRowSizeIncludeBlobs
-result EXEC_FAILED
-
-# not supported. Privileges are not supported.
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getColumnPrivilegesLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_String
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getExportedKeysLjava_lang_StringLjava_lang_StringLjava_lang_String
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getIndexInfoLjava_lang_StringLjava_lang_StringLjava_lang_StringZZ
-result EXEC_FAILED
-
-# Exception test fails
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getMaxTableNameLength
-result EXEC_FAILED
-
-# Exception test fails
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getMaxTablesInSelect
-result EXEC_FAILED
-
-# Exception test fails
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getMaxUserNameLength
-result EXEC_FAILED
-
-# Exception test fails
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getProcedureTerm
-result EXEC_FAILED
-
-# Exception test fails
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getSchemaTerm
-result EXEC_FAILED
-
-# not supported. Privileges are not supported.
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getTablePrivilegesLjava_lang_StringLjava_lang_StringLjava_lang_String
-result EXEC_FAILED
-
-# Not supported ops applied
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getVersionColumnsLjava_lang_StringLjava_lang_StringLjava_lang_String
-result EXEC_FAILED
-
-# Exception test fails
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_isCatalogAtStart
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_locatorsUpdateCopy
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsANSI92EntryLevelSQL
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsDataDefinitionAndDataManipulationTransactions
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsMinimumSQLGrammar
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsResultSetTypeI
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsSubqueriesInComparisons
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsSubqueriesInIns
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsTransactions
-result EXEC_FAILED
-
-# not supported
-test tests.java.sql.DatabaseMetaDataNotSupportedTest#test_usesLocalFiles
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testClearWarnings
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testCreateStatementIntIntIntNotSupported
-result EXEC_FAILED
-
-# Scrolling on a forward only RS not allowed. conn.close() does not wrap up
-test tests.sql.ConnectionTest#testCreateStatement_int_int
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testGetCatalog
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testGetHoldability
-result EXEC_FAILED
-
-# conn.close() does not wrap up
-test tests.sql.ConnectionTest#testGetMetaData
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testGetTransactionIsolation
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testGetWarnings
-result EXEC_FAILED
-
-# conn.close() does not wrap up
-test tests.sql.ConnectionTest#testIsReadOnly
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testPrepareStatementNotSupported
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testPrepareStatement_String_int
-result EXEC_FAILED
-
-# conn.close() does not wrap up
-test tests.sql.ConnectionTest#testSetAutoCommit
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testSetHoldability
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ConnectionTest#testSetReadOnly
-result EXEC_FAILED
-
-# First Exception test fails: parameters not cleared.
-test tests.sql.PreparedStatementTest#testClearParameters
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return false on update.
-test tests.sql.PreparedStatementTest#testExecute
-result EXEC_FAILED
-
-# it is not possible to invoke the method getMetaData on a PreparedStatement object before it is
-# executed: got NullPointerException.Test passes on RI.
-test tests.sql.PreparedStatementTest#testGetMetaData
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return false on update.
-test tests.sql.PreparedStatementTest#testSetBigDecimal
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetBoolean
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetByte
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return false on update.
-test tests.sql.PreparedStatementTest#testSetBytes
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return false on update. Setting a data for a declared
-# INTEGER should throw Exception
-test tests.sql.PreparedStatementTest#testSetDate_int_Date
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return false on update.
-test tests.sql.PreparedStatementTest#testSetDate_int_Date_Calendar
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetDouble
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetFloat
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetInt
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetLong
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetObject_int_Object
-result EXEC_FAILED
-
-# Fails for Types.DATE
-test tests.sql.PreparedStatementTest#testSetObject_int_Object_int
-result EXEC_FAILED
-
-# Fails for Types.DATE
-test tests.sql.PreparedStatementTest#testSetObject_int_Object_int_int
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetShort
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetString_charField
-result EXEC_FAILED
-
-# exception test fails
-test tests.sql.PreparedStatementTest#testSetString_longTextField
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.PreparedStatementTest#testSetString_tinyTextField
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return False on update.
-test tests.sql.PreparedStatementTest#testSetTime_int_Time_Calendar
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.PreparedStatementTest#testSetTimeint_Time
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return false on update.
-test tests.sql.PreparedStatementTest#testSetTimestampIntTimestampCalendar
-result EXEC_FAILED
-
-# preparedStatement.execute() does not return false on update.
-test tests.sql.PreparedStatementTest#testSetTimestamp_int_Timestamp
-result EXEC_FAILED
-
-# last assertion fails: invalid conversion. Test passes on RI
-test tests.sql.ResultSetGetterTests#testGetBytesStringBinary
-result EXEC_FAILED
-
-# last assertion fails: invalid conversion. Test passes on RI
-test tests.sql.ResultSetGetterTests#testGetBytesStringVarbinary
-result EXEC_FAILED
-
-# Wrong value returned for Long: java.lang.String (VARCHAR)
-test tests.sql.ResultSetGetterTests#testGetMetaData
-result EXEC_FAILED
-
-# Wrong value returned for Long: java.lang.String
-test tests.sql.ResultSetGetterTests#testGetObjectInt
-result EXEC_FAILED
-
-# Wrong value returned for Long: java.lang.String
-test tests.sql.ResultSetGetterTests#testGetObjectString
-result EXEC_FAILED
-
-# If there is no current row 0 must be returned. res.close() does not wrap up
-test tests.sql.ResultSetGetterTests#testGetRow
-result EXEC_FAILED
-
-# According to spec info.getStatement should return null but an exception is thrown: stale result
-# set.
-test tests.sql.ResultSetGetterTests#testGetStatement
-result EXEC_FAILED
-
-# getTime should return Time value for a TIMESTAMP type but returns null
-test tests.sql.ResultSetGetterTests#testGetTimeInt
-result EXEC_FAILED
-
-# getTime on TIMESTAMP value fails: returns null
-test tests.sql.ResultSetGetterTests#testGetTimeIntCalendar
-result EXEC_FAILED
-
-# getTime should return a Time value for a TIMESTAMP type but returns null
-test tests.sql.ResultSetGetterTests#testGetTimeString
-result EXEC_FAILED
-
-# getTime on TIMESTAMP value fails: returns null
-test tests.sql.ResultSetGetterTests#testGetTimeStringCalendar
-result EXEC_FAILED
-
-# res.close() does not wrap up
-test tests.sql.ResultSetGetterTests#testGetType
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testGetCatalogName
-result EXEC_FAILED
-
-# SQLException checking test fails
-test tests.sql.ResultSetMetaDataTest#testGetColumnCount
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testGetColumnDisplaySize
-result EXEC_FAILED
-
-# Column label has format TABLE.COLUMN expected: COLUMN
-test tests.sql.ResultSetMetaDataTest#testGetColumnLabel
-result EXEC_FAILED
-
-# Column label has format TABLE.COLUMN expected: COLUMN
-test tests.sql.ResultSetMetaDataTest#testGetColumnName
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testGetPrecision
-result EXEC_FAILED
-
-# Not supported
-test tests.sql.ResultSetMetaDataTest#testGetScale
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testGetSchema
-result EXEC_FAILED
-
-# For int = 0, exception expected
-test tests.sql.ResultSetMetaDataTest#testGetTableName
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsCaseSensitive
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsCurrency
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsDefinitlyWritable
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsNullable
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsReadOnly
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsSearchable
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsSigned
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testIsWritable
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetMetaDataTest#testisAutoIncrement
-result EXEC_FAILED
-
-# res.close() does not wrap up
-test tests.sql.ResultSetTest#testAfterLast
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.ResultSetTest#testBeforeFirst
-result EXEC_FAILED
-
-# Not supported
-test tests.sql.ResultSetTest#testClearWarnings
-result EXEC_FAILED
-
-# Resultset.close() does not wrap up
-test tests.sql.ResultSetTest#testClose1
-result EXEC_FAILED
-
-# Resultset.close() does not wrap up
-test tests.sql.ResultSetTest#testNext
-result EXEC_FAILED
-
-# no exception is thrown when moving cursor backwards on forward only statement
-test tests.sql.ResultSetTest#testRelative
-result EXEC_FAILED
-
-# Scrollable resultSet. Not supported
-test tests.sql.ResultSetTest#testRelativeScrollableResultSet
-result EXEC_FAILED
-
-# not supported
-test tests.sql.ResultSetTest#testUpdateObjectStringObject
-result EXEC_FAILED
-
-# Feature not supported
-test tests.sql.ResultSetTest#testUpdateStringStringString
-result EXEC_FAILED
-
-# the default tests, and exception tests fail.
-test tests.sql.ResultSetTest#testWasNull
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.ResultSetTest#testtestFirst
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.ResultSetTest#testtestIsAfterLast
-result EXEC_FAILED
-
-# In Second code block assertion fails. statment. close() does not wrap up
-test tests.sql.ResultSetTest#testtestIsBeforeFirst
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.ResultSetTest#testtestIsFirst
-result EXEC_FAILED
-
-# Second block first assertion fails. Is Last should evaluate true if the row on which the cursor
-# is actually provides a result.statment.close() does not wrap up
-test tests.sql.ResultSetTest#testtestIsLast
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.ResultSetTest#testtestLast
-result EXEC_FAILED
-
-# Bug in implementation of cancel: Does not fulfill spec.
-test tests.sql.StatementTest#testCancel
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.StatementTest#testClose
-result EXEC_FAILED
-
-# Return value wrong for queries below.
-test tests.sql.StatementTest#testExecute
-result EXEC_FAILED
-
-# always returns 1 for no. of updates
-test tests.sql.StatementTest#testExecuteBatch
-result EXEC_FAILED
-
-# Does throw an exception on non select statment.
-test tests.sql.StatementTest#testExecuteQuery_String
-result EXEC_FAILED
-
-# Spec is not precise enough: should be: number of rows affected. eg. to be consistent for deletes:
-# 'delete from s1;' should be different from 'delete from s1 where c1 = 1;'
-test tests.sql.StatementTest#testExecuteUpdate_String
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.StatementTest#testGetConnection
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.StatementTest#testGetFetchDirection
-result EXEC_FAILED
-
-# statment.close() does not wrap up
-test tests.sql.StatementTest#testGetFetchSize
-result EXEC_FAILED
-
-# not supported
-test tests.sql.StatementTest#testGetMoreResults
-result EXEC_FAILED
-
-# An other value is returned than was set (X * 1000)
-test tests.sql.StatementTest#testGetQueryTimeout
-result EXEC_FAILED
-
-# Does not return null on update count > 0 (not a select statement)
-test tests.sql.StatementTest#testGetResultSet
-result EXEC_FAILED
-
-# Not supported
-test tests.sql.StatementTest#testGetResultSetConcurrency
-result EXEC_FAILED
-
-# Test for default value fails
-test tests.sql.StatementTest#testGetResultSetHoldability
-result EXEC_FAILED
-
-# not fully supported
-test tests.sql.StatementTest#testGetResultSetType
-result EXEC_FAILED
-
-# statement.close() does not wrap up
-test tests.sql.StatementTest#testGetUpdateCount
-result EXEC_FAILED
-
-# Fails in CTS but passes under run-core-tests
-test org.apache.harmony.text.tests.java.text.DecimalFormatTest#test_formatToCharacterIteratorLjava_lang_Object
-result EXEC_FAILED
-
-# Handshake Status is never finished. NPE in ClientSessionContext$HostAndPort.hashCode() when host
-# is null
-test tests.api.javax.net.ssl.SSLEngineTest#testHandshake
-result EXEC_FAILED
-
-# org.apache.harmony.xnet.provider.jsse.SSLEngineImpl#getDelegatedTask() throws NPE instead of
-# returning null
-test tests.api.javax.net.ssl.SSLEngineTest#test_getDelegatedTask
-result EXEC_FAILED
-
-# Fixed in DonutBurger, boundary checks missing
-test tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_02
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_03
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_04
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer$ByteBuffer_02
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer$ByteBuffer_03
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer_ByteBuffer_02
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer_ByteBuffer_03
-result EXEC_FAILED
-
-# Fixed in DonutBurger, boundary checks missing
-test tests.api.javax.net.ssl.SSLEngineTest#test_wrap_02
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_wrap_04
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_wrap_ByteBuffer$ByteBuffer_03
-result EXEC_FAILED
-
-# Fixed on DonutBurger, Wrong Exception thrown
-test tests.api.javax.net.ssl.SSLEngineTest#test_wrap_ByteBuffer_ByteBuffer_03
-result EXEC_FAILED
-
-# ManagerFactoryParameters object is not supported and InvalidAlgorithmParameterException was
-# thrown.
-test tests.api.javax.net.ssl.TrustManagerFactory1Test#test_initLjavax_net_ssl_ManagerFactoryParameters
-result EXEC_FAILED
-
-# DefaultHostnameVerifier is broken on Android, fixed in donutburger
-test tests.api.javax.net.ssl.HostnameVerifierTest#testSubjectAlt
-result EXEC_FAILED
-
-# NO SERVER CERTIFICATE FOUND - selectSuite should not pick a suite that needs a certificate if it is missing
-test javax.net.ssl.SSLEngineTest#test_SSLEngine_beginHandshake_noKeyStore
-result EXEC_FAILED
-
-# AlertException instead of SSLException
-test javax.net.ssl.SSLEngineTest#test_SSLEngine_setEnableSessionCreation_client
-result EXEC_FAILED
-
-# SSLException instead of failure to handshake
-test javax.net.ssl.SSLEngineTest#test_SSLEngine_setEnableSessionCreation_server
-result EXEC_FAILED
-
-# SSLHandshakeException instead of failure to handshake
-test javax.net.ssl.SSLEngineTest#test_SSLEngine_setUseClientMode
-result EXEC_FAILED
-
-# method test fails once in a while. Cannot be sure that exception is thrown in every test execution.
-test tests.SQLite.DatabaseTest#testBusy_handler
-result EXEC_FAILED
-
-# Database does not lock values
-test tests.SQLite.DatabaseTest#testBusy_timeout
-result EXEC_FAILED
-
-# Returns wrong number for updates: returns value > 1 for select.
-test tests.SQLite.DatabaseTest#testChanges
-result EXEC_FAILED
-
-# Aggregation function not called
-test tests.SQLite.DatabaseTest#testCreate_aggregate
-result EXEC_FAILED
-
-# Reason for failure unknown: Database should be locked. Specification of interrupt is scarce.
-test tests.SQLite.DatabaseTest#testInterrupt
-result EXEC_FAILED
-
-# not supported
-test tests.SQLite.DatabaseTest#testOpen_blob
-result EXEC_FAILED
-
-# Callback never made for authorization. Results of private table are returned withouth furhter checks.
-test tests.SQLite.DatabaseTest#testSet_authorizer
-result EXEC_FAILED
-
-# ASCII encoding does not work: a UTF encoded val is returned. Spec is not sufficient. Might be that test impl is wrong or String constructor for the ASCII encoding.
-test tests.SQLite.DatabaseTest#testSet_encoding
-result EXEC_FAILED
-
-# db.open_blob is not supported.
-test tests.SQLite.BlobTest#testBlob
-result EXEC_FAILED
-
-# Wrong value is returned in case of a prepared statment to which a '*' bound
-test tests.SQLite.StmtTest#testColumn_count
-result EXEC_FAILED
-
-# ZeroBlob not supported
-test tests.SQLite.FunctionContextTest#testSet_result_zeroblob
-result EXEC_FAILED
+/*
+ * This file contains expectations for tests that were annotated with @KnownFailure at the time
+ */
+[
+{
+  description: "Fails in CTS but passes under run-core-tests",
+  result: EXEC_FAILED,
+  name: "tests.api.java.io.FileTest#test_deleteOnExit"
+},
+{
+  description: "Fails in CTS but passes under run-core-tests",
+  result: EXEC_FAILED,
+  name: "tests.api.java.io.SerializationStressTest4#test_writeObject_Proxy"
+},
+{
+  description: "Defining classes from byte[] not supported in Android",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.luni.tests.java.lang.ClassTest#test_getClasses_subtest0"
+},
+{
+  description: "There is no protection domain set in Android.",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.luni.tests.java.lang.ClassTest#test_getProtectionDomain"
+},
+{
+  description: "Fails in CTS but passes under run-core-tests",
+  result: EXEC_FAILED,
+  names: [
+    "org.apache.harmony.luni.tests.java.lang.RuntimeTest#test_traceMethodCalls",
+    "tests.api.java.net.MulticastSocketTest#test_joinGroupLjava_net_SocketAddressLjava_net_NetworkInterface",
+    "tests.api.java.util.FormatterTest#test_formatLjava_lang_String$Ljava_lang_Object_DateTimeConversion"
+  ]
+},
+{
+  description: "It's not allowed to pass null as parent class loader to a new ClassLoader anymore. Maybe we need
+                to change URLClassLoader to allow this? It's not specified.",
+  result: EXEC_FAILED,
+  name: "tests.api.java.util.ResourceBundleTest#test_getBundleLjava_lang_StringLjava_util_LocaleLjava_lang_ClassLoader"
+},
+{
+  description: "Fails in CTS but passes under run-core-tests",
+  result: EXEC_FAILED,
+  names: [
+    "tests.api.java.nio.charset.CharsetProviderTest#testForName_InsufficientPrivilege",
+    "tests.api.java.nio.charset.CharsetProviderTest#testIsSupported_And_ForName_NormalProvider"
+  ]
+},
+{
+  description: "Fails (probably) because no protection domain is set.",
+  result: EXEC_FAILED,
+  names: [
+    "org.apache.harmony.security.tests.java.security.AccessController2Test#test_checkPermission_InvalidPermission",
+    "org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedAction",
+    "org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedActionLjava_security_AccessControlContext",
+    "org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedExceptionAction",
+    "org.apache.harmony.security.tests.java.security.AccessController2Test#test_doPrivilegedLjava_security_PrivilegedExceptionActionLjava_security_AccessControlContext"
+  ]
+},
+{
+  description: "Android throws IllegalArgumentException, RI throws NullPointerException",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.security.tests.java.security.SignatureTest#testUpdatebyteArrayintint2"
+},
+{
+  description: "Android doesn't support protection domains.",
+  result: EXEC_FAILED,
+  name: "tests.api.java.security.PermissionCollectionTest#test_impliesLjava_security_Permission"
+},
+{
+  description: "Android doesn't allow null parent.",
+  result: EXEC_FAILED,
+  name: "tests.java.security.SecureClassLoaderTest#testSecureClassLoaderClassLoader"
+},
+{
+  description: "expired certificate bug 2322662",
+  result: EXEC_FAILED,
+  names: [
+    "tests.security.cert.CertPathBuilder1Test#testBuild",
+    "tests.security.cert.CertPathTest#testSerializationCompatibility",
+    "tests.security.cert.CertPathTest#testSerializationSelf"
+  ]
+},
+{
+  description: "Assertion does not evaluate to true... Works in javax.Certificate",
+  result: EXEC_FAILED,
+  name: "tests.security.cert.CertificateTest#testGetEncoded"
+},
+{
+  description: "throws SocketException with message: the socket level is invalid. Works on the RI",
+  result: EXEC_FAILED,
+  name: "tests.security.permissions.JavaNetSocketTest#test_ctor2"
+},
+{
+  description: "Not all Drivers are loaded in testsetup. ClassLoader issue in DriverManager.",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.sql.tests.java.sql.DriverManagerTest#testDeregisterDriver"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.SelectFunctionalityTest#test_SelectRightOuterJoin",
+    "tests.java.sql.UpdateFunctionalityTest2#testUpdate2",
+    "tests.java.sql.UpdateFunctionalityTest2#testUpdate4",
+    "tests.java.sql.UpdateFunctionalityTest2#testUpdate6",
+    "tests.java.sql.UpdateFunctionalityTest2#testUpdate7",
+    "tests.java.sql.DeleteFunctionalityTest#testDelete6"
+  ]
+},
+{
+  description: "Not supported : pattern with %",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getColumnsArbitrary"
+},
+{
+  description: "Wildcard operator does not seem wo work correctly.",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getColumnsSpecific"
+},
+{
+  description: "Not supported ops applied: test fails on arguments: '', '', '%', '%'",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getColumnsTableWithNoCatalogSchema"
+},
+{
+  description: "(Ticket 91) Tables apply foreign key constraint. Catalogs not supported",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getCrossReferenceLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_String"
+},
+{
+  description: "Ticket 98",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_getDatabaseMajorVersion",
+    "tests.java.sql.DatabaseMetaDataTest#test_getDatabaseMinorVersion",
+    "tests.java.sql.DatabaseMetaDataTest#test_getDatabaseProductName",
+    "tests.java.sql.DatabaseMetaDataTest#test_getDatabaseProductVersion",
+    "tests.java.sql.DatabaseMetaDataTest#test_getDefaultTransactionIsolation",
+    "tests.java.sql.DatabaseMetaDataTest#test_getDriverName",
+    "tests.java.sql.DatabaseMetaDataTest#test_getDriverVersion"
+  ]
+},
+{
+  description: "Keys are not supported: Ticket 91",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getImportedKeysLjava_lang_StringLjava_lang_StringLjava_lang_String"
+},
+{
+  description: "Ticket 98",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_getJDBCMajorVersion",
+    "tests.java.sql.DatabaseMetaDataTest#test_getJDBCMinorVersion"
+  ]
+},
+{
+  description: "Not supported feature, Ticket 98. Broken because NUMERIC_FUNCTIONS not complete. When fixed
+                change to @KnownFailure",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getNumericFunctions"
+},
+{
+  description: "Ticket 91 : relies on not supported features: getCatalog, keys",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getPrimaryKeysLjava_lang_StringLjava_lang_StringLjava_lang_String"
+},
+{
+  description: "Ticket 98",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_getResultSetHoldability",
+    "tests.java.sql.DatabaseMetaDataTest#test_getSQLKeywords",
+    "tests.java.sql.DatabaseMetaDataTest#test_getSQLStateType",
+    "tests.java.sql.DatabaseMetaDataTest#test_getSchemas",
+    "tests.java.sql.DatabaseMetaDataTest#test_getSearchStringEscape"
+  ]
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_getStringFunctions",
+    "tests.java.sql.DatabaseMetaDataTest#test_getSystemFunctions"
+  ]
+},
+{
+  description: "Ticket 98",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getTableTypes"
+},
+{
+  description: "If no schema is associated: returns empty string where actually null be returned?. Ticket 98",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_getTablesLjava_lang_StringLjava_lang_StringLjava_lang_String$Ljava_lang_String"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_getTimeDateFunctions",
+    "tests.java.sql.DatabaseMetaDataTest#test_getTypeInfo"
+  ]
+},
+{
+  description: "Ticket 98",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_getURL",
+    "tests.java.sql.DatabaseMetaDataTest#test_insertsAreDetectedI",
+    "tests.java.sql.DatabaseMetaDataTest#test_isReadOnly",
+    "tests.java.sql.DatabaseMetaDataTest#test_othersDeletesAreVisibleI",
+    "tests.java.sql.DatabaseMetaDataTest#test_othersInsertsAreVisibleI",
+    "tests.java.sql.DatabaseMetaDataTest#test_othersUpdatesAreVisibleI"
+  ]
+},
+{
+  description: "not supported. SQLException checking test fails",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_supportsColumnAliasing"
+},
+{
+  description: "exception test fails",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_supportsExpressionsInOrderBy",
+    "tests.java.sql.DatabaseMetaDataTest#test_supportsGroupBy",
+    "tests.java.sql.DatabaseMetaDataTest#test_supportsGroupByUnrelated"
+  ]
+},
+{
+  description: "Ticket 98",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataTest#test_supportsNonNullableColumns"
+},
+{
+  description: "exception test fails",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataTest#test_supportsOrderByUnrelated",
+    "tests.java.sql.DatabaseMetaDataTest#test_supportsSelectForUpdate",
+    "tests.java.sql.DatabaseMetaDataTest#test_supportsSubqueriesInExists",
+    "tests.java.sql.DatabaseMetaDataTest#test_supportsTableCorrelationNames"
+  ]
+},
+{
+  description: "Not supported ops applied",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_allTablesAreSelectable"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_doesMaxRowSizeIncludeBlobs"
+},
+{
+  description: "not supported. Privileges are not supported.",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getColumnPrivilegesLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_String"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getExportedKeysLjava_lang_StringLjava_lang_StringLjava_lang_String",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getIndexInfoLjava_lang_StringLjava_lang_StringLjava_lang_StringZZ"
+  ]
+},
+{
+  description: "Exception test fails",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getMaxTableNameLength",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getMaxTablesInSelect",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getMaxUserNameLength",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getProcedureTerm",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getSchemaTerm"
+  ]
+},
+{
+  description: "not supported. Privileges are not supported.",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getTablePrivilegesLjava_lang_StringLjava_lang_StringLjava_lang_String"
+},
+{
+  description: "Not supported ops applied",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_getVersionColumnsLjava_lang_StringLjava_lang_StringLjava_lang_String"
+},
+{
+  description: "Exception test fails",
+  result: EXEC_FAILED,
+  name: "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_isCatalogAtStart"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_locatorsUpdateCopy",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsANSI92EntryLevelSQL",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsDataDefinitionAndDataManipulationTransactions",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsMinimumSQLGrammar",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsResultSetTypeI",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsSubqueriesInComparisons",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsSubqueriesInIns",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_supportsTransactions",
+    "tests.java.sql.DatabaseMetaDataNotSupportedTest#test_usesLocalFiles",
+    "tests.sql.ConnectionTest#testClearWarnings",
+    "tests.sql.ConnectionTest#testCreateStatementIntIntIntNotSupported"
+  ]
+},
+{
+  description: "Scrolling on a forward only RS not allowed. conn.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ConnectionTest#testCreateStatement_int_int"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ConnectionTest#testGetCatalog",
+    "tests.sql.ConnectionTest#testGetHoldability"
+  ]
+},
+{
+  description: "conn.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ConnectionTest#testGetMetaData"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ConnectionTest#testGetTransactionIsolation",
+    "tests.sql.ConnectionTest#testGetWarnings"
+  ]
+},
+{
+  description: "conn.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ConnectionTest#testIsReadOnly"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ConnectionTest#testPrepareStatementNotSupported",
+    "tests.sql.ConnectionTest#testPrepareStatement_String_int"
+  ]
+},
+{
+  description: "conn.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ConnectionTest#testSetAutoCommit"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ConnectionTest#testSetHoldability",
+    "tests.sql.ConnectionTest#testSetReadOnly"
+  ]
+},
+{
+  description: "First Exception test fails: parameters not cleared.",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testClearParameters"
+},
+{
+  description: "preparedStatement.execute() does not return false on update.",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testExecute"
+},
+{
+  description: "it is not possible to invoke the method getMetaData on a PreparedStatement object before it is
+                executed: got NullPointerException.Test passes on RI.",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testGetMetaData"
+},
+{
+  description: "preparedStatement.execute() does not return false on update.",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testSetBigDecimal"
+},
+{
+  description: "exception test fails",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.PreparedStatementTest#testSetBoolean",
+    "tests.sql.PreparedStatementTest#testSetByte"
+  ]
+},
+{
+  description: "preparedStatement.execute() does not return false on update.",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testSetBytes"
+},
+{
+  description: "preparedStatement.execute() does not return false on update. Setting a data for a declared
+                INTEGER should throw Exception",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testSetDate_int_Date"
+},
+{
+  description: "preparedStatement.execute() does not return false on update.",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testSetDate_int_Date_Calendar"
+},
+{
+  description: "exception test fails",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.PreparedStatementTest#testSetDouble",
+    "tests.sql.PreparedStatementTest#testSetFloat",
+    "tests.sql.PreparedStatementTest#testSetInt",
+    "tests.sql.PreparedStatementTest#testSetLong",
+    "tests.sql.PreparedStatementTest#testSetObject_int_Object"
+  ]
+},
+{
+  description: "Fails for Types.DATE",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.PreparedStatementTest#testSetObject_int_Object_int",
+    "tests.sql.PreparedStatementTest#testSetObject_int_Object_int_int"
+  ]
+},
+{
+  description: "exception test fails",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.PreparedStatementTest#testSetShort",
+    "tests.sql.PreparedStatementTest#testSetString_charField",
+    "tests.sql.PreparedStatementTest#testSetString_longTextField"
+  ]
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testSetString_tinyTextField"
+},
+{
+  description: "preparedStatement.execute() does not return False on update.",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testSetTime_int_Time_Calendar"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.PreparedStatementTest#testSetTimeint_Time"
+},
+{
+  description: "preparedStatement.execute() does not return false on update.",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.PreparedStatementTest#testSetTimestampIntTimestampCalendar",
+    "tests.sql.PreparedStatementTest#testSetTimestamp_int_Timestamp"
+  ]
+},
+{
+  description: "last assertion fails: invalid conversion. Test passes on RI",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ResultSetGetterTests#testGetBytesStringBinary",
+    "tests.sql.ResultSetGetterTests#testGetBytesStringVarbinary"
+  ]
+},
+{
+  description: "Wrong value returned for Long: java.lang.String (VARCHAR)",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetMetaData"
+},
+{
+  description: "Wrong value returned for Long: java.lang.String",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ResultSetGetterTests#testGetObjectInt",
+    "tests.sql.ResultSetGetterTests#testGetObjectString"
+  ]
+},
+{
+  description: "If there is no current row 0 must be returned. res.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetRow"
+},
+{
+  description: "According to spec info.getStatement should return null but an exception is thrown: stale result
+                set.",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetStatement"
+},
+{
+  description: "getTime should return Time value for a TIMESTAMP type but returns null",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetTimeInt"
+},
+{
+  description: "getTime on TIMESTAMP value fails: returns null",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetTimeIntCalendar"
+},
+{
+  description: "getTime should return a Time value for a TIMESTAMP type but returns null",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetTimeString"
+},
+{
+  description: "getTime on TIMESTAMP value fails: returns null",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetTimeStringCalendar"
+},
+{
+  description: "res.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetGetterTests#testGetType"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetMetaDataTest#testGetCatalogName"
+},
+{
+  description: "SQLException checking test fails",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetMetaDataTest#testGetColumnCount"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetMetaDataTest#testGetColumnDisplaySize"
+},
+{
+  description: "Column label has format TABLE.COLUMN expected: COLUMN",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ResultSetMetaDataTest#testGetColumnLabel",
+    "tests.sql.ResultSetMetaDataTest#testGetColumnName"
+  ]
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetMetaDataTest#testGetPrecision"
+},
+{
+  description: "Not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetMetaDataTest#testGetScale"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetMetaDataTest#testGetSchema"
+},
+{
+  description: "For int = 0, exception expected",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetMetaDataTest#testGetTableName"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ResultSetMetaDataTest#testIsCaseSensitive",
+    "tests.sql.ResultSetMetaDataTest#testIsCurrency",
+    "tests.sql.ResultSetMetaDataTest#testIsDefinitlyWritable",
+    "tests.sql.ResultSetMetaDataTest#testIsNullable",
+    "tests.sql.ResultSetMetaDataTest#testIsReadOnly",
+    "tests.sql.ResultSetMetaDataTest#testIsSearchable",
+    "tests.sql.ResultSetMetaDataTest#testIsSigned",
+    "tests.sql.ResultSetMetaDataTest#testIsWritable",
+    "tests.sql.ResultSetMetaDataTest#testisAutoIncrement"
+  ]
+},
+{
+  description: "res.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testAfterLast"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testBeforeFirst"
+},
+{
+  description: "Not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testClearWarnings"
+},
+{
+  description: "Resultset.close() does not wrap up",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ResultSetTest#testClose1",
+    "tests.sql.ResultSetTest#testNext"
+  ]
+},
+{
+  description: "no exception is thrown when moving cursor backwards on forward only statement",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testRelative"
+},
+{
+  description: "Scrollable resultSet. Not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testRelativeScrollableResultSet"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testUpdateObjectStringObject"
+},
+{
+  description: "Feature not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testUpdateStringStringString"
+},
+{
+  description: "the default tests, and exception tests fail.",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testWasNull"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.ResultSetTest#testtestFirst",
+    "tests.sql.ResultSetTest#testtestIsAfterLast"
+  ]
+},
+{
+  description: "In Second code block assertion fails. statement. close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testtestIsBeforeFirst"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testtestIsFirst"
+},
+{
+  description: "Second block first assertion fails. Is Last should evaluate true if the row on which the cursor
+                is actually provides a result.statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testtestIsLast"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.ResultSetTest#testtestLast"
+},
+{
+  description: "Bug in implementation of cancel: Does not fulfill spec.",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testCancel"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testClose"
+},
+{
+  description: "Return value wrong for queries below.",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testExecute"
+},
+{
+  description: "always returns 1 for no. of updates",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testExecuteBatch"
+},
+{
+  description: "Does throw an exception on non select statement.",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testExecuteQuery_String"
+},
+{
+  description: "Spec is not precise enough: should be: number of rows affected. eg. to be consistent for deletes:
+                'delete from s1;' should be different from 'delete from s1 where c1 = 1;'",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testExecuteUpdate_String"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  names: [
+    "tests.sql.StatementTest#testGetConnection",
+    "tests.sql.StatementTest#testGetFetchDirection",
+    "tests.sql.StatementTest#testGetFetchSize"
+  ]
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testGetMoreResults"
+},
+{
+  description: "An other value is returned than was set (X * 1000)",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testGetQueryTimeout"
+},
+{
+  description: "Does not return null on update count > 0 (not a select statement)",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testGetResultSet"
+},
+{
+  description: "Not supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testGetResultSetConcurrency"
+},
+{
+  description: "Test for default value fails",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testGetResultSetHoldability"
+},
+{
+  description: "not fully supported",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testGetResultSetType"
+},
+{
+  description: "statement.close() does not wrap up",
+  result: EXEC_FAILED,
+  name: "tests.sql.StatementTest#testGetUpdateCount"
+},
+{
+  description: "Fails in CTS but passes under run-core-tests",
+  result: EXEC_FAILED,
+  name: "org.apache.harmony.text.tests.java.text.DecimalFormatTest#test_formatToCharacterIteratorLjava_lang_Object"
+},
+{
+  description: "Handshake Status is never finished. NPE in ClientSessionContext$HostAndPort.hashCode() when host
+                is null",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.net.ssl.SSLEngineTest#testHandshake"
+},
+{
+  description: "org.apache.harmony.xnet.provider.jsse.SSLEngineImpl#getDelegatedTask() throws NPE instead of
+                returning null",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.net.ssl.SSLEngineTest#test_getDelegatedTask"
+},
+{
+  description: "Fixed in DonutBurger, boundary checks missing",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_02"
+},
+{
+  description: "Fixed on DonutBurger, Wrong Exception thrown",
+  result: EXEC_FAILED,
+  names: [
+    "tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_03",
+    "tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_04",
+    "tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer$ByteBuffer_02",
+    "tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer$ByteBuffer_03",
+    "tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer_ByteBuffer_02",
+    "tests.api.javax.net.ssl.SSLEngineTest#test_unwrap_ByteBuffer_ByteBuffer_03"
+  ]
+},
+{
+  description: "Fixed in DonutBurger, boundary checks missing",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.net.ssl.SSLEngineTest#test_wrap_02"
+},
+{
+  description: "Fixed on DonutBurger, Wrong Exception thrown",
+  result: EXEC_FAILED,
+  names: [
+    "tests.api.javax.net.ssl.SSLEngineTest#test_wrap_04",
+    "tests.api.javax.net.ssl.SSLEngineTest#test_wrap_ByteBuffer$ByteBuffer_03",
+    "tests.api.javax.net.ssl.SSLEngineTest#test_wrap_ByteBuffer_ByteBuffer_03"
+  ]
+},
+{
+  description: "ManagerFactoryParameters object is not supported and InvalidAlgorithmParameterException was
+                thrown.",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.net.ssl.TrustManagerFactory1Test#test_initLjavax_net_ssl_ManagerFactoryParameters"
+},
+{
+  description: "DefaultHostnameVerifier is broken on Android, fixed in donutburger",
+  result: EXEC_FAILED,
+  name: "tests.api.javax.net.ssl.HostnameVerifierTest#testSubjectAlt"
+},
+{
+  description: "NO SERVER CERTIFICATE FOUND - selectSuite should not pick a suite that needs a certificate if it is missing",
+  result: EXEC_FAILED,
+  name: "javax.net.ssl.SSLEngineTest#test_SSLEngine_beginHandshake_noKeyStore"
+},
+{
+  description: "AlertException instead of SSLException",
+  result: EXEC_FAILED,
+  name: "javax.net.ssl.SSLEngineTest#test_SSLEngine_setEnableSessionCreation_client"
+},
+{
+  description: "SSLException instead of failure to handshake",
+  result: EXEC_FAILED,
+  name: "javax.net.ssl.SSLEngineTest#test_SSLEngine_setEnableSessionCreation_server"
+},
+{
+  description: "SSLHandshakeException instead of failure to handshake",
+  result: EXEC_FAILED,
+  name: "javax.net.ssl.SSLEngineTest#test_SSLEngine_setUseClientMode"
+},
+{
+  description: "method test fails once in a while. Cannot be sure that exception is thrown in every test execution.",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testBusy_handler"
+},
+{
+  description: "Database does not lock values",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testBusy_timeout"
+},
+{
+  description: "Returns wrong number for updates: returns value > 1 for select.",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testChanges"
+},
+{
+  description: "Aggregation function not called",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testCreate_aggregate"
+},
+{
+  description: "Reason for failure unknown: Database should be locked. Specification of interrupt is scarce.",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testInterrupt"
+},
+{
+  description: "not supported",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testOpen_blob"
+},
+{
+  description: "Callback never made for authorization. Results of private table are returned without further checks.",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testSet_authorizer"
+},
+{
+  description: "ASCII encoding does not work: a UTF encoded val is returned. Spec is not sufficient. Might be that test impl is wrong or String constructor for the ASCII encoding.",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.DatabaseTest#testSet_encoding"
+},
+{
+  description: "db.open_blob is not supported.",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.BlobTest#testBlob"
+},
+{
+  description: "Wrong value is returned in case of a prepared statement to which a '*' bound",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.StmtTest#testColumn_count"
+},
+{
+  description: "ZeroBlob not supported",
+  result: EXEC_FAILED,
+  name: "tests.SQLite.FunctionContextTest#testSet_result_zeroblob"
+}
+]
index 87d1b51..883864c 100644 (file)
-# This file contains expectations for tests that require support from the test runner to complete successfully
-
-test java.util.EnumSet.EnumSetBash
-tags large
-
-test org.apache.harmony.tests.java.util.regex.MatcherTest#testAllCodePoints
-tags large
-
-# test_SSLSocket_getSupportedCipherSuites_connect takes a long time because it tries connecting every supported cipher suite
-test libcore.javax.net.ssl.SSLSocketTest
-tags large
-
-# test_KeyAgreement takes a long time because Diffie-Hellman key generation is slow
-test org.apache.harmony.crypto.tests.javax.crypto.func.KeyAgreementFunctionalTest
-tags large
-
-# test_getParams takes a long time because Diffie-Hellman key generation is slow
-test org.apache.harmony.crypto.tests.javax.crypto.interfaces.DHPrivateKeyTest
-tags large
-
-# test_getParams takes a long time because Diffie-Hellman key generation is slow
-test org.apache.harmony.crypto.tests.javax.crypto.interfaces.DHPublicKeyTest
-tags large
-
-test java.io.PipedInputStream.CloseAndAvailableRC
-tags large
-
-test java.io.PrintStream.OversynchronizedTest
-tags large
-
-test java.io.PrintWriter.OversynchronizedTest
-tags large
-
-test java.lang.String.Split
-tags large
-
-test java.lang.ref.SoftReference.Pin
-tags large
-
-test java.math.BigInteger.BigIntegerTest
-tags large
-
-test java.net.MulticastSocket.Test
-tags large
-
-test java.net.Socket.InheritTimeout
-tags large
-
-test java.net.Socket.reset.Test
-tags large
-
-test java.net.URLConnection.TimeoutTest
-tags large
-
-test java.nio.channels.DatagramChannel.ConnectedSend
-tags large
-
-test java.nio.channels.FileChannel.ExpandingMap
-tags large
-
-test java.nio.channels.FileChannel.Transfers
-tags large
-
-test java.nio.channels.SocketChannel.Open
-tags large
-
-test java.text.Bidi.Bug6665028
-tags large
-
-test java.util.Collections.FindSubList
-tags large
-
-test java.util.Locale.Bug4518797
-tags large
-
-test java.util.ResourceBundle.Control.StressTest
-tags large
-
-test java.util.WeakHashMap.GCDuringIteration
-tags large
-
-test java.util.concurrent.FutureTask.Throw
-tags large
-
-test java.util.concurrent.locks.ReentrantReadWriteLock.MapLoops
-tags large
-
-test java.util.zip.LargeZip
-tags large
-
-test java.util.zip.ZipFile.LargeZipFile
-tags large
-
-test java.util.zip.ZipFile.ManyEntries
-tags large
-
-test sun.nio.cs.FindOneCharEncoderBugs
-tags large
-
-test sun.nio.cs.SurrogateGB18030Test
-tags large
+/*
+ * This file contains expectations for tests that require support from the test runner to complete
+ * successfully.
+ */
+[
+{
+  description: "large tests",
+  result: SUCCESS,
+  names: [
+    "java.util.EnumSet.EnumSetBash",
+    "org.apache.harmony.tests.java.util.regex.MatcherTest#testAllCodePoints",
+    "libcore.javax.net.ssl.SSLSocketTest",
+    "org.apache.harmony.crypto.tests.javax.crypto.func.KeyAgreementFunctionalTest",
+    "org.apache.harmony.crypto.tests.javax.crypto.interfaces.DHPrivateKeyTest",
+    "org.apache.harmony.crypto.tests.javax.crypto.interfaces.DHPublicKeyTest",
+    "java.io.PipedInputStream.CloseAndAvailableRC",
+    "java.io.PrintStream.OversynchronizedTest",
+    "java.io.PrintWriter.OversynchronizedTest",
+    "java.lang.String.Split",
+    "java.lang.ref.SoftReference.Pin",
+    "java.math.BigInteger.BigIntegerTest",
+    "java.net.MulticastSocket.Test",
+    "java.net.Socket.InheritTimeout",
+    "java.net.Socket.reset.Test",
+    "java.net.URLConnection.TimeoutTest",
+    "java.nio.channels.DatagramChannel.ConnectedSend",
+    "java.nio.channels.FileChannel.ExpandingMap",
+    "java.nio.channels.FileChannel.Transfers",
+    "java.nio.channels.SocketChannel.Open",
+    "java.text.Bidi.Bug6665028",
+    "java.util.Collections.FindSubList",
+    "java.util.Locale.Bug4518797",
+    "java.util.ResourceBundle.Control.StressTest",
+    "java.util.WeakHashMap.GCDuringIteration",
+    "java.util.concurrent.FutureTask.Throw",
+    "java.util.concurrent.locks.ReentrantReadWriteLock.MapLoops",
+    "java.util.zip.LargeZip",
+    "java.util.zip.ZipFile.LargeZipFile",
+    "java.util.zip.ZipFile.ManyEntries",
+    "sun.nio.cs.FindOneCharEncoderBugs",
+    "sun.nio.cs.SurrogateGB18030Test"
+  ],
+  "tags": [ "large" ]
+}
+]
\ No newline at end of file