summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-04-28 20:27:13 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-04-28 20:27:13 +0000
commitd397a63c7d59dd3956409e3cd3064dfa73555a9b (patch)
tree720d2b2d76a78fe0ba19b8a48e19a488d616ec7f
parenteee34a6105388fc3c5cdafc62a066a60e177859e (diff)
parentb115c18dcfcc7433d89826f86a1f5889d3a6e37f (diff)
downloadapache-harmony-android10-mainline-tzdata-release.tar.gz
Change-Id: I64058cd03174edd19c36f5416443452602640772
-rw-r--r--Android.bp30
-rw-r--r--OWNERS10
-rw-r--r--PREUPLOAD.cfg2
-rw-r--r--beans/src/test/resources/serialization/com/android/org/apache/harmony/beans/tests/java/beans/PropertyChangeEventTest.golden.ser (renamed from beans/src/test/resources/serialization/org/apache/harmony/beans/tests/java/beans/PropertyChangeEventTest.golden.ser)bin228 -> 228 bytes
-rw-r--r--beans/src/test/resources/serialization/com/android/org/apache/harmony/beans/tests/java/beans/PropertyChangeSupportTest.golden.ser (renamed from beans/src/test/resources/serialization/org/apache/harmony/beans/tests/java/beans/PropertyChangeSupportTest.golden.ser)bin473 -> 473 bytes
-rw-r--r--jarjar-rules.txt1
-rw-r--r--jdwp/Android.bp15
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java5
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterTest.java6
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnteredTest.java37
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturn002Test.java3
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturnDebuggee.java100
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java165
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/share/JPDATestOptions.java23
-rw-r--r--logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FormatterTest.java6
-rw-r--r--logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LevelTest.java8
-rw-r--r--logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java10
-rw-r--r--logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java28
-rw-r--r--logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/SimpleFormatterTest.java4
-rw-r--r--logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/XMLFormatterTest.java4
-rw-r--r--logging/src/test/resources/bundles/com/android/java/util/logging/res.properties12
-rw-r--r--logging/src/test/resources/bundles/com/android/java/util/logging/res2.properties13
-rw-r--r--logging/src/test/resources/bundles/com/android/java/util/logging/res3.properties13
-rw-r--r--logging/src/test/resources/bundles/com/android/java/util/logging/res_en_US.properties12
-rw-r--r--logging/src/test/resources/bundles/com/android/java/util/logging/res_zh_CN.properties13
-rw-r--r--logging/src/test/resources/config/com/android/java/util/logging/logging.config3
-rw-r--r--logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LevelTest.golden.serbin0 -> 377 bytes
-rw-r--r--logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.golden.serbin0 -> 2139 bytes
-rw-r--r--luni/src/test/api/common/org/apache/harmony/luni/tests/internal/process/SystemProcessTest.java54
-rw-r--r--luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/test_protocol/Handler.java30
-rw-r--r--luni/src/test/api/common/org/apache/harmony/luni/tests/pkg1/TestClass.java30
-rw-r--r--luni/src/test/api/common/org/apache/harmony/luni/tests/pkg2/TestClass.java29
-rw-r--r--luni/src/test/resources/org/apache/harmony/luni/tests/ObjectStreamClassTest.jarbin0 -> 2295 bytes
-rw-r--r--luni/src/test/resources/org/apache/harmony/luni/tests/key_store.bksbin0 -> 1212 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleEntry.golden.serbin0 -> 178 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleImmutableEntry.golden.serbin0 -> 187 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_CheckedCollection.golden.serbin0 -> 246 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_CheckedList.golden.serbin0 -> 320 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_CheckedListRandomAccess.golden.serbin0 -> 390 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_CheckedMap.golden.serbin0 -> 311 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_CheckedSet.golden.serbin0 -> 293 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_CheckedSortedMap.golden.serbin0 -> 400 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_CheckedSortedSet.golden.serbin0 -> 373 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_asLifoQueue.golden.serbin0 -> 1189 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/Collections_newSetFromMap.golden.serbin0 -> 1758 bytes
-rw-r--r--luni/src/test/resources/serialization/java/util/PriorityQueue.golden.serbin0 -> 278 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/FileTest.golden.serbin0 -> 88 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/IOErrorTest.golden.serbin0 -> 2047 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_integers.serbin0 -> 226 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_strings.serbin0 -> 150 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/AbstractMethodErrorTest.golden.serbin0 -> 1605 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalArgumentExceptionTest.golden.serbin0 -> 1356 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalStateExceptionTest.golden.serbin0 -> 1347 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/SecurityExceptionTest.golden.serbin0 -> 1335 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBufferTest.golden.serbin0 -> 154 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.golden.serbin0 -> 126 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/UnsupportedOperationExceptionTest.golden.serbin0 -> 1371 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/HttpRetryExceptionTest.golden.serbin0 -> 1279 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet4AddressTest.golden.serbin0 -> 112 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.0.serbin0 -> 260 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.1.serbin0 -> 261 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetAddressTest.golden.serbin0 -> 112 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.0.serbin0 -> 170 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.1.serbin0 -> 252 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/SocketTimeoutExceptionTest.golden.serbin0 -> 1628 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ArrayDequeTest.golden.serbin0 -> 165 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/BitSetTest.golden.serbin0 -> 137 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/DuplicateFormatFlagsExceptionTest.golden.serbin0 -> 1490 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumMapTest.golden.serbin0 -> 290 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumSetTest.golden.serbin0 -> 917 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatFlagsConversionMismatchExceptionTest.golden.serbin0 -> 1522 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatterClosedExceptionTest.golden.serbin0 -> 1401 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashMapTest.golden.serbin0 -> 96 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashSetTest.golden.serbin0 -> 69 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IdentityHashMapTest.golden.serbin0 -> 112 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatCodePointExceptionTest.golden.serbin0 -> 1481 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatConversionExceptionTest.golden.serbin0 -> 1541 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatFlagsExceptionTest.golden.serbin0 -> 1486 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatPrecisionExceptionTest.golden.serbin0 -> 1481 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatWidthExceptionTest.golden.serbin0 -> 1469 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/InputMismatchExceptionTest.golden.serbin0 -> 1644 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/LinkedListTest.golden.serbin0 -> 1165 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatArgumentExceptionTest.golden.serbin0 -> 1494 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatWidthExceptionTest.golden.serbin0 -> 1485 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ServiceConfigurationErrorTest.golden.serbin0 -> 2180 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatConversionExceptionTest.golden.serbin0 -> 1500 bytes
-rw-r--r--luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatFlagsExceptionTest.golden.serbin0 -> 1489 bytes
-rw-r--r--sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java568
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/BatchUpdateExceptionTest.golden.serbin0 -> 1724 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/DataTruncationTest.golden.serbin0 -> 1754 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLClientInfoExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLClientInfoExceptionTest.golden.ser)bin2458 -> 2458 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLDataExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLDataExceptionTest.golden.ser)bin1762 -> 1762 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLExceptionTest.golden.serbin0 -> 2716 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLFeatureNotSupportedExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLFeatureNotSupportedExceptionTest.golden.ser)bin1807 -> 1807 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLIntegrityConstraintViolationExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLIntegrityConstraintViolationExceptionTest.golden.ser)bin1834 -> 1834 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLInvalidAuthorizationSpecExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLInvalidAuthorizationSpecExceptionTest.golden.ser)bin1822 -> 1822 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLNonTransientConnectionExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLNonTransientConnectionExceptionTest.golden.ser)bin1816 -> 1816 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLNonTransientExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLNonTransientExceptionTest.golden.ser)bin1738 -> 1738 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLRecoverableExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLRecoverableExceptionTest.golden.ser)bin1735 -> 1735 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLSyntaxErrorExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLSyntaxErrorExceptionTest.golden.ser)bin1783 -> 1783 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTimeoutExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTimeoutExceptionTest.golden.ser)bin1768 -> 1768 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransactionRollbackExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransactionRollbackExceptionTest.golden.ser)bin1804 -> 1804 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransientConnectionExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransientConnectionExceptionTest.golden.ser)bin1804 -> 1804 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransientExceptionTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransientExceptionTest.golden.ser)bin1729 -> 1729 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLWarningTest.golden.serbin0 -> 2146 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/TimestampTest.golden.serbin0 -> 91 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/javax/sql/ConnectionEventTest.golden.serbin0 -> 2229 bytes
-rw-r--r--sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/javax/sql/StatementEventTest.golden.ser (renamed from sql/src/test/resources/serialization/org/apache/harmony/sql/tests/javax/sql/StatementEventTest.golden.ser)bin1723 -> 1723 bytes
-rw-r--r--support/src/test/java/org/apache/harmony/testframework/CharSinkTester.java209
-rw-r--r--support/src/test/java/org/apache/harmony/testframework/CharWrapperTester.java258
-rw-r--r--support/src/test/java/org/apache/harmony/testframework/SinkTester.java221
-rw-r--r--support/src/test/java/org/apache/harmony/testframework/WrapperTester.java243
-rw-r--r--support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java665
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/AbstractService.java38
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/Service.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceDuplicateIn2File.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceFinalClass.java31
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceForAllCommentTest.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceForEmptyTest.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceForIllegalNameTest.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceForWrongNameTest.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceIn2File.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceIn2FileWithEmptyConfig.java28
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceMoreThanOne.java31
-rw-r--r--support/src/test/java/tests/resources/ServiceLoader/ServiceWithDuplicateSons.java28
-rw-r--r--support/src/test/java/tests/support/Streams.java58
-rw-r--r--support/src/test/java/tests/support/Support_AvailTest.java111
-rw-r--r--support/src/test/java/tests/support/Support_CollectionTest.java107
-rw-r--r--support/src/test/java/tests/support/Support_Configuration.java340
-rw-r--r--support/src/test/java/tests/support/Support_DeleteOnExitTest.java30
-rw-r--r--support/src/test/java/tests/support/Support_Exec.java288
-rw-r--r--support/src/test/java/tests/support/Support_Field.java45
-rw-r--r--support/src/test/java/tests/support/Support_GetLocal.java101
-rw-r--r--support/src/test/java/tests/support/Support_GetResource.java25
-rw-r--r--support/src/test/java/tests/support/Support_ListTest.java220
-rw-r--r--support/src/test/java/tests/support/Support_MapTest2.java66
-rw-r--r--support/src/test/java/tests/support/Support_ProviderTrust.java91
-rw-r--r--support/src/test/java/tests/support/Support_Proxy_I1.java28
-rw-r--r--support/src/test/java/tests/support/Support_Proxy_I2.java27
-rw-r--r--support/src/test/java/tests/support/Support_Proxy_ParentException.java22
-rw-r--r--support/src/test/java/tests/support/Support_Proxy_SubException.java23
-rw-r--r--support/src/test/java/tests/support/Support_SetTest.java48
-rw-r--r--support/src/test/java/tests/support/Support_StringReader.java229
-rw-r--r--support/src/test/java/tests/support/Support_StringWriter.java164
-rw-r--r--support/src/test/java/tests/support/Support_TestProvider.java125
-rw-r--r--support/src/test/java/tests/support/Support_TestResource.java30
-rw-r--r--support/src/test/java/tests/support/Support_TestResource_en.java30
-rw-r--r--support/src/test/java/tests/support/Support_TestResource_en_US.java30
-rw-r--r--support/src/test/java/tests/support/Support_TestResource_fr.java30
-rw-r--r--support/src/test/java/tests/support/Support_TestResource_fr_FR.java30
-rw-r--r--support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java31
-rw-r--r--support/src/test/java/tests/support/Support_TimeZone.java82
-rw-r--r--support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java111
-rw-r--r--support/src/test/java/tests/support/resource/Support_Resources.java162
-rw-r--r--support/src/test/java/tests/util/SerializationTester.java231
-rw-r--r--support/src/test/resources/config/jcltest-excludes.xml2536
-rw-r--r--support/src/test/resources/hyts_Foo.c1
-rw-r--r--support/src/test/resources/tests/resources/Broken_entry.jarbin0 -> 972 bytes
-rw-r--r--support/src/test/resources/tests/resources/Broken_manifest.jarbin0 -> 972 bytes
-rw-r--r--support/src/test/resources/tests/resources/Created_by_1_4.jarbin0 -> 2998 bytes
-rw-r--r--support/src/test/resources/tests/resources/EmptyEntries_signed.jarbin0 -> 1927 bytes
-rw-r--r--support/src/test/resources/tests/resources/Harmony.GIFbin0 -> 5220 bytes
-rw-r--r--support/src/test/resources/tests/resources/Inserted_Entry_Manifest.jarbin0 -> 1977 bytes
-rw-r--r--support/src/test/resources/tests/resources/Inserted_Entry_Manifest_with_DigestCode.jarbin0 -> 1970 bytes
-rw-r--r--support/src/test/resources/tests/resources/Integrate.jarbin0 -> 1963 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_11.jarbin0 -> 1219 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_12.jarbin0 -> 1250 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_13.jarbin0 -> 1698 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_14.jarbin0 -> 414 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_21.jarbin0 -> 1417 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_22-new.jarbin0 -> 1428 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_22.jarbin0 -> 1430 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_23.jarbin0 -> 2073 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_31.jarbin0 -> 1217 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_32.jarbin0 -> 1421 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_33.jarbin0 -> 1701 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_41.jarbin0 -> 1217 bytes
-rw-r--r--support/src/test/resources/tests/resources/JarIndex/hyts_42.jarbin0 -> 1239 bytes
-rw-r--r--support/src/test/resources/tests/resources/Modified_Class.jarbin0 -> 1949 bytes
-rw-r--r--support/src/test/resources/tests/resources/Modified_Manifest_EntryAttributes.jarbin0 -> 1963 bytes
-rw-r--r--support/src/test/resources/tests/resources/Modified_Manifest_MainAttributes.jarbin0 -> 1970 bytes
-rw-r--r--support/src/test/resources/tests/resources/Modified_SF_EntryAttributes.jarbin0 -> 1949 bytes
-rw-r--r--support/src/test/resources/tests/resources/Package/hyts_all_attributes.jarbin0 -> 742 bytes
-rw-r--r--support/src/test/resources/tests/resources/Package/hyts_c.jarbin0 -> 745 bytes
-rw-r--r--support/src/test/resources/tests/resources/Package/hyts_no_attributes.jarbin0 -> 704 bytes
-rw-r--r--support/src/test/resources/tests/resources/Package/hyts_no_entry.jarbin0 -> 693 bytes
-rw-r--r--support/src/test/resources/tests/resources/Package/hyts_pq.jarbin0 -> 841 bytes
-rw-r--r--support/src/test/resources/tests/resources/Package/hyts_some_attributes.jarbin0 -> 732 bytes
-rw-r--r--support/src/test/resources/tests/resources/ServiceLoader/hyts_services.jarbin0 -> 12258 bytes
-rw-r--r--support/src/test/resources/tests/resources/ServiceLoader/hyts_services2.jarbin0 -> 5749 bytes
-rw-r--r--support/src/test/resources/tests/resources/TestCodeSigners.jarbin0 -> 3381 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_Bar.serbin0 -> 414 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_Foo.serbin0 -> 467 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_PropertiesTest.properties29
-rw-r--r--support/src/test/resources/tests/resources/hyts_ZipFile.zipbin0 -> 1136 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_att.jarbin0 -> 625 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_available.tstbin0 -> 17 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_checkInput.txt4
-rw-r--r--support/src/test/resources/tests/resources/hyts_compDiction.binbin0 -> 501 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_compressD.binbin0 -> 500 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_construOD.binbin0 -> 13 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_construODI.binbin0 -> 18 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_htmltest.html63
-rw-r--r--support/src/test/resources/tests/resources/hyts_mainClass.serbin0 -> 440 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_manifest1.jarbin0 -> 400 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_missingclass.serbin0 -> 493 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_patch.jarbin0 -> 972 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_patch2.jarbin0 -> 667 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_resource.properties2
-rw-r--r--support/src/test/resources/tests/resources/hyts_security.jarbin0 -> 1765 bytes
-rw-r--r--support/src/test/resources/tests/resources/hyts_signed.jarbin0 -> 2375 bytes
-rw-r--r--support/src/test/resources/tests/resources/manifest/hyts_MANIFEST.MF26
-rw-r--r--support/src/test/resources/tests/resources/morestuff/hyts_patch.jarbin0 -> 972 bytes
-rw-r--r--support/src/test/resources/tests/resources/morestuff/hyts_patch2.jarbin0 -> 667 bytes
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en.properties2
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.java31
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.properties2
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US_VAR.java31
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.java30
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.properties3
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.java31
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.properties3
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.java30
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.properties2
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.java31
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.properties3
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en.properties2
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.java31
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.properties2
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US_VAR.java31
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.java30
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.properties3
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR.properties3
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.java30
-rw-r--r--support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.properties2
235 files changed, 8752 insertions, 339 deletions
diff --git a/Android.bp b/Android.bp
index 0d92caf..07923d7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,26 +1,5 @@
-// Copyright (C) 2011 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package {
- default_visibility: ["//visibility:private"],
-}
-
java_test {
name: "apache-harmony-tests",
- visibility: [
- "//cts/tests/libcore/luni",
- ],
hostdex: true,
srcs: [
"beans/src/test/java/**/*.java",
@@ -46,15 +25,14 @@ java_test {
"sql/src/test/resources",
"support/src/test/resources",
],
- sdk_version: "none",
- system_modules: "core-all-system-modules",
+ no_standard_libs: true,
libs: [
+ "core-all",
"junit",
],
- static_libs: [
- "core-tests-support",
- ],
+ system_modules: "core-all-system-modules",
javacflags: ["-Xmaxwarns 9999999"],
+ jarjar_rules: "jarjar-rules.txt",
// Pin java_version until jarjar is certified to support later versions. http://b/72703434
java_version: "1.8",
diff --git a/OWNERS b/OWNERS
index 4a2c004..f2e8ba9 100644
--- a/OWNERS
+++ b/OWNERS
@@ -5,6 +5,14 @@ ngeoffray@google.com
shertz@google.com
# For build / style / minor test fixes:
-include platform/libcore:/OWNERS
agampe@google.com
+flooey@google.com
+jsauer@google.com
+narayan@google.com
+nfuller@google.com
+paulduffin@google.com
+peteg@google.com
+pszczepaniak@google.com
sehr@google.com
+tobiast@google.com
+vichang@google.com
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
deleted file mode 100644
index 321bab6..0000000
--- a/PREUPLOAD.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[Builtin Hooks]
-bpfmt = true
diff --git a/beans/src/test/resources/serialization/org/apache/harmony/beans/tests/java/beans/PropertyChangeEventTest.golden.ser b/beans/src/test/resources/serialization/com/android/org/apache/harmony/beans/tests/java/beans/PropertyChangeEventTest.golden.ser
index 071dbb9..071dbb9 100644
--- a/beans/src/test/resources/serialization/org/apache/harmony/beans/tests/java/beans/PropertyChangeEventTest.golden.ser
+++ b/beans/src/test/resources/serialization/com/android/org/apache/harmony/beans/tests/java/beans/PropertyChangeEventTest.golden.ser
Binary files differ
diff --git a/beans/src/test/resources/serialization/org/apache/harmony/beans/tests/java/beans/PropertyChangeSupportTest.golden.ser b/beans/src/test/resources/serialization/com/android/org/apache/harmony/beans/tests/java/beans/PropertyChangeSupportTest.golden.ser
index 9ebbb0c..9ebbb0c 100644
--- a/beans/src/test/resources/serialization/org/apache/harmony/beans/tests/java/beans/PropertyChangeSupportTest.golden.ser
+++ b/beans/src/test/resources/serialization/com/android/org/apache/harmony/beans/tests/java/beans/PropertyChangeSupportTest.golden.ser
Binary files differ
diff --git a/jarjar-rules.txt b/jarjar-rules.txt
new file mode 100644
index 0000000..46bbc91
--- /dev/null
+++ b/jarjar-rules.txt
@@ -0,0 +1 @@
+rule org.apache.harmony.** com.android.@0
diff --git a/jdwp/Android.bp b/jdwp/Android.bp
index b1af1b5..80703f5 100644
--- a/jdwp/Android.bp
+++ b/jdwp/Android.bp
@@ -9,9 +9,6 @@ java_genrule {
java_test {
name: "apache-harmony-jdwp-tests",
- visibility: [
- "//cts/tests/jdwp",
- ],
hostdex: true,
host_supported: true,
srcs: ["src/test/java/**/*.java"],
@@ -19,9 +16,14 @@ java_test {
libs: ["junit"],
- sdk_version: "none",
+ no_standard_libs: true,
system_modules: "core-all-system-modules",
target: {
+ // Only depend on core-all for the Android variant so we can avoid
+ // needing to create a core-all host variant.
+ android: {
+ libs: ["core-all"],
+ },
host: {
exclude_srcs: ["src/test/java/org/apache/harmony/jpda/tests/jdwp/DDM/**/*.java"],
},
@@ -34,3 +36,8 @@ java_test {
jarjar_rules: "jarjar-rules.txt",
}
+
+java_library_host {
+ name: "apache-harmony-jdwp-tests-host",
+ static_libs: ["apache-harmony-jdwp-tests"],
+}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java
index de5b397..9c237e8 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java
@@ -51,10 +51,6 @@ public class MonitorContendedEnterAndEnteredDebuggee extends SyncDebuggee {
logWriter.println("main thread: Waiting for second thread to attempt to lock a monitor");
}
- // We think the monitor is contended.
- synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
- // Make sure we're good to finish.
- synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
logWriter.println("--> main thread: finish test");
}
}
@@ -70,6 +66,7 @@ public class MonitorContendedEnterAndEnteredDebuggee extends SyncDebuggee {
@Override
public void run() {
logWriter.println("--> BlockedThread: start to run");
+
synchronized (lock) {
this.getName().trim();
logWriter.println("--> BlockedThread: get lock");
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterTest.java
index 5aa6491..7f80e5b 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterTest.java
@@ -83,12 +83,6 @@ public class MonitorContendedEnterTest extends JDWPSyncTestCase {
assertEquals("Invalid monitor class signature: ", monitorSignature
, actualSignature);
logWriter.println("==> CHECK: monitor class signature: " + actualSignature);
-
- // We don't actually need these in this test. They're used for the Entered test.
- // Debuggee thinks the monitor is contended.
- synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
- // Wake up the blocking thread. Its job is done.
- synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
}
}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnteredTest.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnteredTest.java
index b5d76fa..fc0bf0f 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnteredTest.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnteredTest.java
@@ -20,12 +20,9 @@ package org.apache.harmony.jpda.tests.jdwp.Events;
import org.apache.harmony.jpda.tests.framework.TestErrorException;
import org.apache.harmony.jpda.tests.framework.jdwp.CommandPacket;
-import org.apache.harmony.jpda.tests.framework.jdwp.JDWPCommands;
import org.apache.harmony.jpda.tests.framework.jdwp.JDWPConstants;
import org.apache.harmony.jpda.tests.framework.jdwp.ParsedEvent;
import org.apache.harmony.jpda.tests.framework.jdwp.ParsedEvent.Event_MONITOR_CONTENDED_ENTERED;
-import org.apache.harmony.jpda.tests.framework.jdwp.ReplyPacket;
-import org.apache.harmony.jpda.tests.framework.jdwp.Value;
import org.apache.harmony.jpda.tests.jdwp.share.JDWPSyncTestCase;
import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
@@ -52,40 +49,6 @@ public class MonitorContendedEnteredTest extends JDWPSyncTestCase {
// Inform debuggee that the request has been set
logWriter.println("==> Request has been set.");
synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
- // Debuggee thinks the monitor is contended.
- synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_READY);
-
- // Wait for the other thread to look asleep.
- boolean hasWaiters;
- long classID = getClassIDBySignature(getDebuggeeClassSignature());
- long cnt = 0;
- String fieldName = "lock";
- long fld_id = checkField(classID, fieldName);
- do {
- CommandPacket getValuesCommand = new CommandPacket(
- JDWPCommands.ReferenceTypeCommandSet.CommandSetID,
- JDWPCommands.ReferenceTypeCommandSet.GetValuesCommand);
- getValuesCommand.setNextValueAsReferenceTypeID(classID);
- getValuesCommand.setNextValueAsInt(1);
- getValuesCommand.setNextValueAsFieldID(fld_id);
- ReplyPacket getValuesReply = debuggeeWrapper.vmMirror.performCommand(getValuesCommand);
- checkReplyPacket(getValuesReply, "ReferenceType::GetValues command");
- getValuesReply.getNextValueAsInt(); // num-replies
- Value lkvalue = getValuesReply.getNextValueAsValue();
- long lk = lkvalue.getLongValue();
- CommandPacket monitorInfoCmd = new CommandPacket(
- JDWPCommands.ObjectReferenceCommandSet.CommandSetID,
- JDWPCommands.ObjectReferenceCommandSet.MonitorInfoCommand);
- monitorInfoCmd.setNextValueAsObjectID(lk);
- ReplyPacket monInfoReply = debuggeeWrapper.vmMirror.performCommand(monitorInfoCmd);
- checkReplyPacket(monInfoReply, "ObjectReference::MonitorInfo command");
- monInfoReply.getNextValueAsThreadID(); // owner
- monInfoReply.getNextValueAsInt(); // entryCount
- hasWaiters = monInfoReply.getNextValueAsInt() != 0;
- } while (!hasWaiters);
- logWriter.println("==> Monitor has waiter.");
- // Wake up the blocking thread. Its job is done.
- synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
// Receive event of MONITOR_CONTENDED_ENTERED
logWriter.println("==> Receive Event.");
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturn002Test.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturn002Test.java
index 747ee17..befaf77 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturn002Test.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturn002Test.java
@@ -69,8 +69,7 @@ public class ForceEarlyReturn002Test extends JDWPSyncTestCase {
long testedThreadID = debuggeeWrapper.vmMirror
.getThreadID(ForceEarlyReturnDebuggee.THREAD_LONG);
logWriter.println("==> Get testedThreadID is" + testedThreadID);
- logWriter.println("==> suspend testedThread...");
- debuggeeWrapper.vmMirror.suspendThread(testedThreadID);
+
// Compose the ForceEarlyReturn command
CommandPacket forceEarlyReturnPacket = new CommandPacket(
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturnDebuggee.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturnDebuggee.java
index 2949536..b6795e0 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturnDebuggee.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/ThreadReference/ForceEarlyReturnDebuggee.java
@@ -62,31 +62,6 @@ public class ForceEarlyReturnDebuggee extends SyncDebuggee {
static Object waitForFinish = new Object();
- private final class NoCallSynchronizer extends Thread {
- public volatile boolean signalReady = false;
-
- public NoCallSynchronizer(String name) {
- super(name + " - NoCallSynchronizer thread");
- }
-
- public void run() {
- while (!signalReady) {
- Thread.yield();
- }
- logWriter.println(getName() + ": " + "resuming debugger");
- synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
- }
-
- public void sjoin() {
- try {
- join();
- } catch (InterruptedException ie) {
- logWriter.println("Interrupted exception: " + ie);
- throw new Error("join interrupted!", ie);
- }
- }
- }
-
@Override
public void run() {
synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
@@ -107,81 +82,81 @@ public class ForceEarlyReturnDebuggee extends SyncDebuggee {
synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
}
- public Object func_Object(NoCallSynchronizer ncs) {
+ public Object func_Object() {
logWriter.println("In func_Object");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return new Object();
}
- public int func_Int(NoCallSynchronizer ncs) {
+ public int func_Int() {
logWriter.println("In func_Int");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return -1;
}
- public short func_Short(NoCallSynchronizer ncs) {
+ public short func_Short() {
logWriter.println("In func_Short");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return -1;
}
- public byte func_Byte(NoCallSynchronizer ncs) {
+ public byte func_Byte() {
logWriter.println("In func_Byte");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return -1;
}
- public char func_Char(NoCallSynchronizer ncs) {
+ public char func_Char() {
logWriter.println("In func_Char");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return 'Z';
}
- public boolean func_Boolean(NoCallSynchronizer ncs) {
+ public boolean func_Boolean() {
logWriter.println("In func_Boolean");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return false;
}
- public long func_Long(NoCallSynchronizer ncs) {
+ public long func_Long() {
logWriter.println("In func_Long");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return -1;
}
- public float func_Float(NoCallSynchronizer ncs) {
+ public float func_Float() {
logWriter.println("In func_Float");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return -1;
}
- public double func_Double(NoCallSynchronizer ncs) {
+ public double func_Double() {
logWriter.println("In func_Double");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
return -1;
}
- public void func_Void(NoCallSynchronizer ncs) {
+ public void func_Void() {
logWriter.println("In func_Void");
- ncs.signalReady = true;
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
while (condition)
;
isFuncVoidBreak = false;
@@ -196,8 +171,6 @@ public class ForceEarlyReturnDebuggee extends SyncDebuggee {
@Override
public void run() {
- NoCallSynchronizer ncs = new NoCallSynchronizer(getName());
- ncs.start();
synchronized (ForceEarlyReturnDebuggee.waitForFinish) {
@@ -208,8 +181,7 @@ public class ForceEarlyReturnDebuggee extends SyncDebuggee {
logWriter.println(getName() + ": started");
if (getName().equals(THREAD_OBJECT)) {
- Object result = func_Object(ncs);
- ncs.sjoin();
+ Object result = func_Object();
logWriter.println(getName() + ": " + "Object");
if (result instanceof TestObject) {
synchronizer.sendMessage("TRUE");
@@ -220,63 +192,54 @@ public class ForceEarlyReturnDebuggee extends SyncDebuggee {
.println(getName() + ": func_Object returned.");
} else if (getName().equals(THREAD_INT)) {
- int result = func_Int(ncs);
- ncs.sjoin();
+ int result = func_Int();
logWriter.println(getName() + ": " + result);
synchronizer
.sendMessage(new Integer(result).toString());
logWriter.println(getName() + ": func_Int returned.");
} else if (getName().equals(THREAD_SHORT)) {
- short result = func_Short(ncs);
- ncs.sjoin();
+ short result = func_Short();
logWriter.println(getName() + ": " + result);
synchronizer
.sendMessage(new Integer(result).toString());
logWriter.println(getName() + ": func_Short returned.");
} else if (getName().equals(THREAD_BYTE)) {
- byte result = func_Byte(ncs);
- ncs.sjoin();
+ byte result = func_Byte();
logWriter.println(getName() + ": " + result);
synchronizer
.sendMessage(new Integer(result).toString());
logWriter.println(getName() + ": func_Byte returned.");
} else if (getName().equals(THREAD_CHAR)) {
- char result = func_Char(ncs);
- ncs.sjoin();
+ char result = func_Char();
logWriter.println(getName() + ": " + result);
synchronizer.sendMessage(new Character(result)
.toString());
logWriter.println(getName() + ": func_Char returned.");
} else if (getName().equals(THREAD_BOOLEAN)) {
- Boolean result = func_Boolean(ncs);
- ncs.sjoin();
+ Boolean result = func_Boolean();
logWriter.println(getName() + ": " + result);
synchronizer
.sendMessage(new Boolean(result).toString());
logWriter.println(getName()
+ ": func_Boolean returned.");
} else if (getName().equals(THREAD_LONG)) {
- long result = func_Long(ncs);
- ncs.sjoin();
+ long result = func_Long();
logWriter.println(getName() + ": " + result);
synchronizer.sendMessage(new Long(result).toString());
logWriter.println(getName() + ": func_Long returned.");
} else if (getName().equals(THREAD_FLOAT)) {
- float result = func_Float(ncs);
- ncs.sjoin();
+ float result = func_Float();
logWriter.println(getName() + ": " + result);
synchronizer.sendMessage(new Float(result).toString());
logWriter.println(getName() + ": func_Float returned.");
} else if (getName().equals(THREAD_DOUBLE)) {
- double result = func_Double(ncs);
- ncs.sjoin();
+ double result = func_Double();
logWriter.println(getName() + ": " + result);
synchronizer.sendMessage(new Double(result).toString());
logWriter
.println(getName() + ": func_Double returned.");
} else if (getName().equals(THREAD_VOID)) {
- func_Void(ncs);
- ncs.sjoin();
+ func_Void();
logWriter.println(getName() + ": " + "void");
if (isFuncVoidBreak) {
synchronizer.sendMessage("TRUE");
@@ -286,8 +249,7 @@ public class ForceEarlyReturnDebuggee extends SyncDebuggee {
logWriter.println(getName() + ": func_Void returned.");
} else {
logWriter.println(getName() + ": no func is called.");
- ncs.signalReady = true;
- ncs.sjoin();
+ synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
synchronizer.receiveMessage("ThreadExit");
}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java
index 55ce1ca..575cb45 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/AllTests.java
@@ -18,156 +18,52 @@
package org.apache.harmony.jpda.tests.share;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.function.Predicate;
-import org.apache.harmony.jpda.tests.jdwp.share.JDWPRawTestCase;
public class AllTests {
- private static JPDATestOptions TEST_OPTIONS = new JPDATestOptions();
-
public static void main(String[] args) {
junit.framework.TestResult result = junit.textui.TestRunner.run(suite());
if (!result.wasSuccessful()) {
- System.exit(1);
+ System.exit(1);
}
}
- public static final class BadTestClassException extends IllegalArgumentException {
- public BadTestClassException(String s) {
- super(s);
- }
-
- public BadTestClassException(String s, Throwable t) {
- super(s, t);
- }
- }
-
- public static junit.framework.Test makeWarning(String name, String msg) {
- return new junit.framework.TestCase(name) {
- protected void runTest() {
- JPDALogWriter lw = new JPDALogWriter(System.out, null, TEST_OPTIONS.isVerbose());
- lw.printError("Skipping " + name + " due to: " + msg);
- }
- };
- }
- public static interface FilterSuite {
- public void addTestSuite(Class<? extends JDWPRawTestCase> k);
+ private static void addOptionalTestSuite(junit.framework.TestSuite suite, String classname) {
+ try {
+ suite.addTestSuite((Class<? extends junit.framework.TestCase>)Class.forName(classname));
+ } catch (ClassNotFoundException e) { }
}
+ public static junit.framework.Test suite() {
+ junit.framework.TestSuite suite = new junit.framework.TestSuite();
- public static class FilteredTestSuite extends junit.framework.TestSuite {
- public FilteredTestSuite(Class<? extends JDWPRawTestCase> tc, Predicate<Method> is_good)
- throws BadTestClassException {
- super();
-
- setName(tc.getName());
+ //
+ // "TODO".
+ //
- if (!Modifier.isPublic(tc.getModifiers())) {
- throw new BadTestClassException(tc + " is not public");
- }
- Function<Method, junit.framework.Test> mktest =
- (m) -> {
- try {
- junit.framework.TestCase res = (junit.framework.TestCase) tc.newInstance();
- res.setName(m.getName());
- return res;
- } catch (Exception t) {
- return makeWarning(
- m.getName(), "Unable to create test case for " + m + " because of " + t);
- }
- };
- Class<?> curClass = tc;
- Set<String> seen_names = new HashSet<>();
- while (junit.framework.Test.class.isAssignableFrom(curClass)) {
- for (Method m : tc.getDeclaredMethods()) {
- addTestMethod(m, seen_names, is_good, mktest);
- }
- curClass = curClass.getSuperclass();
- }
- }
+ // I haven't yet found an IDE that will use these, but we might want to implement them anyway.
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorContendedEnteredTest.class);
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorContendedEnterTest.class);
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitedTest.class);
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitTest.class);
- private void addTestMethod(
- Method m,
- Set<String> seen,
- Predicate<Method> is_good,
- Function<Method, junit.framework.Test> mkTest) {
- if (seen.contains(m.getName())) {
- return;
- }
- seen.add(m.getName());
- if (Modifier.isPublic(m.getModifiers())
- && m.getParameterCount() == 0
- && m.getName().startsWith("test")
- && m.getReturnType().equals(Void.TYPE)) {
- if (is_good.test(m)) {
- addTest(mkTest.apply(m));
- } else {
- addTest(makeWarning(m.getName(), "Skipping test " + m + " due to explicit skip"));
- }
- }
- }
- }
+ // I don't know when these are ever used, but they're not obviously useless.
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.DebuggerOnDemand.OnthrowDebuggerLaunchTest.class);
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.NestedTypesTest.class);
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.VirtualMachine.HoldEventsTest.class);
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.VirtualMachine.ReleaseEventsTest.class);
- private static void addOptionalTestSuite(FilterSuite suite, String classname) {
- try {
- suite.addTestSuite((Class<? extends JDWPRawTestCase>) Class.forName(classname));
- } catch (ClassNotFoundException e) {
- }
- }
+ //
+ // "Will not fix".
+ //
- public static junit.framework.Test suite() {
- junit.framework.TestSuite baseSuite = new junit.framework.TestSuite();
+ // It's not obvious how to translate this into our world, or what debuggers would do with it.
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.ClassFileVersionTest.class);
- // All of these tests can only be run using the full JDWP implementation. They weren't really
- // used by IDEs/aren't really applicable to android so were never supported by the
- // -XjdwpProvider:internal JDWP implementation. The new agent based implementation supports them
- // though.
- Set<String> bad_test_cases = new HashSet<>();
- bad_test_cases.addAll(Arrays.asList(TEST_OPTIONS.getBadTestCases()));
- FilterSuite suite = (k) -> {
- try {
- baseSuite.addTest(
- new FilteredTestSuite(
- k,
- (Method m) -> {
- String test_desc = m.getDeclaringClass().getName() + "#" + m.getName();
- return !bad_test_cases.contains(test_desc);
- }));
- } catch (BadTestClassException e) {
- baseSuite.addTest(makeWarning(k.getName(), "Could not add test " + k + " due to " + e));
- }
- };
- if (TEST_OPTIONS.getSuiteType().equals("full")
- || TEST_OPTIONS.getSuiteType().equals("libjdwp")) {
- // I haven't yet found an IDE that will use these, but we might want to implement them anyway.
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorContendedEnteredTest.class);
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorContendedEnterTest.class);
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitedTest.class);
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitTest.class);
- // I don't know when these are ever used, but they're not obviously useless.
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.NestedTypesTest.class);
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.VirtualMachine.HoldEventsTest.class);
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.VirtualMachine.ReleaseEventsTest.class);
- // Internal JDWP implementation never supported this.
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ThreadReference.StopTest.class);
- }
+ // We don't implement Thread.stop at all, so it doesn't make sense for us to implement the JDWP.
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ThreadReference.StopTest.class);
- //
- // These tests are not worth fixing or fundamentally do not make sense on android.
- //
- if (TEST_OPTIONS.getSuiteType().equals("full")) {
- // It's not obvious how to translate this into our world, or what debuggers would do with it.
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ReferenceType.ClassFileVersionTest.class);
- // TODO The test suite itself seems to send incorrect commands when this is run.
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.DebuggerOnDemand.OnthrowDebuggerLaunchTest.class);
- // TODO We don't implement class unloading in the way the test expects.
- suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.ClassUnloadTest.class);
- }
+ // We don't implement class unloading.
+ //suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.Events.ClassUnloadTest.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ArrayReference.GetValuesTest.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.ArrayReference.LengthTest.class);
@@ -350,7 +246,6 @@ public class AllTests {
addOptionalTestSuite(suite, "org.apache.harmony.jpda.tests.jdwp.DDM.DDMTest");
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.VMDebug.VMDebugTest.class);
suite.addTestSuite(org.apache.harmony.jpda.tests.jdwp.VMDebug.VMDebugTest002.class);
-
- return baseSuite;
+ return suite;
}
}
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/JPDATestOptions.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/JPDATestOptions.java
index 0d7841a..adf773a 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/JPDATestOptions.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/share/JPDATestOptions.java
@@ -25,7 +25,6 @@
*/
package org.apache.harmony.jpda.tests.share;
-import java.util.Arrays;
import org.apache.harmony.jpda.tests.framework.TestOptions;
/**
@@ -41,28 +40,6 @@ import org.apache.harmony.jpda.tests.framework.TestOptions;
public class JPDATestOptions extends TestOptions {
/**
- * Returns what test methods have been marked as bad and to be skipped.
- *
- * @return comma-split option "jpda.settings.badTestCases" or [] by default
- */
- public String[] getBadTestCases() {
- return Arrays.stream(System.getProperty("jpda.settings.badTestCases", "").split(","))
- .filter((v) -> !v.equals(""))
- .toArray((i) -> new String[i]);
- }
-
- /**
- * Returns what test suite we should use if running AllTests. May be "internal" (for the test
- * suite corresponding to -XjdwpProvider:internal), "libjdwp" (for the test suite corresponding
- * to -XjdwpProvider:adbconnection) or "full" for everything.
- *
- * @return option "jpda.settings.testSuiteType" or "internal" by default.
- */
- public String getSuiteType() {
- return System.getProperty("jpda.settings.testSuiteType", "internal");
- }
-
- /**
* Returns kind of launching debuggee VM, which can be "auto" or "manual".
*
* @return option "jpda.settings.debuggeeLaunchKind" or "auto" by default.
diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FormatterTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FormatterTest.java
index 5b30e98..8dabf91 100644
--- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FormatterTest.java
+++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/FormatterTest.java
@@ -89,7 +89,7 @@ public class FormatterTest extends TestCase {
// normal case
r.setMessage("msg");
ResourceBundle rb = ResourceBundle
- .getBundle("bundles/java/util/logging/res");
+ .getBundle("bundles/com/android/java/util/logging/res");
r.setResourceBundle(rb);
assertEquals(rb.getString("msg"), f.formatMessage(r));
@@ -107,7 +107,7 @@ public class FormatterTest extends TestCase {
assertEquals(rb.getString("pattern{0,number}"), f.formatMessage(r));
// another bundle
- rb = ResourceBundle.getBundle("bundles/java/util/logging/res",
+ rb = ResourceBundle.getBundle("bundles/com/android/java/util/logging/res",
Locale.US);
r.setMessage("msg");
r.setResourceBundle(rb);
@@ -119,7 +119,7 @@ public class FormatterTest extends TestCase {
// set bundle name but not bundle
r.setResourceBundle(null);
- r.setResourceBundleName("bundles/java/util/logging/res");
+ r.setResourceBundleName("bundles/com/android/java/util/logging/res");
r.setMessage("msg");
assertEquals("msg", f.formatMessage(r));
}
diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LevelTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LevelTest.java
index 1b9eab0..9a290d6 100644
--- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LevelTest.java
+++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LevelTest.java
@@ -331,16 +331,16 @@ public class LevelTest extends TestCase implements Serializable {
}
public void testGetLocalName() {
- ResourceBundle rb = ResourceBundle.getBundle("bundles/java/util/logging/res");
+ ResourceBundle rb = ResourceBundle.getBundle("bundles/com/android/java/util/logging/res");
Level l = new MockLevel("level1", 120,
- "bundles/java/util/logging/res");
+ "bundles/com/android/java/util/logging/res");
assertEquals(rb.getString("level1"), l.getLocalizedName());
// regression test for HARMONY-2415
rb = ResourceBundle.getBundle(
- "org.apache.harmony.logging.tests.java.util.logging.LevelTestResource");
+ "com.android.org.apache.harmony.logging.tests.java.util.logging.LevelTestResource");
l = new MockLevel("Level_error", 120,
- "org.apache.harmony.logging.tests.java.util.logging.LevelTestResource");
+ "com.android.org.apache.harmony.logging.tests.java.util.logging.LevelTestResource");
assertEquals(rb.getString("Level_error"), l.getLocalizedName());
l = new MockLevel("bad name", 120, "res");
diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java
index 5656f6d..c54eaa1 100644
--- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java
+++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.java
@@ -75,12 +75,12 @@ public class LogRecordTest extends TestCase {
lr.setResourceBundle(null);
assertNull(lr.getResourceBundle());
- lr.setResourceBundleName("bundles/java/util/logging/res");
+ lr.setResourceBundleName("bundles/com/android/java/util/logging/res");
assertNull(lr.getResourceBundle());
lr.setResourceBundleName(null);
ResourceBundle rb = ResourceBundle
- .getBundle("bundles/java/util/logging/res");
+ .getBundle("bundles/com/android/java/util/logging/res");
lr.setResourceBundle(rb);
assertEquals(rb, lr.getResourceBundle());
assertNull(lr.getResourceBundleName());
@@ -326,9 +326,9 @@ public class LogRecordTest extends TestCase {
public void testSerializationResourceBundle() throws Exception {
// test case: valid resource bundle name
- lr.setResourceBundleName("bundles/java/util/logging/res2");
+ lr.setResourceBundleName("bundles/com/android/java/util/logging/res2");
lr.setResourceBundle(ResourceBundle.getBundle(
- "bundles/java/util/logging/res", Locale.US));
+ "bundles/com/android/java/util/logging/res", Locale.US));
LogRecord result = (LogRecord) SerializationTest.copySerializable(lr);
assertNotNull(result.getResourceBundle());
@@ -337,7 +337,7 @@ public class LogRecordTest extends TestCase {
// deserialization LogRecord object so check for returned null value
lr.setResourceBundleName("bad bundle name");
lr.setResourceBundle(ResourceBundle.getBundle(
- "bundles/java/util/logging/res", Locale.US));
+ "bundles/com/android/java/util/logging/res", Locale.US));
result = (LogRecord) SerializationTest.copySerializable(lr);
assertNull(result.getResourceBundle());
diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java
index bf5e01c..03083ae 100644
--- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java
+++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LoggerTest.java
@@ -43,18 +43,18 @@ import tests.util.CallVerificationStack;
*/
public class LoggerTest extends TestCase {
- private final static String VALID_RESOURCE_BUNDLE = "bundles/java/util/logging/res";
+ private final static String VALID_RESOURCE_BUNDLE = "bundles/com/android/java/util/logging/res";
private final static String VALID_RESOURCE_BUNDLE2 =
- "bundles/java/util/logging/res2";
+ "bundles/com/android/java/util/logging/res2";
private final static String VALID_RESOURCE_BUNDLE3 =
- "bundles/java/util/logging/res3";
+ "bundles/com/android/java/util/logging/res3";
private final static String INVALID_RESOURCE_BUNDLE = "impossible_not_existing";
private final static String LOGGING_CONFIG_RESOURCE =
- "config/java/util/logging/logging.config";
+ "config/com/android/java/util/logging/logging.config";
private final static String VALID_KEY = "LOGGERTEST";
@@ -332,9 +332,9 @@ public class LoggerTest extends TestCase {
*/
public void testGetLogger_WithParentNormal() {
assertNull(LogManager.getLogManager().getLogger(
- "testGetLogger_WithParentNormal_ParentLogger"));
+ "testGetLogger_WithParent_ParentLogger"));
// create the parent logger
- Logger pLog = Logger.getLogger("testGetLogger_WithParentNormal_ParentLogger",
+ Logger pLog = Logger.getLogger("testGetLogger_WithParent_ParentLogger",
VALID_RESOURCE_BUNDLE);
pLog.setLevel(Level.CONFIG);
pLog.addHandler(new MockHandler());
@@ -342,14 +342,14 @@ public class LoggerTest extends TestCase {
pLog.setUseParentHandlers(false);
assertNull(LogManager.getLogManager().getLogger(
- "testGetLogger_WithParentNormal_ParentLogger.child"));
+ "testGetLogger_WithParent_ParentLogger.child"));
// create the child logger
Logger log = Logger
- .getLogger("testGetLogger_WithParentNormal_ParentLogger.child");
+ .getLogger("testGetLogger_WithParent_ParentLogger.child");
assertNull(log.getFilter());
assertEquals(0, log.getHandlers().length);
assertNull(log.getLevel());
- assertEquals("testGetLogger_WithParentNormal_ParentLogger.child", log
+ assertEquals("testGetLogger_WithParent_ParentLogger.child", log
.getName());
assertSame(log.getParent(), pLog);
assertNull(log.getResourceBundle());
@@ -532,25 +532,25 @@ public class LoggerTest extends TestCase {
*/
public void testGetLoggerWithRes_WithParentNormal() {
assertNull(LogManager.getLogManager().getLogger(
- "testGetLoggerWithRes_WithParentNormal_ParentLogger"));
+ "testGetLoggerWithRes_WithParent_ParentLogger"));
// create the parent logger
Logger pLog = Logger
- .getLogger("testGetLoggerWithRes_WithParentNormal_ParentLogger");
+ .getLogger("testGetLoggerWithRes_WithParent_ParentLogger");
pLog.setLevel(Level.CONFIG);
pLog.addHandler(new MockHandler());
pLog.setFilter(new MockFilter());
pLog.setUseParentHandlers(false);
assertNull(LogManager.getLogManager().getLogger(
- "testGetLoggerWithRes_WithParentNormal_ParentLogger.child"));
+ "testGetLoggerWithRes_WithParent_ParentLogger.child"));
// create the child logger
Logger log = Logger.getLogger(
- "testGetLoggerWithRes_WithParentNormal_ParentLogger.child",
+ "testGetLoggerWithRes_WithParent_ParentLogger.child",
VALID_RESOURCE_BUNDLE);
assertNull(log.getFilter());
assertEquals(0, log.getHandlers().length);
assertNull(log.getLevel());
- assertEquals("testGetLoggerWithRes_WithParentNormal_ParentLogger.child", log
+ assertEquals("testGetLoggerWithRes_WithParent_ParentLogger.child", log
.getName());
assertSame(log.getParent(), pLog);
assertEquals(VALID_VALUE, log.getResourceBundle().getString(VALID_KEY));
diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/SimpleFormatterTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/SimpleFormatterTest.java
index ee35d2d..ea7589f 100644
--- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/SimpleFormatterTest.java
+++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/SimpleFormatterTest.java
@@ -57,7 +57,7 @@ public class SimpleFormatterTest extends TestCase {
public void testLocalizedFormat() {
// if bundle set, should use localized message
ResourceBundle rb = ResourceBundle
- .getBundle("bundles/java/util/logging/res");
+ .getBundle("bundles/com/android/java/util/logging/res");
lr.setResourceBundle(rb);
lr.setMessage("msg");
String localeMsg = rb.getString("msg");
@@ -66,7 +66,7 @@ public class SimpleFormatterTest extends TestCase {
// if bundle not set but bundle name set, should use original message
lr.setResourceBundle(null);
- lr.setResourceBundleName("bundles/java/util/logging/res");
+ lr.setResourceBundleName("bundles/com/android/java/util/logging/res");
lr.setMessage("msg");
str = sf.format(lr);
localeMsg = rb.getString("msg");
diff --git a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/XMLFormatterTest.java b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/XMLFormatterTest.java
index 386daef..b14d571 100644
--- a/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/XMLFormatterTest.java
+++ b/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/XMLFormatterTest.java
@@ -53,7 +53,7 @@ public class XMLFormatterTest extends TestCase {
// but put the original message into the key element
// further more, if message pattern has no effect
ResourceBundle rb = ResourceBundle
- .getBundle("bundles/java/util/logging/res");
+ .getBundle("bundles/com/android/java/util/logging/res");
lr.setResourceBundle(rb);
lr.setMessage("pattern");
String result = formatter.format(lr);
@@ -88,7 +88,7 @@ public class XMLFormatterTest extends TestCase {
lr.setParameters(new Object[] { "100", "200" });
lr.setSequenceNumber(1);
ResourceBundle rb = ResourceBundle
- .getBundle("bundles/java/util/logging/res");
+ .getBundle("bundles/com/android/java/util/logging/res");
lr.setResourceBundle(rb);
lr.setResourceBundleName("rbname");
String output = formatter.format(lr);
diff --git a/logging/src/test/resources/bundles/com/android/java/util/logging/res.properties b/logging/src/test/resources/bundles/com/android/java/util/logging/res.properties
new file mode 100644
index 0000000..db455b0
--- /dev/null
+++ b/logging/src/test/resources/bundles/com/android/java/util/logging/res.properties
@@ -0,0 +1,12 @@
+level1=en_US_level1
+SEVERE=US_SEVERE
+WARNING=US_WARNING
+CONFIG=US_CONFIG
+FINE=US_FINE
+FINER=US_FINER
+FINEST=US_FINEST
+ALL=US_ALL
+OFF=US_OFF
+msg=US_MSG
+pattern=US_pattern {0, number}
+pattern{0,number}=US \ No newline at end of file
diff --git a/logging/src/test/resources/bundles/com/android/java/util/logging/res2.properties b/logging/src/test/resources/bundles/com/android/java/util/logging/res2.properties
new file mode 100644
index 0000000..66f02eb
--- /dev/null
+++ b/logging/src/test/resources/bundles/com/android/java/util/logging/res2.properties
@@ -0,0 +1,13 @@
+level1=level1
+SEVERE=SEVERE2
+WARNING=WARNING2
+CONFIG=CONFIG2
+FINE=FINE2
+FINER=FINER2
+FINEST=FINEST2
+ALL=ALL2
+OFF=OFF2
+msg=MSG2
+pattern=pattern {0, number}2
+pattern{0,number}=NOLOCALE2
+LOGGERTEST=Test_NoLocale2 \ No newline at end of file
diff --git a/logging/src/test/resources/bundles/com/android/java/util/logging/res3.properties b/logging/src/test/resources/bundles/com/android/java/util/logging/res3.properties
new file mode 100644
index 0000000..f7b4b29
--- /dev/null
+++ b/logging/src/test/resources/bundles/com/android/java/util/logging/res3.properties
@@ -0,0 +1,13 @@
+level1=level13
+SEVERE=SEVERE3
+WARNING=WARNING3
+CONFIG=CONFIG3
+FINE=FINE3
+FINER=FINER3
+FINEST=FINEST3
+ALL=ALL3
+OFF=OFF3
+msg=MSG3
+pattern=pattern {0, number}3
+pattern{0,number}=NOLOCALE3
+LOGGERTEST=Test_NoLocale3 \ No newline at end of file
diff --git a/logging/src/test/resources/bundles/com/android/java/util/logging/res_en_US.properties b/logging/src/test/resources/bundles/com/android/java/util/logging/res_en_US.properties
new file mode 100644
index 0000000..db455b0
--- /dev/null
+++ b/logging/src/test/resources/bundles/com/android/java/util/logging/res_en_US.properties
@@ -0,0 +1,12 @@
+level1=en_US_level1
+SEVERE=US_SEVERE
+WARNING=US_WARNING
+CONFIG=US_CONFIG
+FINE=US_FINE
+FINER=US_FINER
+FINEST=US_FINEST
+ALL=US_ALL
+OFF=US_OFF
+msg=US_MSG
+pattern=US_pattern {0, number}
+pattern{0,number}=US \ No newline at end of file
diff --git a/logging/src/test/resources/bundles/com/android/java/util/logging/res_zh_CN.properties b/logging/src/test/resources/bundles/com/android/java/util/logging/res_zh_CN.properties
new file mode 100644
index 0000000..e96803d
--- /dev/null
+++ b/logging/src/test/resources/bundles/com/android/java/util/logging/res_zh_CN.properties
@@ -0,0 +1,13 @@
+level1=zh_CN_level1
+SEVERE=zh_CN_SEVERE
+WARNING=zh_CN_WARNING
+CONFIG=ZH_CN_CONFIG
+FINE=ZH_CN_FINE
+FINER=ZH_CN_FINER
+FINEST=ZH_CN_FINEST
+ALL=ZH_CN_ALL
+OFF=ZH_CN_OFF
+msg=ZH_CN_MSG
+pattern=ZH_CN_pattern {0, number}
+pattern{0,number}=ZH_CN
+LOGGERTEST=Test_ZH_CN \ No newline at end of file
diff --git a/logging/src/test/resources/config/com/android/java/util/logging/logging.config b/logging/src/test/resources/config/com/android/java/util/logging/logging.config
new file mode 100644
index 0000000..c67dadd
--- /dev/null
+++ b/logging/src/test/resources/config/com/android/java/util/logging/logging.config
@@ -0,0 +1,3 @@
+handlers=com.android.org.apache.harmony.logging.tests.java.util.logging.LogManagerTest$MockHandler , java.util.logging.ConsoleHandler
+.level=ALL
+com.android.org.apache.harmony.logging.tests.java.util.logging.LogManagerTest$MockHandler.level=OFF \ No newline at end of file
diff --git a/logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LevelTest.golden.ser b/logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LevelTest.golden.ser
new file mode 100644
index 0000000..721a368
--- /dev/null
+++ b/logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LevelTest.golden.ser
Binary files differ
diff --git a/logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.golden.ser b/logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.golden.ser
new file mode 100644
index 0000000..955c6fb
--- /dev/null
+++ b/logging/src/test/resources/serialization/com/android/org/apache/harmony/logging/tests/java/util/logging/LogRecordTest.golden.ser
Binary files differ
diff --git a/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/process/SystemProcessTest.java b/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/process/SystemProcessTest.java
new file mode 100644
index 0000000..74597a1
--- /dev/null
+++ b/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/process/SystemProcessTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.luni.tests.internal.process;
+
+import java.io.OutputStream;
+
+import junit.framework.TestCase;
+import tests.support.Support_Exec;
+
+public class SystemProcessTest extends TestCase {
+
+ public void test_interrupt() throws Exception {
+ Object[] execArgs = null;
+ Process process = null;
+ try {
+ Thread.currentThread().interrupt();
+ execArgs = Support_Exec.execJava2(
+ new String[] { "tests.support.Support_AvailTest" }, null,
+ true);
+ process = (Process) execArgs[0];
+ OutputStream os = process.getOutputStream();
+ os.write("10 5 abcde".getBytes());
+ os.close();
+ process.waitFor();
+ fail("Should throw InterruptedException");
+ } catch (InterruptedException e) {
+ // Expected
+ }
+
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // Ignored
+ }
+ process.waitFor();
+ Support_Exec.checkStderr(execArgs);
+ process.destroy();
+ }
+}
diff --git a/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/test_protocol/Handler.java b/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/test_protocol/Handler.java
new file mode 100644
index 0000000..e868391
--- /dev/null
+++ b/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/test_protocol/Handler.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.luni.tests.java.net.test_protocol;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+public class Handler extends URLStreamHandler {
+ protected URLConnection openConnection(URL u) throws IOException {
+ return null;
+ }
+}
+
diff --git a/luni/src/test/api/common/org/apache/harmony/luni/tests/pkg1/TestClass.java b/luni/src/test/api/common/org/apache/harmony/luni/tests/pkg1/TestClass.java
new file mode 100644
index 0000000..5bef9b9
--- /dev/null
+++ b/luni/src/test/api/common/org/apache/harmony/luni/tests/pkg1/TestClass.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.luni.tests.pkg1;
+
+import java.io.Serializable;
+
+/**
+ * Used for a serialization test, must have different package and same base name
+ * as the TestClass in o.a.h.l.tests.pkg2
+ */
+public class TestClass implements Serializable {
+ private static final long serialVersionUID = 11111L;
+
+ public int i = 0;
+}
diff --git a/luni/src/test/api/common/org/apache/harmony/luni/tests/pkg2/TestClass.java b/luni/src/test/api/common/org/apache/harmony/luni/tests/pkg2/TestClass.java
new file mode 100644
index 0000000..c1a9a4e
--- /dev/null
+++ b/luni/src/test/api/common/org/apache/harmony/luni/tests/pkg2/TestClass.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.luni.tests.pkg2;
+
+import java.io.Serializable;
+
+/**
+ * Used for a serialization test, must have different package and same base name
+ * as the TestClass in o.a.h.l.tests.pkg1
+ */
+public class TestClass implements Serializable {
+ private static final long serialVersionUID = 11111L;
+ public int i = 0;
+}
diff --git a/luni/src/test/resources/org/apache/harmony/luni/tests/ObjectStreamClassTest.jar b/luni/src/test/resources/org/apache/harmony/luni/tests/ObjectStreamClassTest.jar
new file mode 100644
index 0000000..7ba6034
--- /dev/null
+++ b/luni/src/test/resources/org/apache/harmony/luni/tests/ObjectStreamClassTest.jar
Binary files differ
diff --git a/luni/src/test/resources/org/apache/harmony/luni/tests/key_store.bks b/luni/src/test/resources/org/apache/harmony/luni/tests/key_store.bks
new file mode 100644
index 0000000..9aa43d8
--- /dev/null
+++ b/luni/src/test/resources/org/apache/harmony/luni/tests/key_store.bks
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleEntry.golden.ser b/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleEntry.golden.ser
new file mode 100644
index 0000000..0b5d815
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleEntry.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleImmutableEntry.golden.ser b/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleImmutableEntry.golden.ser
new file mode 100644
index 0000000..a85543d
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleImmutableEntry.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_CheckedCollection.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_CheckedCollection.golden.ser
new file mode 100644
index 0000000..eec840e
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedCollection.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_CheckedList.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_CheckedList.golden.ser
new file mode 100644
index 0000000..e9a4122
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedList.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_CheckedListRandomAccess.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_CheckedListRandomAccess.golden.ser
new file mode 100644
index 0000000..dfa2d43
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedListRandomAccess.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_CheckedMap.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_CheckedMap.golden.ser
new file mode 100644
index 0000000..13415f6
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedMap.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_CheckedSet.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_CheckedSet.golden.ser
new file mode 100644
index 0000000..ed1f305
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedSet.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedMap.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedMap.golden.ser
new file mode 100644
index 0000000..eca8ffa
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedMap.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedSet.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedSet.golden.ser
new file mode 100644
index 0000000..4520ed4
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedSet.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_asLifoQueue.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_asLifoQueue.golden.ser
new file mode 100644
index 0000000..73134df
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_asLifoQueue.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/Collections_newSetFromMap.golden.ser b/luni/src/test/resources/serialization/java/util/Collections_newSetFromMap.golden.ser
new file mode 100644
index 0000000..88f97e5
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/Collections_newSetFromMap.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/java/util/PriorityQueue.golden.ser b/luni/src/test/resources/serialization/java/util/PriorityQueue.golden.ser
new file mode 100644
index 0000000..d716dda
--- /dev/null
+++ b/luni/src/test/resources/serialization/java/util/PriorityQueue.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/FileTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/FileTest.golden.ser
new file mode 100644
index 0000000..0a15a61
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/FileTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/IOErrorTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/IOErrorTest.golden.ser
new file mode 100644
index 0000000..cd0e319
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/IOErrorTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_integers.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_integers.ser
new file mode 100644
index 0000000..3c5a5e1
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_integers.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_strings.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_strings.ser
new file mode 100644
index 0000000..ee2de1c
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/test_array_strings.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/AbstractMethodErrorTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/AbstractMethodErrorTest.golden.ser
new file mode 100644
index 0000000..255e965
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/AbstractMethodErrorTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalArgumentExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalArgumentExceptionTest.golden.ser
new file mode 100644
index 0000000..a94e8bf
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalArgumentExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalStateExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalStateExceptionTest.golden.ser
new file mode 100644
index 0000000..14b902b
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalStateExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/SecurityExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/SecurityExceptionTest.golden.ser
new file mode 100644
index 0000000..76abfd1
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/SecurityExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBufferTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBufferTest.golden.ser
new file mode 100644
index 0000000..861b4ab
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBufferTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.golden.ser
new file mode 100644
index 0000000..fb54290
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/UnsupportedOperationExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/UnsupportedOperationExceptionTest.golden.ser
new file mode 100644
index 0000000..9197188
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/UnsupportedOperationExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/HttpRetryExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/HttpRetryExceptionTest.golden.ser
new file mode 100644
index 0000000..40413eb
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/HttpRetryExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet4AddressTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet4AddressTest.golden.ser
new file mode 100644
index 0000000..bc70d04
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet4AddressTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.0.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.0.ser
new file mode 100644
index 0000000..4607c20
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.0.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.1.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.1.ser
new file mode 100644
index 0000000..5d55693
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet6AddressTest.golden.1.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetAddressTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetAddressTest.golden.ser
new file mode 100644
index 0000000..bc70d04
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetAddressTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.0.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.0.ser
new file mode 100644
index 0000000..94fe222
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.0.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.1.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.1.ser
new file mode 100644
index 0000000..1672d5f
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetSocketAddressTest.golden.1.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/SocketTimeoutExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/SocketTimeoutExceptionTest.golden.ser
new file mode 100644
index 0000000..a6e7680
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/SocketTimeoutExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ArrayDequeTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ArrayDequeTest.golden.ser
new file mode 100644
index 0000000..794419a
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ArrayDequeTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/BitSetTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/BitSetTest.golden.ser
new file mode 100644
index 0000000..1f38d8d
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/BitSetTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/DuplicateFormatFlagsExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/DuplicateFormatFlagsExceptionTest.golden.ser
new file mode 100644
index 0000000..f26eade
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/DuplicateFormatFlagsExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumMapTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumMapTest.golden.ser
new file mode 100644
index 0000000..8ab8303
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumMapTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumSetTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumSetTest.golden.ser
new file mode 100644
index 0000000..6859db8
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumSetTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatFlagsConversionMismatchExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatFlagsConversionMismatchExceptionTest.golden.ser
new file mode 100644
index 0000000..ff1afb2
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatFlagsConversionMismatchExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatterClosedExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatterClosedExceptionTest.golden.ser
new file mode 100644
index 0000000..02e8dbc
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatterClosedExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashMapTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashMapTest.golden.ser
new file mode 100644
index 0000000..529512a
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashMapTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashSetTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashSetTest.golden.ser
new file mode 100644
index 0000000..5d76a32
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashSetTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IdentityHashMapTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IdentityHashMapTest.golden.ser
new file mode 100644
index 0000000..a1d8844
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IdentityHashMapTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatCodePointExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatCodePointExceptionTest.golden.ser
new file mode 100644
index 0000000..23db2c6
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatCodePointExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatConversionExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatConversionExceptionTest.golden.ser
new file mode 100644
index 0000000..52c8817
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatConversionExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatFlagsExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatFlagsExceptionTest.golden.ser
new file mode 100644
index 0000000..b14987f
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatFlagsExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatPrecisionExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatPrecisionExceptionTest.golden.ser
new file mode 100644
index 0000000..e822aec
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatPrecisionExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatWidthExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatWidthExceptionTest.golden.ser
new file mode 100644
index 0000000..8e1a25b
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatWidthExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/InputMismatchExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/InputMismatchExceptionTest.golden.ser
new file mode 100644
index 0000000..5b76933
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/InputMismatchExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/LinkedListTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/LinkedListTest.golden.ser
new file mode 100644
index 0000000..c94e6dc
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/LinkedListTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatArgumentExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatArgumentExceptionTest.golden.ser
new file mode 100644
index 0000000..ea6797d
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatArgumentExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatWidthExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatWidthExceptionTest.golden.ser
new file mode 100644
index 0000000..19773a5
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatWidthExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ServiceConfigurationErrorTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ServiceConfigurationErrorTest.golden.ser
new file mode 100644
index 0000000..d43a064
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ServiceConfigurationErrorTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatConversionExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatConversionExceptionTest.golden.ser
new file mode 100644
index 0000000..20a59cc
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatConversionExceptionTest.golden.ser
Binary files differ
diff --git a/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatFlagsExceptionTest.golden.ser b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatFlagsExceptionTest.golden.ser
new file mode 100644
index 0000000..e4b2278
--- /dev/null
+++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatFlagsExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java b/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
new file mode 100644
index 0000000..3f883e7
--- /dev/null
+++ b/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/DriverManagerTest.java
@@ -0,0 +1,568 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.sql.tests.java.sql;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.lang.reflect.Method;
+import java.security.Permission;
+import java.sql.Connection;
+import java.sql.Driver;
+import java.sql.DriverManager;
+import java.sql.DriverPropertyInfo;
+import java.sql.SQLException;
+import java.sql.SQLPermission;
+import java.util.Enumeration;
+import java.util.Properties;
+import tests.support.Support_Exec;
+
+import junit.framework.TestCase;
+
+/**
+ * JUnit Testcase for the java.sql.DriverManager class
+ */
+public class DriverManagerTest extends TestCase {
+
+ // Set of driver names to use
+ static final String DRIVER1 = "org.apache.harmony.sql.tests.java.sql.TestHelper_Driver1";
+
+ static final String DRIVER2 = "org.apache.harmony.sql.tests.java.sql.TestHelper_Driver2";
+
+ static final String DRIVER3 = "org.apache.harmony.sql.tests.java.sql.TestHelper_Driver3";
+
+ static final String DRIVER4 = "org.apache.harmony.sql.tests.java.sql.TestHelper_Driver4";
+
+ static final String DRIVER5 = "org.apache.harmony.sql.tests.java.sql.TestHelper_Driver5";
+
+ static final String INVALIDDRIVER1 = "abc.klm.Foo";
+
+ static String[] driverNames = { DRIVER1, DRIVER2, DRIVER4, DRIVER5 };
+
+ static int numberLoaded;
+
+ static String baseURL1 = "jdbc:mikes1";
+
+ static String baseURL4 = "jdbc:mikes4";
+
+ static final String JDBC_PROPERTY = "jdbc.drivers";
+
+ static TestHelper_ClassLoader testClassLoader = new TestHelper_ClassLoader();
+
+ // Static initializer to load the drivers so that they are available to all
+ // the
+ // test methods as needed.
+ @Override
+ public void setUp() {
+ numberLoaded = loadDrivers();
+ } // end setUp()
+
+ /**
+ * Test for the method DriverManager.deregisterDriver
+ *
+ * @throws SQLException
+ */
+ public void testDeregisterDriver() throws Exception {
+ // First get one of the drivers loaded by the test
+ Driver aDriver;
+ aDriver = DriverManager.getDriver(baseURL4);
+
+ // Deregister this driver
+ DriverManager.deregisterDriver(aDriver);
+
+ assertFalse("testDeregisterDriver: Driver was not deregistered.",
+ isDriverLoaded(aDriver));
+
+ // Re-register this driver (so subsequent tests have it available)
+ DriverManager.registerDriver(aDriver);
+ assertTrue("testDeregisterDriver: Driver did not reload.",
+ isDriverLoaded(aDriver));
+
+ // Test deregistering a null driver
+ DriverManager.deregisterDriver(null);
+
+ // Test deregistering a driver which was not loaded by this test's
+ // classloader
+ // TODO - need to load a driver with a different classloader!!
+ aDriver = DriverManager.getDriver(baseURL1);
+
+ Class<?> driverClass = Class
+ .forName(
+ "org.apache.harmony.sql.tests.java.sql.TestHelper_DriverManager",
+ true, testClassLoader);
+
+ // Give the Helper class one of our drivers....
+ Class<?>[] methodClasses = { Class.forName("java.sql.Driver") };
+ Method theMethod = driverClass.getDeclaredMethod("setDriver",
+ methodClasses);
+ Object[] args = { aDriver };
+ theMethod.invoke(null, args);
+
+ // Check that the driver was not deregistered
+ assertTrue(
+ "testDeregisterDriver: Driver was incorrectly deregistered.",
+ DriverManagerTest.isDriverLoaded(aDriver));
+
+ } // end method testDeregisterDriver()
+
+ static void printClassLoader(Object theObject) {
+ Class<? extends Object> theClass = theObject.getClass();
+ ClassLoader theClassLoader = theClass.getClassLoader();
+ System.out.println("ClassLoader is: " + theClassLoader.toString()
+ + " for object: " + theObject.toString());
+ } // end method printClassLoader( Object )
+
+ static boolean isDriverLoaded(Driver theDriver) {
+ Enumeration<?> driverList = DriverManager.getDrivers();
+ while (driverList.hasMoreElements()) {
+ if ((Driver) driverList.nextElement() == theDriver) {
+ return true;
+ }
+ } // end while
+ return false;
+ } // end method isDriverLoaded( Driver )
+
+ /*
+ * Class under test for Connection getConnection(String)
+ */
+ // valid connection - data1 does not require a user and password...
+ static String validConnectionURL = "jdbc:mikes1:data1";
+
+ // invalid connection - data2 requires a user & password
+ static String invalidConnectionURL1 = "jdbc:mikes1:data2";
+
+ // invalid connection - URL is gibberish
+ static String invalidConnectionURL2 = "xyz1:abc3:456q";
+
+ // invalid connection - URL is null
+ static String invalidConnectionURL3 = null;
+
+ static String[] invalidConnectionURLs = { invalidConnectionURL2,
+ invalidConnectionURL3 };
+
+ public void testGetConnectionString() throws SQLException {
+ Connection theConnection = null;
+ // validConnection - no user & password required
+ theConnection = DriverManager.getConnection(validConnectionURL);
+ assertNotNull(theConnection);
+ assertNotNull(DriverManager.getConnection(invalidConnectionURL1));
+
+ for (String element : invalidConnectionURLs) {
+ try {
+ theConnection = DriverManager.getConnection(element);
+ fail("Should throw SQLException");
+ } catch (SQLException e) {
+ // expected
+ } // end try
+ } // end for
+ } // end method testGetConnectionString()
+
+ /**
+ * @tests java.sql.DriverManager#getConnection(String, Properties)
+ */
+ public void test_getConnection_LStringLProperties() {
+ try {
+ DriverManager.getConnection("fff", //$NON-NLS-1$
+ new Properties());
+ fail("Should throw SQLException.");
+ } catch (SQLException e) {
+ assertEquals("08001", e.getSQLState()); //$NON-NLS-1$
+ }
+
+ try {
+ DriverManager.getConnection(null, new Properties());
+ fail("Should throw SQLException.");
+ } catch (SQLException e) {
+ assertEquals("08001", e.getSQLState()); //$NON-NLS-1$
+ }
+ }
+
+ /*
+ * Class under test for Connection getConnection(String, Properties)
+ */
+ public void testGetConnectionStringProperties() throws SQLException {
+ String validURL1 = "jdbc:mikes1:data2";
+ String validuser1 = "theuser";
+ String validpassword1 = "thepassword";
+ String invalidURL1 = "xyz:abc1:foo";
+ String invalidURL2 = "jdbc:mikes1:crazyone";
+ String invalidURL3 = "";
+ String invaliduser1 = "jonny nouser";
+ String invalidpassword1 = "whizz";
+ Properties nullProps = null;
+ Properties validProps = new Properties();
+ validProps.setProperty("user", validuser1);
+ validProps.setProperty("password", validpassword1);
+ Properties invalidProps1 = new Properties();
+ invalidProps1.setProperty("user", invaliduser1);
+ invalidProps1.setProperty("password", invalidpassword1);
+ String[] invalidURLs = { null, invalidURL1, invalidURL2, invalidURL3 };
+ Properties[] invalidProps = { nullProps, invalidProps1 };
+
+ Connection theConnection = null;
+ // validConnection - user & password required
+ theConnection = DriverManager.getConnection(validURL1, validProps);
+ assertNotNull(theConnection);
+
+ // invalid Connections
+ for (int i = 0; i < invalidURLs.length; i++) {
+ theConnection = null;
+ try {
+ theConnection = DriverManager.getConnection(invalidURLs[i],
+ validProps);
+ fail("Should throw SQLException");
+ } catch (SQLException e) {
+ // expected
+ } // end try
+ } // end for
+ for (Properties invalidProp : invalidProps) {
+ assertNotNull(DriverManager.getConnection(validURL1, invalidProp));
+ }
+ } // end method testGetConnectionStringProperties()
+
+ /*
+ * Class under test for Connection getConnection(String, String, String)
+ */
+ public void testGetConnectionStringStringString() throws SQLException {
+ String validURL1 = "jdbc:mikes1:data2";
+ String validuser1 = "theuser";
+ String validpassword1 = "thepassword";
+ String invalidURL1 = "xyz:abc1:foo";
+ String invaliduser1 = "jonny nouser";
+ String invalidpassword1 = "whizz";
+ String[] invalid1 = { null, validuser1, validpassword1 };
+ String[] invalid2 = { validURL1, null, validpassword1 };
+ String[] invalid3 = { validURL1, validuser1, null };
+ String[] invalid4 = { invalidURL1, validuser1, validpassword1 };
+ String[] invalid5 = { validURL1, invaliduser1, invalidpassword1 };
+ String[] invalid6 = { validURL1, validuser1, invalidpassword1 };
+ String[][] invalids1 = { invalid1, invalid4 };
+ String[][] invalids2 = { invalid2, invalid3, invalid5, invalid6 };
+
+ Connection theConnection = null;
+ // validConnection - user & password required
+ theConnection = DriverManager.getConnection(validURL1, validuser1,
+ validpassword1);
+ assertNotNull(theConnection);
+ for (String[] theData : invalids1) {
+ theConnection = null;
+ try {
+ theConnection = DriverManager.getConnection(theData[0],
+ theData[1], theData[2]);
+ fail("Should throw SQLException.");
+ } catch (SQLException e) {
+ // expected
+ } // end try
+ } // end for
+ for (String[] theData : invalids2) {
+ assertNotNull(DriverManager.getConnection(theData[0], theData[1],
+ theData[2]));
+ }
+ } // end method testGetConnectionStringStringString()
+
+ static String validURL1 = "jdbc:mikes1";
+
+ static String validURL2 = "jdbc:mikes2";
+
+ static String invalidURL1 = "xyz:acb";
+
+ static String invalidURL2 = null;
+
+ static String[] validURLs = { validURL1, validURL2 };
+
+ static String[] invalidURLs = { invalidURL1, invalidURL2 };
+
+ static String exceptionMsg1 = "No suitable driver";
+
+ public void testGetDriver() throws SQLException {
+ for (String element : validURLs) {
+ Driver validDriver = DriverManager.getDriver(element);
+ assertNotNull(validDriver);
+ } // end for
+
+// Comment out since it depends on the drivers providered
+// for (String element : invalidURLs) {
+// System.out.println(element);
+// try {
+// DriverManager.getDriver(element);
+// fail("Should throw SQLException");
+// } catch (SQLException e) {
+// assertEquals("08001", e.getSQLState());
+// assertEquals(exceptionMsg1, e.getMessage());
+// } // end try
+// } // end for
+
+ } // end method testGetDriver()
+
+ public void testGetDrivers() {
+ // Load a driver manager
+ Enumeration<Driver> driverList = DriverManager.getDrivers();
+ int i = 0;
+ while (driverList.hasMoreElements()) {
+ Driver theDriver = driverList.nextElement();
+ assertNotNull(theDriver);
+ i++;
+ } // end while
+
+ // Check that all the drivers are in the list...
+ // There might be other drivers loaded in other classes
+ assertTrue("testGetDrivers: Don't see all the loaded drivers - ",
+ i >= numberLoaded);
+ } // end method testGetDrivers()
+
+ static int timeout1 = 25;
+
+ public void testGetLoginTimeout() {
+ DriverManager.setLoginTimeout(timeout1);
+ assertEquals(timeout1, DriverManager.getLoginTimeout());
+ } // end method testGetLoginTimeout()
+
+ @SuppressWarnings("deprecation")
+ public void testGetLogStream() {
+ assertNull(DriverManager.getLogStream());
+
+ DriverManager.setLogStream(testPrintStream);
+ assertTrue(DriverManager.getLogStream() == testPrintStream);
+
+ DriverManager.setLogStream(null);
+ } // end method testGetLogStream()
+
+ public void testGetLogWriter() {
+ assertNull(DriverManager.getLogWriter());
+
+ DriverManager.setLogWriter(testPrintWriter);
+
+ assertTrue(DriverManager.getLogWriter() == testPrintWriter);
+
+ DriverManager.setLogWriter(null);
+ } // end method testGetLogWriter()
+
+ static String testMessage = "DriverManagerTest: test message for print stream";
+
+ @SuppressWarnings("deprecation")
+ public void testPrintln() {
+ // System.out.println("testPrintln");
+ DriverManager.println(testMessage);
+
+ DriverManager.setLogWriter(testPrintWriter);
+ DriverManager.println(testMessage);
+
+ String theOutput = outputStream.toString();
+ // System.out.println("testPrintln: output= " + theOutput );
+ assertTrue(theOutput.startsWith(testMessage));
+
+ DriverManager.setLogWriter(null);
+
+ DriverManager.setLogStream(testPrintStream);
+ DriverManager.println(testMessage);
+
+ theOutput = outputStream2.toString();
+ // System.out.println("testPrintln: output= " + theOutput );
+ assertTrue(theOutput.startsWith(testMessage));
+
+ DriverManager.setLogStream(null);
+ } // end method testPrintln()
+
+ public void testRegisterDriver() throws ClassNotFoundException,
+ SQLException, IllegalAccessException, InstantiationException {
+ String EXTRA_DRIVER_NAME = "org.apache.harmony.sql.tests.java.sql.TestHelper_Driver3";
+
+ try {
+ DriverManager.registerDriver(null);
+ fail("Should throw NullPointerException.");
+ } catch (NullPointerException e) {
+ // expected
+ } // end try
+
+ Driver theDriver = null;
+ // Load another Driver that isn't in the basic set
+ Class<?> driverClass = Class.forName(EXTRA_DRIVER_NAME);
+ theDriver = (Driver) driverClass.newInstance();
+ DriverManager.registerDriver(theDriver);
+
+ assertTrue("testRegisterDriver: driver not in loaded set",
+ isDriverLoaded(theDriver));
+
+ } // end testRegisterDriver()
+
+ static int validTimeout1 = 15;
+
+ static int validTimeout2 = 0;
+
+ static int[] validTimeouts = { validTimeout1, validTimeout2 };
+
+ static int invalidTimeout1 = -10;
+
+ public void testSetLoginTimeout() {
+ for (int element : validTimeouts) {
+ DriverManager.setLoginTimeout(element);
+
+ assertEquals(element, DriverManager.getLoginTimeout());
+ } // end for
+ // Invalid timeouts
+ DriverManager.setLoginTimeout(invalidTimeout1);
+ assertEquals(invalidTimeout1, DriverManager.getLoginTimeout());
+ } // end testSetLoginTimeout()
+
+ static ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();
+
+ static PrintStream testPrintStream = new PrintStream(outputStream2);
+
+ @SuppressWarnings("deprecation")
+ public void testSetLogStream() {
+ // System.out.println("testSetLogStream");
+ DriverManager.setLogStream(testPrintStream);
+
+ assertSame(testPrintStream, DriverManager.getLogStream());
+
+ DriverManager.setLogStream(null);
+
+ assertNull(DriverManager.getLogStream());
+ } // end method testSetLogStream()
+
+ static ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+
+ static PrintWriter testPrintWriter = new PrintWriter(outputStream);
+
+ /**
+ * Test for the setLogWriter method
+ */
+ public void testSetLogWriter() {
+ // System.out.println("testSetLogWriter");
+ DriverManager.setLogWriter(testPrintWriter);
+
+ assertSame(testPrintWriter, DriverManager.getLogWriter());
+
+ DriverManager.setLogWriter(null);
+
+ assertNull("testDriverManager: Log writer not null:", DriverManager
+ .getLogWriter());
+ } // end method testSetLogWriter()
+
+ /*
+ * Method which loads a set of JDBC drivers ready for use by the various
+ * tests @return the number of drivers loaded
+ */
+ static boolean driversLoaded = false;
+
+ private static int loadDrivers() {
+ if (driversLoaded) {
+ return numberLoaded;
+ }
+ /*
+ * First define a value for the System property "jdbc.drivers" - before
+ * the DriverManager class is loaded - this property defines a set of
+ * drivers which the DriverManager will load during its initialization
+ * and which will be loaded on the System ClassLoader - unlike the ones
+ * loaded later by this method which are loaded on the Application
+ * ClassLoader.
+ */
+ int numberLoaded = 0;
+
+ for (String element : driverNames) {
+ try {
+ Class<?> driverClass = Class.forName(element);
+ assertNotNull(driverClass);
+ // System.out.println("Loaded driver - classloader = " +
+ // driverClass.getClassLoader());
+ numberLoaded++;
+ } catch (ClassNotFoundException e) {
+ System.out.println("DriverManagerTest: failed to load Driver: "
+ + element);
+ } // end try
+ } // end for
+ /*
+ * System.out.println("DriverManagerTest: number of drivers loaded: " +
+ * numberLoaded);
+ */
+ driversLoaded = true;
+ return numberLoaded;
+ } // end method loadDrivers()
+
+ /**
+ * @tests {@link java.sql.DriverManager#registerDriver(Driver)}
+ * <p/>
+ * Registers a driver for multiple times and deregisters it only once.
+ * <p/>
+ * Regression for HARMONY-4205
+ */
+ public void test_registerDriver_MultiTimes() throws SQLException {
+ int register_count = 10;
+ int deregister_count = 1;
+
+ Driver dummy = new DummyDriver();
+ DriverManager.registerDriver(new BadDummyDriver());
+ for (int i = 0; i < register_count; i++) {
+ DriverManager.registerDriver(dummy);
+ }
+ DriverManager.registerDriver(new BadDummyDriver());
+ for (int i = 0; i < deregister_count; i++) {
+ DriverManager.deregisterDriver(dummy);
+ }
+ Driver d = DriverManager.getDriver("jdbc:dummy_protocol:dummy_subname");
+ assertNotNull(d);
+ }
+
+ /**
+ * Regression for HARMONY-4303
+ */
+ public void test_initClass() throws Exception {
+ String[] arg = new String[1];
+ arg[0] = "org/apache/harmony/sql/tests/java/sql/TestMainForDriver";
+ String result = Support_Exec.execJava(arg, null, true);
+ assertEquals("", result);
+ }
+
+ private static class BadDummyDriver extends DummyDriver {
+ public boolean acceptsURL(String url) {
+ return false;
+ }
+ }
+
+ private static class DummyDriver implements Driver {
+
+ String goodurl = "jdbc:dummy_protocol:dummy_subname";
+
+ public boolean acceptsURL(String url) {
+ return url.equals(goodurl);
+ }
+
+ public Connection connect(String url, Properties info) {
+ return null;
+ }
+
+ public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) {
+ return null;
+ }
+
+ public int getMajorVersion() {
+ return 0;
+ }
+
+ public int getMinorVersion() {
+ return 0;
+ }
+
+ public boolean jdbcCompliant() {
+ return true;
+ }
+
+ }
+
+} // end class DriverManagerTest
diff --git a/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/BatchUpdateExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/BatchUpdateExceptionTest.golden.ser
new file mode 100644
index 0000000..d20eed1
--- /dev/null
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/BatchUpdateExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/DataTruncationTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/DataTruncationTest.golden.ser
new file mode 100644
index 0000000..9ecd6e1
--- /dev/null
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/DataTruncationTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLClientInfoExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLClientInfoExceptionTest.golden.ser
index f56f1e7..f56f1e7 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLClientInfoExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLClientInfoExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLDataExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLDataExceptionTest.golden.ser
index 4224495..4224495 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLDataExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLDataExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLExceptionTest.golden.ser
new file mode 100644
index 0000000..6e58660
--- /dev/null
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLFeatureNotSupportedExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLFeatureNotSupportedExceptionTest.golden.ser
index 898c835..898c835 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLFeatureNotSupportedExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLFeatureNotSupportedExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLIntegrityConstraintViolationExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLIntegrityConstraintViolationExceptionTest.golden.ser
index ed31986..ed31986 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLIntegrityConstraintViolationExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLIntegrityConstraintViolationExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLInvalidAuthorizationSpecExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLInvalidAuthorizationSpecExceptionTest.golden.ser
index 8a9fb65..8a9fb65 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLInvalidAuthorizationSpecExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLInvalidAuthorizationSpecExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLNonTransientConnectionExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLNonTransientConnectionExceptionTest.golden.ser
index b61c7ec..b61c7ec 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLNonTransientConnectionExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLNonTransientConnectionExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLNonTransientExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLNonTransientExceptionTest.golden.ser
index 386b0f9..386b0f9 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLNonTransientExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLNonTransientExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLRecoverableExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLRecoverableExceptionTest.golden.ser
index 4958ac1..4958ac1 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLRecoverableExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLRecoverableExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLSyntaxErrorExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLSyntaxErrorExceptionTest.golden.ser
index bf1a2f4..bf1a2f4 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLSyntaxErrorExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLSyntaxErrorExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTimeoutExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTimeoutExceptionTest.golden.ser
index e9407a1..e9407a1 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTimeoutExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTimeoutExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransactionRollbackExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransactionRollbackExceptionTest.golden.ser
index 0289257..0289257 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransactionRollbackExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransactionRollbackExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransientConnectionExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransientConnectionExceptionTest.golden.ser
index 4b4936a..4b4936a 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransientConnectionExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransientConnectionExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransientExceptionTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransientExceptionTest.golden.ser
index b1659f3..b1659f3 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/java/sql/SQLTransientExceptionTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLTransientExceptionTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLWarningTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLWarningTest.golden.ser
new file mode 100644
index 0000000..be37cb8
--- /dev/null
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/SQLWarningTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/TimestampTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/TimestampTest.golden.ser
new file mode 100644
index 0000000..4e51a0a
--- /dev/null
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/java/sql/TimestampTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/javax/sql/ConnectionEventTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/javax/sql/ConnectionEventTest.golden.ser
new file mode 100644
index 0000000..642e2fc
--- /dev/null
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/javax/sql/ConnectionEventTest.golden.ser
Binary files differ
diff --git a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/javax/sql/StatementEventTest.golden.ser b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/javax/sql/StatementEventTest.golden.ser
index 161ba3c..161ba3c 100644
--- a/sql/src/test/resources/serialization/org/apache/harmony/sql/tests/javax/sql/StatementEventTest.golden.ser
+++ b/sql/src/test/resources/serialization/com/android/org/apache/harmony/sql/tests/javax/sql/StatementEventTest.golden.ser
Binary files differ
diff --git a/support/src/test/java/org/apache/harmony/testframework/CharSinkTester.java b/support/src/test/java/org/apache/harmony/testframework/CharSinkTester.java
new file mode 100644
index 0000000..7a1ce25
--- /dev/null
+++ b/support/src/test/java/org/apache/harmony/testframework/CharSinkTester.java
@@ -0,0 +1,209 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.testframework;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.Random;
+
+/**
+ * Tests behaviour common to all implementations of {@link Writer}. This adapts
+ * writers that collects untransformed chars so that they may be tested.
+ */
+public abstract class CharSinkTester {
+
+ private boolean throwsExceptions = true;
+
+ /**
+ * Creates a new writer ready to receive an arbitrary number of chars. Each
+ * time this method is invoked, any previously returned writers may be
+ * discarded.
+ */
+ public abstract Writer create() throws Exception;
+
+ /**
+ * Returns the current set of chars written to the writer last returned by
+ * {@link #create}, and releases any resources held by that writer.
+ */
+ public abstract char[] getChars() throws Exception;
+
+ /**
+ * Configures whether the writer is expected to throw exceptions when an
+ * error is encountered. Classes like {@code PrintWriter} report errors via
+ * an API method instead.
+ */
+ public CharSinkTester setThrowsExceptions(boolean throwsExceptions) {
+ this.throwsExceptions = throwsExceptions;
+ return this;
+ }
+
+ public final TestSuite createTests() {
+ TestSuite result = new TestSuite();
+ result.addTest(new SinkTestCase("sinkTestNoWriting"));
+ result.addTest(new SinkTestCase("sinkTestWriteZeroChars"));
+ result.addTest(new SinkTestCase("sinkTestWriteCharByChar"));
+ result.addTest(new SinkTestCase("sinkTestWriteArray"));
+ result.addTest(new SinkTestCase("sinkTestWriteOffset"));
+ result.addTest(new SinkTestCase("sinkTestWriteLargeArray"));
+
+ if (throwsExceptions) {
+ result.addTest(new SinkTestCase("sinkTestWriteAfterClose"));
+ } else {
+ result.addTest(new SinkTestCase("sinkTestWriteAfterCloseSuppressed"));
+ }
+
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getName();
+ }
+
+ private static void assertArrayEquals(char[] expected, char[] actual) {
+ Assert.assertEquals(Arrays.toString(expected), Arrays.toString(actual));
+ }
+
+ public class SinkTestCase extends TestCase {
+
+ private SinkTestCase(String name) {
+ super(name);
+ }
+
+ public void sinkTestNoWriting() throws Exception {
+ char[] expected = new char[] { };
+
+ Writer out = create();
+ out.close();
+ assertArrayEquals(expected, getChars());
+ }
+
+ public void sinkTestWriteZeroChars() throws Exception {
+ char[] expected = new char[] { };
+
+ Writer out = create();
+ char[] a = new char[1024];
+ out.write(a, 1000, 0);
+ out.write(a, 0, 0);
+ out.write(new char[] { });
+
+ out.close();
+ assertArrayEquals(expected, getChars());
+ }
+
+ public void sinkTestWriteCharByChar() throws Exception {
+ char[] expected = "EFGCDECBA".toCharArray();
+
+ Writer out = create();
+ for (char c : expected) {
+ out.write(c);
+ }
+
+ out.close();
+ assertArrayEquals(expected, getChars());
+ }
+
+ public void sinkTestWriteArray() throws Exception {
+ char[] expected = "EFGCDECBA".toCharArray();
+
+ Writer out = create();
+
+ out.write("EF".toCharArray());
+ out.write("GCDE".toCharArray());
+ out.write("CBA".toCharArray());
+
+ out.close();
+ assertArrayEquals(expected, getChars());
+ }
+
+ public void sinkTestWriteOffset() throws Exception {
+ char[] expected = "EFGCDECBA".toCharArray();
+ Writer out = create();
+
+ char[] a = new char[1024];
+ a[1000] = 'E';
+ a[1001] = 'F';
+ out.write(a, 1000, 2);
+
+ char[] b = new char[1024];
+ b[1020] = 'G';
+ b[1021] = 'C';
+ b[1022] = 'D';
+ b[1023] = 'E';
+ out.write(b, 1020, 4);
+
+ char[] c = new char[1024];
+ c[0] = 'C';
+ c[1] = 'B';
+ c[2] = 'A';
+ out.write(c, 0, 3);
+
+ out.close();
+ assertArrayEquals(expected, getChars());
+ }
+
+ public void sinkTestWriteLargeArray() throws Exception {
+ Random dice = new Random();
+ char[] expected = new char[(1024 * 1024) + 1]; // 2 MB + 1 char
+ for (int c = 0; c < expected.length; c++) {
+ expected[c] = (char) ('A' + dice.nextInt(26));
+ }
+
+ Writer out = create();
+ out.write(expected);
+ out.close();
+
+ assertArrayEquals(expected, getChars());
+ }
+
+ public void sinkTestWriteAfterClose() throws Exception {
+ char[] expectedChars = "EF".toCharArray();
+ Writer out = create();
+
+ out.write(expectedChars);
+ out.close();
+
+ try {
+ out.write("GCDE".toCharArray());
+ fail("expected already closed exception");
+ } catch (IOException expected) {
+ }
+
+ assertArrayEquals(expectedChars, getChars());
+ }
+
+ public void sinkTestWriteAfterCloseSuppressed() throws Exception {
+ Writer out = create();
+ out.write("EF".toCharArray());
+ out.close();
+ out.write("GCDE".toCharArray()); // no exception expected!
+ }
+
+ // adding a new test? Don't forget to update createTests().
+
+ @Override
+ public String getName() {
+ return CharSinkTester.this.toString() + ":" + super.getName();
+ }
+ }
+}
diff --git a/support/src/test/java/org/apache/harmony/testframework/CharWrapperTester.java b/support/src/test/java/org/apache/harmony/testframework/CharWrapperTester.java
new file mode 100644
index 0000000..3bbebf2
--- /dev/null
+++ b/support/src/test/java/org/apache/harmony/testframework/CharWrapperTester.java
@@ -0,0 +1,258 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.testframework;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import java.io.IOException;
+import java.io.Writer;
+
+/**
+ * Tests behaviour common to wrapping and filtering implementations of {@link
+ * Writer}.
+ */
+public abstract class CharWrapperTester {
+
+ private boolean throwsExceptions = true;
+
+ /**
+ * Creates a new output stream that receives one stream of chars, optionally
+ * transforms it, and emits another stream of chars to {@code delegate}.
+ */
+ public abstract Writer create(Writer delegate) throws Exception;
+
+ /**
+ * Decodes the chars received by the delegate into their original form: the
+ * chars originally received by this wrapper.
+ */
+ public abstract char[] decode(char[] delegateChars) throws Exception;
+
+ /**
+ * Configures whether the writer is expected to throw exceptions when an
+ * error is encountered. Classes like {@code PrintWriter} report errors via
+ * an API method instead.
+ */
+ public CharWrapperTester setThrowsExceptions(boolean throwsExceptions) {
+ this.throwsExceptions = throwsExceptions;
+ return this;
+ }
+
+ public final TestSuite createTests() {
+ TestSuite result = new TestSuite();
+ result.addTest(new WrapperSinkTester()
+ .setThrowsExceptions(throwsExceptions)
+ .createTests());
+
+ if (throwsExceptions) {
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaFlush"));
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaClose"));
+ result.addTest(new WrapperTestCase("wrapperTestCloseThrows"));
+ } else {
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaFlushSuppressed"));
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaCloseSuppressed"));
+ result.addTest(new WrapperTestCase("wrapperTestCloseThrowsSuppressed"));
+ }
+
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getName();
+ }
+
+ private class WrapperSinkTester extends CharSinkTester {
+ private ClosableStringWriter delegate;
+
+ @Override
+ public Writer create() throws Exception {
+ delegate = new ClosableStringWriter();
+ return CharWrapperTester.this.create(delegate);
+ }
+
+ @Override
+ public char[] getChars() throws Exception {
+ return decode(delegate.buffer.toString().toCharArray());
+ }
+
+ @Override
+ public String toString() {
+ return CharWrapperTester.this.toString();
+ }
+ }
+
+ public class WrapperTestCase extends TestCase {
+
+ private WrapperTestCase(String name) {
+ super(name);
+ }
+
+ @Override
+ public String getName() {
+ return CharWrapperTester.this.toString() + ":" + super.getName();
+ }
+
+ public void wrapperTestFlushThrowsViaFlushSuppressed() throws Exception {
+ FailOnFlushWriter delegate = new FailOnFlushWriter();
+ Writer o = create(delegate);
+ o.write("BUT");
+ o.write("TERS");
+ o.flush();
+ assertTrue(delegate.flushed);
+ }
+
+ public void wrapperTestFlushThrowsViaCloseSuppressed() throws Exception {
+ FailOnFlushWriter delegate = new FailOnFlushWriter();
+ Writer o = create(delegate);
+ o.write("BUT");
+ o.write("TERS");
+ o.close();
+ assertTrue(delegate.flushed);
+ }
+
+ public void wrapperTestFlushThrowsViaFlush() throws Exception {
+ FailOnFlushWriter delegate = new FailOnFlushWriter();
+
+ Writer o = create(delegate);
+ try {
+ // any of these is permitted to flush
+ o.write("BUT");
+ o.write("TERS");
+ o.flush();
+ assertTrue(delegate.flushed);
+ fail("flush exception ignored");
+ } catch (IOException expected) {
+ assertEquals("Flush failed", expected.getMessage());
+ }
+ }
+
+ public void wrapperTestFlushThrowsViaClose() throws Exception {
+ FailOnFlushWriter delegate = new FailOnFlushWriter();
+
+ Writer o = create(delegate);
+ try {
+ // any of these is permitted to flush
+ o.write("BUT");
+ o.write("TERS");
+ o.close();
+ assertTrue(delegate.flushed);
+ fail("flush exception ignored");
+ } catch (IOException expected) {
+ assertEquals("Flush failed", expected.getMessage());
+ }
+
+ try {
+ o.write("BARK");
+ fail("expected already closed exception");
+ } catch (IOException expected) {
+ }
+ }
+
+ public void wrapperTestCloseThrows() throws Exception {
+ FailOnCloseWriter delegate = new FailOnCloseWriter();
+ Writer o = create(delegate);
+ try {
+ o.close();
+ assertTrue(delegate.closed);
+ fail("close exception ignored");
+ } catch (IOException expected) {
+ assertEquals("Close failed", expected.getMessage());
+ }
+ }
+
+ public void wrapperTestCloseThrowsSuppressed() throws Exception {
+ FailOnCloseWriter delegate = new FailOnCloseWriter();
+ Writer o = create(delegate);
+ o.close();
+ assertTrue(delegate.closed);
+ }
+
+ // adding a new test? Don't forget to update createTests().
+ }
+
+ /**
+ * A custom Writer that respects the closed state. The built-in StringWriter
+ * doesn't respect close(), which makes testing wrapped streams difficult.
+ */
+ private static class ClosableStringWriter extends Writer {
+ private final StringBuilder buffer = new StringBuilder();
+ private boolean closed = false;
+
+ @Override
+ public void close() throws IOException {
+ closed = true;
+ }
+
+ @Override
+ public void flush() throws IOException {
+ }
+
+ @Override
+ public void write(char[] buf, int offset, int count) throws IOException {
+ if (closed) {
+ throw new IOException();
+ }
+ buffer.append(buf, offset, count);
+ }
+ }
+
+ private static class FailOnFlushWriter extends Writer {
+ boolean flushed = false;
+ boolean closed = false;
+
+ @Override
+ public void write(char[] buf, int offset, int count) throws IOException {
+ if (closed) {
+ throw new IOException("Already closed");
+ }
+ }
+
+ @Override
+ public void close() throws IOException {
+ closed = true;
+ flush();
+ }
+
+ @Override
+ public void flush() throws IOException {
+ if (!flushed) {
+ flushed = true;
+ throw new IOException("Flush failed");
+ }
+ }
+ }
+
+ private static class FailOnCloseWriter extends Writer {
+ boolean closed = false;
+
+ @Override
+ public void flush() throws IOException {
+ }
+
+ @Override
+ public void write(char[] buf, int offset, int count) throws IOException {
+ }
+
+ @Override
+ public void close() throws IOException {
+ closed = true;
+ throw new IOException("Close failed");
+ }
+ }
+} \ No newline at end of file
diff --git a/support/src/test/java/org/apache/harmony/testframework/SinkTester.java b/support/src/test/java/org/apache/harmony/testframework/SinkTester.java
new file mode 100644
index 0000000..6c12384
--- /dev/null
+++ b/support/src/test/java/org/apache/harmony/testframework/SinkTester.java
@@ -0,0 +1,221 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.testframework;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Arrays;
+import java.util.Random;
+
+/**
+ * Tests behaviour common to all implementations of {@link OutputStream}. This
+ * adapts streams that collects untransformed bytes so that they may be tested.
+ */
+public abstract class SinkTester {
+
+ private boolean throwsExceptions = true;
+
+ /**
+ * Creates a new output stream ready to receive an arbitrary number of
+ * bytes. Each time this method is invoked, any previously returned output
+ * streams may be discarded.
+ */
+ public abstract OutputStream create() throws Exception;
+
+ /**
+ * Returns the current set of bytes written to the output stream last
+ * returned by {@link #create}, and releases any resources held by that
+ * stream.
+ */
+ public abstract byte[] getBytes() throws Exception;
+
+ /**
+ * Configures whether the stream is expected to throw exceptions when an
+ * error is encountered. Classes like {@code PrintStream} report errors via
+ * an API method instead.
+ */
+ public SinkTester setThrowsExceptions(boolean throwsExceptions) {
+ this.throwsExceptions = throwsExceptions;
+ return this;
+ }
+
+ public final TestSuite createTests() {
+ TestSuite result = new TestSuite();
+ result.addTest(new SinkTestCase("sinkTestNoWriting"));
+ result.addTest(new SinkTestCase("sinkTestWriteZeroBytes"));
+ result.addTest(new SinkTestCase("sinkTestWriteByteByByte"));
+ result.addTest(new SinkTestCase("sinkTestWriteArray"));
+ result.addTest(new SinkTestCase("sinkTestWriteOffset"));
+ result.addTest(new SinkTestCase("sinkTestWriteLargeArray"));
+
+ if (throwsExceptions) {
+ result.addTest(new SinkTestCase("sinkTestWriteAfterClose"));
+ } else {
+ result.addTest(new SinkTestCase("sinkTestWriteAfterCloseSuppressed"));
+ }
+
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getName();
+ }
+
+ private static void assertArrayEquals(byte[] expected, byte[] actual) {
+ Assert.assertEquals(Arrays.toString(expected), Arrays.toString(actual));
+ }
+
+ public class SinkTestCase extends TestCase {
+
+ private SinkTestCase(String name) {
+ super(name);
+ }
+
+ public void sinkTestNoWriting() throws Exception {
+ byte[] expected = new byte[] { };
+
+ OutputStream out = create();
+ out.close();
+ assertArrayEquals(expected, getBytes());
+ }
+
+ public void sinkTestWriteZeroBytes() throws Exception {
+ byte[] expected = new byte[] { };
+
+ OutputStream out = create();
+ byte[] a = new byte[1024];
+ out.write(a, 1000, 0);
+ out.write(a, 0, 0);
+ out.write(new byte[] { });
+
+ out.close();
+ assertArrayEquals(expected, getBytes());
+ }
+
+ public void sinkTestWriteByteByByte() throws Exception {
+ byte[] expected = new byte[] { 5, 6, 7, 3, 4, 5, 3, 2, 1 };
+
+ OutputStream out = create();
+ for (byte b : expected) {
+ out.write(b);
+ }
+
+ out.close();
+ assertArrayEquals(expected, getBytes());
+ }
+
+ public void sinkTestWriteArray() throws Exception {
+ byte[] expected = new byte[] {
+ 5, 6,
+ 7, 3, 4, 5,
+ 3, 2, 1
+ };
+
+ OutputStream out = create();
+
+ byte[] a = new byte[] { 5, 6 };
+ out.write(a);
+
+ byte[] b = new byte[] { 7, 3, 4, 5 };
+ out.write(b);
+
+ byte[] c = new byte[] { 3, 2, 1 };
+ out.write(c);
+
+ out.close();
+ assertArrayEquals(expected, getBytes());
+ }
+
+ public void sinkTestWriteOffset() throws Exception {
+ byte[] expected = new byte[] {
+ 5, 6,
+ 7, 3, 4, 5,
+ 3, 2, 1
+ };
+
+ OutputStream out = create();
+
+ byte[] a = new byte[1024];
+ a[1000] = 5;
+ a[1001] = 6;
+ out.write(a, 1000, 2);
+
+ byte[] b = new byte[1024];
+ b[1020] = 7;
+ b[1021] = 3;
+ b[1022] = 4;
+ b[1023] = 5;
+ out.write(b, 1020, 4);
+
+ byte[] c = new byte[1024];
+ c[0] = 3;
+ c[1] = 2;
+ c[2] = 1;
+ out.write(c, 0, 3);
+
+ out.close();
+ assertArrayEquals(expected, getBytes());
+ }
+
+ public void sinkTestWriteLargeArray() throws Exception {
+ byte[] expected = new byte[(1024 * 1024) + 1]; // 1 MB + 1 byte
+ new Random().nextBytes(expected);
+
+ OutputStream out = create();
+ out.write(expected);
+ out.close();
+
+ assertArrayEquals(expected, getBytes());
+ }
+
+ public void sinkTestWriteAfterClose() throws Exception {
+ byte[] expectedBytes = { 5, 6 };
+ OutputStream out = create();
+
+ out.write(expectedBytes);
+ out.close();
+
+ try {
+ out.write(new byte[] { 7, 3, 4, 5 });
+ fail("expected already closed exception");
+ } catch (IOException expected) {
+ }
+
+ assertArrayEquals(expectedBytes, getBytes());
+ }
+
+ public void sinkTestWriteAfterCloseSuppressed() throws Exception {
+ OutputStream out = create();
+ out.write(new byte[] { 5, 6 });
+ out.close();
+ out.write(new byte[] { 7, 3, 4, 5 }); // no exception expected!
+ }
+
+ // adding a new test? Don't forget to update createTests().
+
+ @Override
+ public String getName() {
+ return SinkTester.this.toString() + ":" + super.getName();
+ }
+ }
+}
diff --git a/support/src/test/java/org/apache/harmony/testframework/WrapperTester.java b/support/src/test/java/org/apache/harmony/testframework/WrapperTester.java
new file mode 100644
index 0000000..515c94f
--- /dev/null
+++ b/support/src/test/java/org/apache/harmony/testframework/WrapperTester.java
@@ -0,0 +1,243 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.testframework;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Tests behaviour common to wrapping and filtering implementations of {@link
+ * OutputStream}.
+ */
+public abstract class WrapperTester {
+
+ private boolean throwsExceptions = true;
+
+ /**
+ * Creates a new output stream that receives one stream of bytes, optionally
+ * transforms it, and emits another stream of bytes to {@code delegate}.
+ */
+ public abstract OutputStream create(OutputStream delegate) throws Exception;
+
+ /**
+ * Decodes the bytes received by the delegate into their original form: the
+ * bytes originally received by this wrapper.
+ */
+ public abstract byte[] decode(byte[] delegateBytes) throws Exception;
+
+ /**
+ * Configures whether the stream is expected to throw exceptions when an
+ * error is encountered. Classes like {@code PrintStream} report errors via
+ * an API method instead.
+ */
+ public WrapperTester setThrowsExceptions(boolean throwsExceptions) {
+ this.throwsExceptions = throwsExceptions;
+ return this;
+ }
+
+ public final TestSuite createTests() {
+ TestSuite result = new TestSuite();
+ result.addTest(new WrapperSinkTester()
+ .setThrowsExceptions(throwsExceptions)
+ .createTests());
+
+ if (throwsExceptions) {
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaFlush"));
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaClose"));
+ result.addTest(new WrapperTestCase("wrapperTestCloseThrows"));
+ } else {
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaFlushSuppressed"));
+ result.addTest(new WrapperTestCase("wrapperTestFlushThrowsViaCloseSuppressed"));
+ result.addTest(new WrapperTestCase("wrapperTestCloseThrowsSuppressed"));
+ }
+
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getName();
+ }
+
+ private class WrapperSinkTester extends SinkTester {
+ private ClosableByteArrayOutputStream delegate;
+
+ @Override
+ public OutputStream create() throws Exception {
+ delegate = new ClosableByteArrayOutputStream();
+ return WrapperTester.this.create(delegate);
+ }
+
+ @Override
+ public byte[] getBytes() throws Exception {
+ return WrapperTester.this.decode(delegate.bytesOut.toByteArray());
+ }
+
+ @Override
+ public String toString() {
+ return WrapperTester.this.toString();
+ }
+ }
+
+ public class WrapperTestCase extends TestCase {
+
+ private WrapperTestCase(String name) {
+ super(name);
+ }
+
+ @Override
+ public String getName() {
+ return WrapperTester.this.toString() + ":" + super.getName();
+ }
+
+ public void wrapperTestFlushThrowsViaFlushSuppressed() throws Exception {
+ FailOnFlushOutputStream delegate = new FailOnFlushOutputStream();
+ OutputStream o = create(delegate);
+ o.write(new byte[] { 8, 6, 7, 5 });
+ o.write(new byte[] { 3, 0, 9 });
+ o.flush();
+ assertTrue(delegate.flushed);
+ }
+
+ public void wrapperTestFlushThrowsViaCloseSuppressed() throws Exception {
+ FailOnFlushOutputStream delegate = new FailOnFlushOutputStream();
+ OutputStream o = create(delegate);
+ o.write(new byte[] { 8, 6, 7, 5 });
+ o.write(new byte[] { 3, 0, 9 });
+ o.close();
+ assertTrue(delegate.flushed);
+ }
+
+ public void wrapperTestFlushThrowsViaFlush() throws Exception {
+ FailOnFlushOutputStream delegate = new FailOnFlushOutputStream();
+
+ OutputStream o = create(delegate);
+ try {
+ // any of these is permitted to flush
+ o.write(new byte[] { 8, 6, 7, 5 });
+ o.write(new byte[] { 3, 0, 9 });
+ o.flush();
+ assertTrue(delegate.flushed);
+ fail("flush exception ignored");
+ } catch (IOException expected) {
+ assertEquals("Flush failed", expected.getMessage());
+ }
+ }
+
+ public void wrapperTestFlushThrowsViaClose() throws Exception {
+ FailOnFlushOutputStream delegate = new FailOnFlushOutputStream();
+
+ OutputStream o = create(delegate);
+ try {
+ // any of these is permitted to flush
+ o.write(new byte[] { 8, 6, 7, 5 });
+ o.write(new byte[] { 3, 0, 9 });
+ o.close();
+ assertTrue(delegate.flushed);
+ fail("flush exception ignored");
+ } catch (IOException expected) {
+ assertEquals("Flush failed", expected.getMessage());
+ }
+
+ try {
+ o.write(new byte[] { 4, 4, 5 });
+ fail("expected already closed exception");
+ } catch (IOException expected) {
+ }
+ }
+
+ public void wrapperTestCloseThrows() throws Exception {
+ FailOnCloseOutputStream delegate = new FailOnCloseOutputStream();
+ OutputStream o = create(delegate);
+ try {
+ o.close();
+ assertTrue(delegate.closed);
+ fail("close exception ignored");
+ } catch (IOException expected) {
+ assertEquals("Close failed", expected.getMessage());
+ }
+ }
+
+ public void wrapperTestCloseThrowsSuppressed() throws Exception {
+ FailOnCloseOutputStream delegate = new FailOnCloseOutputStream();
+ OutputStream o = create(delegate);
+ o.close();
+ assertTrue(delegate.closed);
+ }
+
+ // adding a new test? Don't forget to update createTests().
+ }
+
+ private static class ClosableByteArrayOutputStream extends OutputStream {
+ private final ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
+ private boolean closed = false;
+
+ @Override
+ public void close() throws IOException {
+ closed = true;
+ }
+
+ @Override
+ public void write(int oneByte) throws IOException {
+ if (closed) {
+ throw new IOException();
+ }
+ bytesOut.write(oneByte);
+ }
+ }
+
+ private static class FailOnFlushOutputStream extends OutputStream {
+ boolean flushed = false;
+ boolean closed = false;
+
+ @Override
+ public void write(int oneByte) throws IOException {
+ if (closed) {
+ throw new IOException("Already closed");
+ }
+ }
+
+ @Override
+ public void close() throws IOException {
+ closed = true;
+ flush();
+ }
+
+ @Override
+ public void flush() throws IOException {
+ if (!flushed) {
+ flushed = true;
+ throw new IOException("Flush failed");
+ }
+ }
+ }
+
+ private static class FailOnCloseOutputStream extends ByteArrayOutputStream {
+ boolean closed = false;
+
+ @Override
+ public void close() throws IOException {
+ closed = true;
+ throw new IOException("Close failed");
+ }
+ }
+}
diff --git a/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java b/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
new file mode 100644
index 0000000..44b807f
--- /dev/null
+++ b/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
@@ -0,0 +1,665 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @author Alexey V. Varlamov
+ */
+
+package org.apache.harmony.testframework.serialization;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.security.Permission;
+import java.security.PermissionCollection;
+import java.security.UnresolvedPermission;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+/**
+ * Framework for serialization testing. Subclasses only need to override
+ * getData() method and, optionally, assertDeserialized() method. The first one
+ * returns array of objects to be de/serialized in tests, and the second
+ * compares reference and deserialized objects (needed only if tested objects do
+ * not provide specific method equals()). <br>
+ * There are two modes of test run: <b>reference generation mode </b> and
+ * <b>testing mode </b>. The actual mode is selected via
+ * <b>&quot;test.mode&quot; </b> system property. The <b>testing mode </b> is
+ * the default mode. <br>
+ * To turn on the <b>reference generation mode </b>, the test.mode property
+ * should be set to value &quot;serial.reference&quot;. In this mode, no testing
+ * is performed but golden files are produced, which contain reference
+ * serialized objects. This mode should be run on a pure
+ * Implementation classes, which are targeted for compartibility. <br>
+ * The location of golden files (in both modes) is controlled via
+ * <b>&quot;RESOURCE_DIR&quot; </b> system property.
+ */
+public abstract class SerializationTest extends TestCase {
+
+ /**
+ * Property name for the testing mode.
+ */
+ public static final String MODE_KEY = "test.mode";
+
+
+ /**
+ * Testing mode.
+ */
+ public static String mode = System.getProperty(MODE_KEY);
+
+ /**
+ * Reference files generation mode switch.
+ */
+ public static final String SERIAL_REFERENCE_MODE = "serial.reference";
+
+ /**
+ * Key to a system property defining root location of golden files.
+ */
+ public static final String GOLDEN_PATH = "RESOURCE_DIR";
+
+ private static final String outputPath = System.getProperty(GOLDEN_PATH,
+ "src/test/resources/serialization");
+
+ /**
+ * Parameterized c-tor inherited from superclass.
+ */
+ public SerializationTest(String name) {
+ super(name);
+ }
+
+ /**
+ * Default c-tor inherited from superclass.
+ */
+ public SerializationTest() {
+ super();
+ }
+
+ /**
+ * Depending on testing mode, produces golden files or performs testing.
+ */
+ @Override
+ public void runBare() throws Throwable {
+
+ if (mode != null && mode.equals(SERIAL_REFERENCE_MODE)) {
+ produceGoldenFiles();
+ } else {
+ super.runBare();
+ }
+ }
+
+ /**
+ * This is the main working method of this framework. Subclasses must
+ * override it to provide actual objects for testing.
+ *
+ * @return array of objects to be de/serialized in tests.
+ */
+ protected abstract Object[] getData();
+
+ /**
+ * Tests that data objects can be serialized and deserialized without
+ * exceptions, and that deserialization really produces deeply cloned
+ * objects.
+ */
+ public void testSelf() throws Throwable {
+
+ if (this instanceof SerializableAssert) {
+ verifySelf(getData(), (SerializableAssert) this);
+ } else {
+ verifySelf(getData());
+
+ }
+ }
+
+ /**
+ * Tests that data objects can be deserialized from golden files, to verify
+ * compartibility with Reference Implementation.
+ */
+ public void testGolden() throws Throwable {
+
+ verifyGolden(this, getData());
+ }
+
+ /**
+ * Returns golden file for an object being tested.
+ *
+ * @param index array index of tested data (as returned by
+ * {@link #getData() getData()})
+ * @return corresponding golden file
+ */
+ protected File getDataFile(int index) {
+ String name = this.getClass().getName();
+ int dot = name.lastIndexOf('.');
+ String path = name.substring(0, dot).replace('.', File.separatorChar);
+ if (outputPath != null && outputPath.length() != 0) {
+ path = outputPath + File.separator + path;
+ }
+
+ return new File(path, name.substring(dot + 1) + "." + index + ".dat");
+ }
+
+ /**
+ * Working method for files generation mode. Serializes test objects
+ * returned by {@link #getData() getData()}to golden files, each object to
+ * a separate file.
+ *
+ * @throws IOException
+ */
+ protected void produceGoldenFiles() throws IOException {
+
+ String goldenPath = outputPath + File.separatorChar
+ + getClass().getName().replace('.', File.separatorChar)
+ + ".golden.";
+
+ Object[] data = getData();
+ for (int i = 0; i < data.length; i++) {
+
+ File goldenFile = new File(goldenPath + i + ".ser");
+ goldenFile.getParentFile().mkdirs();
+ goldenFile.createNewFile();
+
+ putObjectToStream(data[i], new FileOutputStream(goldenFile));
+ }
+ }
+
+ /**
+ * Serializes specified object to an output stream.
+ */
+ public static void putObjectToStream(Object obj, OutputStream os)
+ throws IOException {
+ ObjectOutputStream oos = new ObjectOutputStream(os);
+ oos.writeObject(obj);
+ oos.flush();
+ oos.close();
+ }
+
+ /**
+ * Deserializes single object from an input stream.
+ */
+ public static Serializable getObjectFromStream(InputStream is) throws IOException,
+ ClassNotFoundException {
+ ObjectInputStream ois = new ObjectInputStream(is);
+ Object result = ois.readObject();
+ ois.close();
+ return (Serializable) result;
+ }
+
+ /**
+ * Interface to compare (de)serialized objects
+ * <p/>
+ * Should be implemented if a class under test does not provide specific
+ * equals() method and it's instances should to be compared manually.
+ */
+ public interface SerializableAssert {
+
+ /**
+ * Compares deserialized and reference objects.
+ *
+ * @param initial -
+ * initial object used for creating serialized form
+ * @param deserialized -
+ * deserialized object
+ */
+ void assertDeserialized(Serializable initial, Serializable deserialized);
+ }
+
+ // default comparator for a class that has equals(Object) method
+ private final static SerializableAssert DEFAULT_COMPARATOR = new SerializableAssert() {
+ public void assertDeserialized(Serializable initial,
+ Serializable deserialized) {
+
+ Assert.assertEquals(initial, deserialized);
+ }
+ };
+
+ /**
+ * Comparator for verifying that deserialized object is the same as initial.
+ */
+ public final static SerializableAssert SAME_COMPARATOR = new SerializableAssert() {
+ public void assertDeserialized(Serializable initial,
+ Serializable deserialized) {
+
+ Assert.assertSame(initial, deserialized);
+ }
+ };
+
+ /**
+ * Comparator for java.lang.Throwable objects
+ */
+ public final static SerializableAssert THROWABLE_COMPARATOR = new SerializableAssert() {
+ public void assertDeserialized(Serializable initial, Serializable deserialized) {
+
+ Throwable initThr = (Throwable) initial;
+ Throwable dserThr = (Throwable) deserialized;
+
+ // verify class
+ Assert.assertEquals(initThr.getClass(), dserThr.getClass());
+
+ // verify message
+ Assert.assertEquals(initThr.getMessage(), dserThr.getMessage());
+
+ // verify cause
+ if (initThr.getCause() == null) {
+ Assert.assertNull(dserThr.getCause());
+ } else {
+ Assert.assertNotNull(dserThr.getCause());
+
+ THROWABLE_COMPARATOR.assertDeserialized(initThr.getCause(),
+ dserThr.getCause());
+ }
+ }
+ };
+
+ /**
+ * Comparator for java.security.PermissionCollection objects
+ */
+ public final static SerializableAssert PERMISSION_COLLECTION_COMPARATOR = new SerializableAssert() {
+ public void assertDeserialized(Serializable initial, Serializable deserialized) {
+
+ PermissionCollection initPC = (PermissionCollection) initial;
+ PermissionCollection dserPC = (PermissionCollection) deserialized;
+
+ // verify class
+ Assert.assertEquals(initPC.getClass(), dserPC.getClass());
+
+ // verify 'readOnly' field
+ Assert.assertEquals(initPC.isReadOnly(), dserPC.isReadOnly());
+
+ // verify collection of permissions
+ Collection<Permission> refCollection = new HashSet<Permission>(
+ Collections.list(initPC.elements()));
+ Collection<Permission> tstCollection = new HashSet<Permission>(
+ Collections.list(dserPC.elements()));
+
+ Assert.assertEquals(refCollection.size(), tstCollection.size());
+ int size = refCollection.size();
+ if (size > 0) {
+ ArrayList<Permission> refList = Collections.list(initPC
+ .elements());
+ ArrayList<Permission> tstList = Collections.list(dserPC
+ .elements());
+ if (refList.get(0) instanceof UnresolvedPermission
+ && tstList.get(0) instanceof UnresolvedPermission) {
+ boolean found;
+ UnresolvedPermission refPerm, tstPerm;
+ for (int i = 0; i < size; i++) {
+ found = false;
+ refPerm = (UnresolvedPermission) refList.get(i);
+ for (int j = 0; j < size; j++) {
+ tstPerm = (UnresolvedPermission) tstList.get(i);
+ if (equalsUnresolvedPermission(refPerm, tstPerm)) {
+ found = true;
+ break;
+ }
+ }
+
+ Assert.assertTrue(found);
+ }
+ } else {
+ Assert.assertEquals(refCollection, tstCollection);
+ }
+ }
+ }
+
+ /*
+ * check whether the given two UnresolvedPermission objects equal to
+ * each other
+ */
+ private boolean equalsUnresolvedPermission(UnresolvedPermission up1,
+ UnresolvedPermission up2) {
+ java.security.cert.Certificate[] certs = up1.getUnresolvedCerts();
+ if (certs != null && certs.length == 0) {
+ if (null == up2.getUnresolvedCerts()) {
+ if (up1.getName().equals(up2.getName())) {
+ String up1Name = up1.getUnresolvedName();
+ String up2Name = up2.getUnresolvedName();
+ if (up1Name == null ? up2Name == null : up1Name
+ .equals(up2Name)) {
+ String up1Actions = up1.getUnresolvedActions();
+ String up2Actions = up2.getUnresolvedActions();
+ return up1Actions == null ? up2Actions == null
+ : up1Actions.equals(up2Actions);
+ }
+ }
+ }
+ return false;
+ }
+ return up1.equals(up2);
+ }
+ };
+
+ /**
+ * Comparator for java.security.UnresolvedPermission objects
+ */
+ public final static SerializableAssert UNRESOLVED_PERMISSION_COMPARATOR = new SerializableAssert() {
+ public void assertDeserialized(Serializable initial,
+ Serializable deserialized) {
+ UnresolvedPermission initPerm = (UnresolvedPermission) initial;
+ UnresolvedPermission dserPerm = (UnresolvedPermission) deserialized;
+ java.security.cert.Certificate[] certs = initPerm
+ .getUnresolvedCerts();
+ if (certs != null && certs.length == 0) {
+ Assert.assertEquals(initPerm.getUnresolvedType(), dserPerm
+ .getUnresolvedType());
+ Assert.assertEquals(initPerm.getUnresolvedName(), dserPerm
+ .getUnresolvedName());
+ Assert.assertEquals(initPerm.getUnresolvedActions(), dserPerm
+ .getUnresolvedActions());
+ Assert.assertNull(dserPerm.getUnresolvedCerts());
+ } else {
+ Assert.assertEquals(initPerm, dserPerm);
+ }
+ }
+ };
+
+ /**
+ * Returns <code>comparator</code> for provided serializable
+ * <code>object</code>.
+ * <p/>
+ * The <code>comparator</code> is searched in the following order: <br>-
+ * if <code>test</code> implements SerializableAssert interface then it is
+ * selected as </code>comparator</code>.<br>- if passed <code>object</code>
+ * has class in its classes hierarchy that overrides <code>equals(Object)</code>
+ * method then <code>DEFAULT_COMPARATOR</code> is selected.<br> - the
+ * method tries to select one of known comparators basing on <code>object's</code>
+ * class,for example, if passed <code>object</code> is instance of
+ * java.lang.Throwable then <code>THROWABLE_COMPARATOR</code> is used.<br>-
+ * otherwise RuntimeException is thrown
+ *
+ * @param test -
+ * test case
+ * @param object -
+ * object to be compared
+ * @return object's comparator
+ */
+ public static SerializableAssert defineComparator(TestCase test,
+ Object object) throws Exception {
+
+ if (test instanceof SerializableAssert) {
+ return (SerializableAssert) test;
+ }
+
+ Method m = object.getClass().getMethod("equals",
+ new Class[] { Object.class });
+
+ if (m.getDeclaringClass() != Object.class) {
+ if (object instanceof UnresolvedPermission) {
+ // object is an instance of UnresolvedPermission, use
+ // UNRESOLVED_PERMISSION_COMPARATOR
+ return UNRESOLVED_PERMISSION_COMPARATOR;
+ }
+ // one of classes overrides Object.equals(Object) method
+ // use default comparator
+ return DEFAULT_COMPARATOR;
+ }
+
+ // TODO use generics to detect comparator
+ // instead of 'instanceof' for the first element
+ if (object instanceof java.lang.Throwable) {
+ return THROWABLE_COMPARATOR;
+ } else if (object instanceof java.security.PermissionCollection) {
+ return PERMISSION_COLLECTION_COMPARATOR;
+ }
+
+ throw new RuntimeException("Failed to detect comparator");
+ }
+
+ /**
+ * Verifies that object deserialized from golden file correctly.
+ * <p/>
+ * The method invokes <br>
+ * verifyGolden(test, object, defineComparator(test, object));
+ *
+ * @param test -
+ * test case
+ * @param object -
+ * to be compared
+ */
+ public static void verifyGolden(TestCase test, Object object)
+ throws Exception {
+
+ verifyGolden(test, object, defineComparator(test, object));
+ }
+
+ /**
+ * Verifies that object deserialized from golden file correctly.
+ * <p/>
+ * The method loads "<code>testName</code>.golden.ser" resource file
+ * from "<module root>/src/test/resources/serialization/<code>testPackage</code>"
+ * folder, reads an object from the loaded file and compares it with
+ * <code>object</code> using specified <code>comparator</code>.
+ *
+ * @param test- test case
+ * @param object- to be compared
+ * @param comparator -
+ * for comparing (de)serialized objects
+ */
+ public static void verifyGolden(TestCase test, Object object,
+ SerializableAssert comparator) throws Exception {
+
+ Assert.assertNotNull("Null comparator", comparator);
+
+ Serializable deserialized = getObject(test, ".golden.ser");
+
+ comparator.assertDeserialized((Serializable) object, deserialized);
+ }
+
+ /**
+ * Verifies that objects from array deserialized from golden files
+ * correctly.
+ * <p/>
+ * The method invokes <br>
+ * verifyGolden(test, objects, defineComparator(test, object[0]));
+ *
+ * @param test -
+ * test case
+ * @param objects -
+ * array of objects to be compared
+ */
+ public static void verifyGolden(TestCase test, Object[] objects)
+ throws Exception {
+
+ Assert.assertFalse("Empty array", objects.length == 0);
+ verifyGolden(test, objects, defineComparator(test, objects[0]));
+ }
+
+ /**
+ * Verifies that objects from array deserialized from golden files
+ * correctly.
+ * <p/>
+ * The method loads "<code>testName</code>.golden.<code>N</code>.ser"
+ * resource files from "<module root>/src/test/resources/serialization/<code>testPackage</code>"
+ * folder, from each loaded file it reads an object from and compares it
+ * with corresponding object in provided array (i.e. <code>objects[N]</code>)
+ * using specified <code>comparator</code>. (<code>N</code> is index
+ * in object's array.)
+ *
+ * @param test- test case
+ * @param objects -
+ * array of objects to be compared
+ * @param comparator -
+ * for comparing (de)serialized objects
+ */
+ public static void verifyGolden(TestCase test, Object[] objects,
+ SerializableAssert comparator) throws Exception {
+
+ Assert.assertFalse("Empty array", objects.length == 0);
+ for (int i = 0; i < objects.length; i++) {
+ Serializable deserialized = getObject(test, ".golden." + i + ".ser");
+ comparator.assertDeserialized((Serializable) objects[i],
+ deserialized);
+ }
+ }
+
+ /**
+ * Verifies that object can be smoothly serialized/deserialized.
+ * <p/>
+ * The method invokes <br>
+ * verifySelf(object, defineComparator(null, object));
+ *
+ * @param object -
+ * to be serialized/deserialized
+ */
+ public static void verifySelf(Object object)
+ throws Exception {
+
+ verifySelf(object, defineComparator(null, object));
+ }
+
+ /**
+ * Verifies that object can be smoothly serialized/deserialized.
+ * <p/>
+ * The method serialize/deserialize <code>object</code> and compare it
+ * with initial <code>object</code>.
+ *
+ * @param object -
+ * object to be serialized/deserialized
+ * @param comparator -
+ * for comparing serialized/deserialized object with initial
+ * object
+ */
+ public static void verifySelf(Object object, SerializableAssert comparator)
+ throws Exception {
+
+ Serializable initial = (Serializable) object;
+
+ comparator.assertDeserialized(initial, copySerializable(initial));
+ }
+
+ /**
+ * Verifies that that objects from array can be smoothly
+ * serialized/deserialized.
+ * <p/>
+ * The method invokes <br>
+ * verifySelf(objects, defineComparator(null, object[0]));
+ *
+ * @param objects -
+ * array of objects to be serialized/deserialized
+ */
+ public static void verifySelf(Object[] objects)
+ throws Exception {
+
+ Assert.assertFalse("Empty array", objects.length == 0);
+ verifySelf(objects, defineComparator(null, objects[0]));
+ }
+
+ /**
+ * Verifies that that objects from array can be smoothly
+ * serialized/deserialized.
+ * <p/>
+ * The method serialize/deserialize each object in <code>objects</code>
+ * array and compare it with initial object.
+ *
+ * @param objects -
+ * array of objects to be serialized/deserialized
+ * @param comparator -
+ * for comparing serialized/deserialized object with initial
+ * object
+ */
+ public static void verifySelf(Object[] objects, SerializableAssert comparator)
+ throws Exception {
+
+ Assert.assertFalse("Empty array", objects.length == 0);
+ for (Object entry : objects) {
+ verifySelf(entry, comparator);
+ }
+ }
+
+ private static Serializable getObject(TestCase test, String toAppend)
+ throws Exception {
+
+ StringBuilder path = new StringBuilder("/serialization");
+
+ path.append(File.separatorChar);
+ path.append(test.getClass().getName().replace('.', File.separatorChar));
+ path.append(toAppend);
+
+ InputStream in = SerializationTest.class.getResourceAsStream(path.toString());
+
+ Assert.assertNotNull("Failed to load serialization resource file: "
+ + path, in);
+
+ return getObjectFromStream(in);
+ }
+
+ /**
+ * Creates golden file.
+ * <p/>
+ * The folder for created file is: <code>root + test's package name</code>.
+ * The file name is: <code>test's name + "golden.ser"</code>
+ *
+ * @param root -
+ * root directory for serialization resource files
+ * @param test -
+ * test case
+ * @param object -
+ * object to be serialized
+ * @throws IOException -
+ * if I/O error
+ */
+ public static void createGoldenFile(String root, TestCase test,
+ Object object) throws IOException {
+
+ String goldenPath = test.getClass().getName().replace('.',
+ File.separatorChar)
+ + ".golden.ser";
+
+ if (root != null) {
+ goldenPath = root + File.separatorChar + goldenPath;
+ }
+
+
+ File goldenFile = new File(goldenPath);
+ goldenFile.getParentFile().mkdirs();
+ goldenFile.createNewFile();
+
+ putObjectToStream(object, new FileOutputStream(goldenFile));
+
+ // don't forget to remove it from test case after using
+ Assert.fail("Generating golden file.\nGolden file name:"
+ + goldenFile.getAbsolutePath());
+ }
+
+ /**
+ * Copies an object by serializing/deserializing it.
+ *
+ * @param initial -
+ * an object to be copied
+ * @return copy of provided object
+ */
+ public static Serializable copySerializable(Serializable initial)
+ throws IOException, ClassNotFoundException {
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ putObjectToStream(initial, out);
+ ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+
+ return getObjectFromStream(in);
+ }
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/AbstractService.java b/support/src/test/java/tests/resources/ServiceLoader/AbstractService.java
new file mode 100644
index 0000000..bff9660
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/AbstractService.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public abstract class AbstractService {
+ /**
+ * @return name of the class
+ */
+ public abstract String myNameIs();
+
+ /**
+ * test of internal interface
+ */
+ public interface InternalService {
+ /**
+ * @return name
+ */
+ public String myInternalNameIs();
+ }
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/Service.java b/support/src/test/java/tests/resources/ServiceLoader/Service.java
new file mode 100644
index 0000000..c36fdb3
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/Service.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface Service {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceDuplicateIn2File.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceDuplicateIn2File.java
new file mode 100644
index 0000000..b09bc81
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceDuplicateIn2File.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceDuplicateIn2File {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceFinalClass.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceFinalClass.java
new file mode 100644
index 0000000..767f016
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceFinalClass.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public final class ServiceFinalClass {
+ /**
+ * @return name of the class
+ */
+ @SuppressWarnings("nls")
+ public String myNameIs() {
+ return "ServiceFinalClass";
+ }
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceForAllCommentTest.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceForAllCommentTest.java
new file mode 100644
index 0000000..e982b3f
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceForAllCommentTest.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceForAllCommentTest {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceForEmptyTest.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceForEmptyTest.java
new file mode 100644
index 0000000..d777293
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceForEmptyTest.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceForEmptyTest {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceForIllegalNameTest.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceForIllegalNameTest.java
new file mode 100644
index 0000000..4e9cde7
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceForIllegalNameTest.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceForIllegalNameTest {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceForWrongNameTest.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceForWrongNameTest.java
new file mode 100644
index 0000000..910faec
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceForWrongNameTest.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceForWrongNameTest {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceIn2File.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceIn2File.java
new file mode 100644
index 0000000..49f19d7
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceIn2File.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceIn2File {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceIn2FileWithEmptyConfig.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceIn2FileWithEmptyConfig.java
new file mode 100644
index 0000000..ad63606
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceIn2FileWithEmptyConfig.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceIn2FileWithEmptyConfig {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceMoreThanOne.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceMoreThanOne.java
new file mode 100644
index 0000000..895972e
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceMoreThanOne.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public class ServiceMoreThanOne {
+ /**
+ * @return name of the class
+ */
+ @SuppressWarnings("nls")
+ public String myNameIs() {
+ return "ServiceMoreThanOne";
+ }
+}
diff --git a/support/src/test/java/tests/resources/ServiceLoader/ServiceWithDuplicateSons.java b/support/src/test/java/tests/resources/ServiceLoader/ServiceWithDuplicateSons.java
new file mode 100644
index 0000000..a299931
--- /dev/null
+++ b/support/src/test/java/tests/resources/ServiceLoader/ServiceWithDuplicateSons.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.ServiceLoader;
+
+/**
+ * A class just for test cases of java.util.ServiceLoader.
+ */
+public interface ServiceWithDuplicateSons {
+ /**
+ * @return name of the class
+ */
+ public String myNameIs();
+}
diff --git a/support/src/test/java/tests/support/Streams.java b/support/src/test/java/tests/support/Streams.java
new file mode 100644
index 0000000..f9f5c77
--- /dev/null
+++ b/support/src/test/java/tests/support/Streams.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.io.StringWriter;
+
+/**
+ * Utility methods for working with byte and character streams.
+ */
+public class Streams {
+ private Streams() {
+ }
+
+ /**
+ * Drains the stream into a byte array and returns the result.
+ */
+ public static byte[] streamToBytes(InputStream source) throws IOException {
+ byte[] buffer = new byte[1024];
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ int count;
+ while ((count = source.read(buffer)) != -1) {
+ out.write(buffer, 0, count);
+ }
+ return out.toByteArray();
+ }
+
+ /**
+ * Drains the stream into a string and returns the result.
+ */
+ public static String streamToString(Reader fileReader) throws IOException {
+ char[] buffer = new char[1024];
+ StringWriter out = new StringWriter();
+ int count;
+ while ((count = fileReader.read(buffer)) != -1) {
+ out.write(buffer, 0, count);
+ }
+ return out.toString();
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_AvailTest.java b/support/src/test/java/tests/support/Support_AvailTest.java
new file mode 100644
index 0000000..b07b461
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_AvailTest.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.FileDescriptor;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class Support_AvailTest {
+
+ public static void main(String[] args) {
+ // This test is for:
+
+ // This program accepts from stdin a
+ // string of the form '<int1> <int2> <data>'
+ // where data is some bytes, <int1> is the length of the whole string
+ // and <int2> is the length in bytes of <data> (all bytes until the end
+ // of
+ // the input)
+
+ // If the string is formatted correctly, and the available method works
+ // the string "true" will be sent to stdout, otherwise "false"
+ String output = "true";
+ try {
+ FileInputStream myin = new FileInputStream(FileDescriptor.in);
+ StringBuffer input = new StringBuffer("");
+
+ try {
+ Thread.sleep(500);
+ } catch (Exception sleepException) {
+ }
+
+ int real = myin.available();
+ int expected;
+ int c = 0;
+ while (true) {
+ c = myin.read();
+ if (c == ' ' || c == -1) {
+ break;
+ }
+ input.append((char) c);
+ }
+ expected = Integer.parseInt(input.toString());
+ // Verify correct value at start of read
+ if (real != expected) {
+ output = "Failed avail test1 - " + real + "!=" + expected;
+ }
+
+ c = 0;
+ input = new StringBuffer("");
+ while (true) {
+ c = myin.read();
+ if (c == ' ' || c == -1) {
+ break;
+ }
+ input.append((char) c);
+ }
+ expected = Integer.parseInt(input.toString());
+ real = myin.available();
+ // Verify value at middle of reading
+ // This test doesn't work on Windows, at present
+ // if(real != expected) output = "Failed avail test2 - " + real +
+ // "!=" + expected;
+
+ // Verify value at end of reading
+ // loop to EOF, then check if available = 0
+ // replace this:
+ for (int i = 0; i < 5; i++) {
+ myin.read();
+ // with:
+ // while(myin.read() != -1);
+ }
+
+ // The current for loop reads exactly to the end
+ // of the data, but is dependent on knowing the length of the data
+ // sent to it, which isn't nice
+
+ expected = 0;
+ real = myin.available();
+ if (real != 0) {
+ output = "Failed avail test3 - " + real + "!=" + expected;
+ }
+
+ } catch (IOException e) {
+ output = "IOException during available() testing";
+ }
+
+ try {
+ FileOutputStream myout = new FileOutputStream(FileDescriptor.out);
+ myout.write(output.getBytes());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_CollectionTest.java b/support/src/test/java/tests/support/Support_CollectionTest.java
new file mode 100644
index 0000000..328405f
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_CollectionTest.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.util.Collection;
+import java.util.TreeSet;
+
+/**
+ * @tests java.util.Collection
+ */
+public class Support_CollectionTest extends junit.framework.TestCase {
+
+ Collection<Integer> col; // must contain the Integers 0 to 99
+
+ public Support_CollectionTest(String p1) {
+ super(p1);
+ }
+
+ public Support_CollectionTest(String p1, Collection<Integer> c) {
+ super(p1);
+ col = c;
+ }
+
+ @Override
+ public void runTest() {
+ new Support_UnmodifiableCollectionTest("", col).runTest();
+
+ // setup
+ Collection<Integer> myCollection = new TreeSet<Integer>();
+ myCollection.add(new Integer(101));
+ myCollection.add(new Integer(102));
+ myCollection.add(new Integer(103));
+
+ // add
+ assertTrue("CollectionTest - a) add did not work", col.add(new Integer(
+ 101)));
+ assertTrue("CollectionTest - b) add did not work", col
+ .contains(new Integer(101)));
+
+ // remove
+ assertTrue("CollectionTest - a) remove did not work", col
+ .remove(new Integer(101)));
+ assertTrue("CollectionTest - b) remove did not work", !col
+ .contains(new Integer(101)));
+
+ // addAll
+ assertTrue("CollectionTest - a) addAll failed", col
+ .addAll(myCollection));
+ assertTrue("CollectionTest - b) addAll failed", col
+ .containsAll(myCollection));
+
+ // containsAll
+ assertTrue("CollectionTest - a) containsAll failed", col
+ .containsAll(myCollection));
+ col.remove(new Integer(101));
+ assertTrue("CollectionTest - b) containsAll failed", !col
+ .containsAll(myCollection));
+
+ // removeAll
+ assertTrue("CollectionTest - a) removeAll failed", col
+ .removeAll(myCollection));
+ assertTrue("CollectionTest - b) removeAll failed", !col
+ .removeAll(myCollection)); // should not change the colletion
+ // the 2nd time around
+ assertTrue("CollectionTest - c) removeAll failed", !col
+ .contains(new Integer(102)));
+ assertTrue("CollectionTest - d) removeAll failed", !col
+ .contains(new Integer(103)));
+
+ // retianAll
+ col.addAll(myCollection);
+ assertTrue("CollectionTest - a) retainAll failed", col
+ .retainAll(myCollection));
+ assertTrue("CollectionTest - b) retainAll failed", !col
+ .retainAll(myCollection)); // should not change the colletion
+ // the 2nd time around
+ assertTrue("CollectionTest - c) retainAll failed", col
+ .containsAll(myCollection));
+ assertTrue("CollectionTest - d) retainAll failed", !col
+ .contains(new Integer(0)));
+ assertTrue("CollectionTest - e) retainAll failed", !col
+ .contains(new Integer(50)));
+
+ // clear
+ col.clear();
+ assertTrue("CollectionTest - a) clear failed", col.isEmpty());
+ assertTrue("CollectionTest - b) clear failed", !col
+ .contains(new Integer(101)));
+
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_Configuration.java b/support/src/test/java/tests/support/Support_Configuration.java
new file mode 100644
index 0000000..1b253a6
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_Configuration.java
@@ -0,0 +1,340 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Hashtable;
+
+/**
+ * This class is responsible for providing the dynamic names and addresses for
+ * the java.net classes. There are two directories which need to be placed on an
+ * ftp server and an http server which should accompany this source. The
+ * ftp-files have to be placed on an ftp server and have to be the root of a
+ * user jcltest with password jclpass. The testres files must be available on an
+ * HTTP server and the name and location can be configured below.
+ */
+public class Support_Configuration {
+
+ public static String DomainAddress = "apache.org";
+
+ public static String WebName = "jcltest.";
+
+ public static final String HomeAddress;
+
+ public static String TestResourcesDir = "/testres231";
+
+ public static final String TestResources;
+
+ public static String HomeAddressResponse = "HTTP/1.1 200 OK";
+
+ public static String HomeAddressSoftware = "Jetty(6.0.x)";
+
+ public static String ProxyServerTestHost = "jcltest.apache.org";
+
+ public static String SocksServerTestHost = "jcltest.apache.org";
+
+ public static int SocksServerTestPort = 1080;
+
+ // Need an IP address that does not resolve to a host name
+ public static String UnresolvedIP = "192.168.99.99";
+
+ // the bytes for an address which represents an address which is not
+ // one of the addresses for any of our machines on which tests will run
+ // it is used to verify we get the expected error when we try to bind
+ // to an address that is not one of the machines local addresses
+ public static byte nonLocalAddressBytes[] = { 1, 0, 0, 0 };
+
+ public static String InetTestIP = "127.0.0.1";
+
+ public static String InetTestIP2 = "127.0.0.1";
+
+ public static final String HomeAddress6 = "jcltest6.apache.org";
+
+ public static String ProxyServerTestHostIPv6 = "jcltest6.apache.org";
+
+ // ip address that resolves to a host that is not present on the local
+ // network
+ // this allows us to check the timeouts for connect
+ public static String ResolvedNotExistingHost = "9.26.194.72";
+
+ /**
+ * You can compute the hash code with the following code: try { String name =
+ * "whatever.xxx.com";
+ * System.out.println(InetAddress.getByName(name).hashCode()); } catch
+ * (UnknownHostException e) {}
+ */
+
+ public static String FTPTestAddress = "jcltest:jclpass@localhost";
+
+ public static String URLConnectionLastModifiedString = "Mon, 14 Jun 1999 21:06:22 GMT";
+
+ public static long URLConnectionLastModified = 929394382000L;
+
+ public static boolean RunCommTests = false;
+
+ public static String Port1 = "COM1";
+
+ public static String Port2 = "COM2";
+
+ static Hashtable<String, String> props = null;
+
+ static {
+ loadProperties();
+ HomeAddress = WebName + DomainAddress;
+ TestResources = HomeAddress + TestResourcesDir;
+ }
+
+ static void loadProperties() {
+ InputStream in = null;
+ Hashtable<String, String> props = new Hashtable<String, String>();
+
+ String iniName = System.getProperty("test.ini.file", "JCLAuto.ini");
+ if (System.getProperty("test.comm") != null) {
+ RunCommTests = true;
+ }
+
+ try {
+ in = new FileInputStream(iniName);
+ } catch (IOException e) {
+ } catch (Exception e) {
+ System.out.println("SupportConfiguration.loadProperties()");
+ System.out.println(e);
+ e.printStackTrace();
+ }
+ if (in == null) {
+ try {
+ Class<?> cl = Class
+ .forName("com.ibm.support.Support_Configuration");
+ in = cl.getResourceAsStream(iniName);
+ } catch (ClassNotFoundException e) {
+ }
+ }
+ try {
+ if (in != null) {
+ load(in, props);
+ }
+ } catch (IOException e) {
+ }
+ if (props.size() == 0) {
+ return;
+ }
+ String value;
+
+ value = props.get("DomainAddress");
+ if (value != null) {
+ DomainAddress = value;
+ }
+
+ value = props.get("WebName");
+ if (value != null) {
+ WebName = value;
+ }
+
+ value = props.get("TestResourcesDir");
+ if (value != null) {
+ TestResourcesDir = value;
+ }
+ value = props.get("HomeAddressResponse");
+ if (value != null) {
+ HomeAddressResponse = value;
+ }
+
+ value = props.get("HomeAddressSoftware");
+ if (value != null) {
+ HomeAddressSoftware = value;
+ }
+
+ value = props.get("ProxyServerTestHost");
+ if (value != null) {
+ ProxyServerTestHost = value;
+ }
+
+ value = props.get("SocksServerTestHost");
+ if (value != null) {
+ SocksServerTestHost = value;
+ }
+
+ value = props.get("SocksServerTestPort");
+ if (value != null) {
+ SocksServerTestPort = Integer.parseInt(value);
+ }
+
+ value = props.get("UnresolvedIP");
+ if (value != null) {
+ UnresolvedIP = value;
+ }
+
+ value = props.get("FTPTestAddress");
+ if (value != null) {
+ FTPTestAddress = value;
+ }
+
+ value = props.get("URLConnectionLastModifiedString");
+ if (value != null) {
+ URLConnectionLastModifiedString = value;
+ }
+
+ value = props.get("URLConnectionLastModified");
+ if (value != null) {
+ URLConnectionLastModified = Long.parseLong(value);
+ }
+
+ value = props.get("Port1");
+ if (value != null) {
+ Port1 = value;
+ }
+
+ value = props.get("Port2");
+ if (value != null) {
+ Port2 = value;
+ }
+
+ value = props.get("ProxyServerTestHostIPv6");
+ if (value != null) {
+ ProxyServerTestHostIPv6 = value;
+ }
+
+ value = props.get("ResolvedNotExistingHost");
+ if (value != null) {
+ ResolvedNotExistingHost = value;
+ }
+
+ }
+
+ static void load(InputStream in, Hashtable<String, String> result) throws IOException {
+ int NONE = 0, SLASH = 1, UNICODE = 2, CONTINUE = 3, DONE = 4, IGNORE = 5;
+ int mode = NONE, unicode = 0, count = 0, nextChar;
+ StringBuffer key = new StringBuffer(), value = new StringBuffer(), buffer = key;
+ boolean firstChar = true;
+
+ while ((nextChar = in.read()) != -1) {
+ if (mode == UNICODE) {
+ int digit = Character.digit((char) nextChar, 16);
+ if (digit >= 0) {
+ unicode = (unicode << 4) + digit;
+ if (++count < 4) {
+ continue;
+ }
+ }
+ mode = NONE;
+ buffer.append((char) unicode);
+ if (nextChar != '\n') {
+ continue;
+ }
+ }
+ if (mode == SLASH) {
+ mode = NONE;
+ switch (nextChar) {
+ case '\r':
+ mode = CONTINUE; // Look for a following \n
+ continue;
+ case '\n':
+ mode = IGNORE; // Ignore whitespace on the next line
+ continue;
+ case 'b':
+ nextChar = '\b';
+ break;
+ case 'f':
+ nextChar = '\f';
+ break;
+ case 'n':
+ nextChar = '\n';
+ break;
+ case 'r':
+ nextChar = '\r';
+ break;
+ case 't':
+ nextChar = '\t';
+ break;
+ case 'u':
+ mode = UNICODE;
+ unicode = count = 0;
+ continue;
+ }
+ } else {
+ switch (nextChar) {
+ case '#':
+ case '!':
+ if (firstChar) {
+ while ((nextChar = in.read()) != -1) {
+ if (nextChar == '\r' || nextChar == '\n') {
+ break;
+ }
+ }
+ continue;
+ }
+ break;
+ case '\n':
+ if (mode == CONTINUE) { // Part of a \r\n sequence
+ mode = IGNORE; // Ignore whitespace on the next line
+ continue;
+ }
+ // fall into the next case
+ case '\r':
+ mode = NONE;
+ firstChar = true;
+ if (key.length() > 0 || buffer == value) {
+ result.put(key.toString(), value.toString());
+ }
+ key.setLength(0);
+ value.setLength(0);
+ buffer = key;
+ continue;
+ case '\\':
+ mode = SLASH;
+ continue;
+ case ':':
+ case '=':
+ if (buffer == key) {
+ buffer = value;
+ continue;
+ }
+ break;
+ }
+ char c = (char) nextChar;
+ if ((c >= 0x1c && c <= 0x20) || (c >= 0x9 && c <= 0xd)) {
+ if (mode == CONTINUE) {
+ mode = IGNORE;
+ }
+ if (buffer.length() == 0 || mode == IGNORE) {
+ continue;
+ }
+ if (buffer == key) {
+ mode = DONE;
+ continue;
+ }
+ }
+ if (mode == IGNORE || mode == CONTINUE) {
+ mode = NONE;
+ }
+ }
+ firstChar = false;
+ if (mode == DONE) {
+ buffer = value;
+ mode = NONE;
+ }
+ buffer.append((char) nextChar);
+ }
+ if (key.length() > 0 || buffer == value) {
+ result.put(key.toString(), value.toString());
+ }
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_DeleteOnExitTest.java b/support/src/test/java/tests/support/Support_DeleteOnExitTest.java
new file mode 100644
index 0000000..7ad3f20
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_DeleteOnExitTest.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.File;
+
+public class Support_DeleteOnExitTest {
+
+ public static void main(java.lang.String[] args) {
+ for (int i = 0; i < args.length; i++) {
+ File f1 = new File(args[i]);
+ f1.deleteOnExit();
+ }
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_Exec.java b/support/src/test/java/tests/support/Support_Exec.java
new file mode 100644
index 0000000..3a454d2
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_Exec.java
@@ -0,0 +1,288 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import junit.framework.TestCase;
+
+public class Support_Exec extends TestCase {
+
+ /**
+ * Exec java returns the exitCode, and stdOut and stdErr as strings
+ */
+ public static Object[] runJava(List<String> args, String[] envp,
+ boolean displayOutput)
+ throws IOException, InterruptedException {
+ String executable = System.getProperty("java.home");
+ if (!executable.endsWith(File.separator)) {
+ executable += File.separator;
+ }
+ executable += "bin" + File.separator + "java";
+
+ // parse hy.test.vmargs if was given
+ String testVMArgs = System.getProperty("hy.test.vmargs");
+ if (testVMArgs != null) {
+ StringTokenizer st = new StringTokenizer(testVMArgs, " ");
+ int i = 0; // add at the beginning but maintain order
+ while (st.hasMoreTokens()) {
+ args.add(i++, st.nextToken());
+ }
+ }
+
+ return run(executable, args, envp, displayOutput);
+ }
+
+ /**
+ * Exec command returns the exitCode, and stdOut and stdErr as strings
+ */
+ public static Object[] run(String command, List<String> args, String[] envp,
+ boolean displayOutput)
+ throws IOException, InterruptedException {
+ Object[] arr = exec(command, args, envp, displayOutput);
+
+ Process proc = (Process) arr[0];
+ StringBuilder output = new StringBuilder();
+ InputStream in = proc.getInputStream();
+ int result;
+ byte[] bytes = new byte[1024];
+
+ while ((result = in.read(bytes)) != -1) {
+ output.append(new String(bytes, 0, result));
+ if (displayOutput) {
+ System.out.write(bytes, 0, result);
+ }
+ }
+
+ in.close();
+ proc.waitFor();
+ int exitCode = proc.exitValue();
+ proc.destroy();
+ return new Object[] {
+ Integer.valueOf(exitCode),
+ output.toString(),
+ ((StringBuilder) arr[1]).toString()
+ };
+ }
+
+ /**
+ * This function returns the output of the process as a string
+ */
+ public static String execJava(String[] args, String[] classpath,
+ boolean displayOutput)
+ throws IOException, InterruptedException {
+ Object[] arr =
+ execJavaCommon(args, classpath, null, displayOutput, true);
+
+ return getProcessOutput(arr, displayOutput, true);
+ }
+
+ /**
+ * This function returns the output of the process as a string
+ */
+ public static String execJava(String[] args, String[] classpath,
+ String[] envp, boolean displayOutput)
+ throws IOException, InterruptedException {
+ Object[] arr =
+ execJavaCommon(args, classpath, envp, displayOutput, false);
+
+ return getProcessOutput(arr, displayOutput, true);
+ }
+
+ private static String getProcessOutput(Object[] arr, boolean displayOutput,
+ boolean checkStderr)
+ throws IOException, InterruptedException {
+ Process proc = (Process) arr[0];
+ StringBuilder output = new StringBuilder();
+ InputStream in = proc.getInputStream();
+ int result;
+ byte[] bytes = new byte[1024];
+
+ while ((result = in.read(bytes)) != -1) {
+ output.append(new String(bytes, 0, result));
+ if (displayOutput) {
+ System.out.write(bytes, 0, result);
+ }
+ }
+
+ in.close();
+ proc.waitFor();
+ if (checkStderr) {
+ checkStderr(arr);
+ }
+ proc.destroy();
+
+ return output.toString();
+ }
+
+ public static void checkStderr(Object[] execArgs) {
+ StringBuilder errBuf = (StringBuilder) execArgs[1];
+
+ synchronized (errBuf) {
+ if (errBuf.length() > 0) {
+ fail(errBuf.toString());
+ }
+ }
+ }
+
+ public static Object[] execJava2(String[] args, String[] classpath,
+ boolean displayOutput)
+ throws IOException, InterruptedException {
+ return execJavaCommon(args, classpath, null, displayOutput, true);
+ }
+
+ private static Object[] execJavaCommon(String[] args, String[] classpath,
+ String[] envp,
+ boolean displayOutput,
+ boolean appendToSystemClassPath)
+ throws IOException, InterruptedException {
+ // this function returns the resulting process from the exec
+ ArrayList<String> execArgs = null;
+ StringBuilder classPathString = new StringBuilder();
+ StringBuilder command;
+
+ execArgs = new ArrayList<String>(3 + args.length);
+
+ // construct the name of executable file
+ String executable = System.getProperty("java.home");
+ if (!executable.endsWith(File.separator)) {
+ executable += File.separator;
+ }
+ executable += "bin" + File.separator + "java";
+
+ // add classpath string
+ if (classpath != null) {
+ for (String element : classpath) {
+ classPathString.append(File.pathSeparator);
+ classPathString.append(element);
+ }
+ }
+ if (appendToSystemClassPath) {
+ execArgs.add("-cp");
+ execArgs.add(System.getProperty("java.class.path") +
+ classPathString);
+ } else {
+ if (classpath != null) {
+ execArgs.add("-cp");
+ execArgs.add(classPathString.toString());
+ }
+ }
+
+ // parse hy.test.vmargs if was given
+ String testVMArgs = System.getProperty("hy.test.vmargs");
+ if (testVMArgs != null) {
+ StringTokenizer st = new StringTokenizer(testVMArgs, " ");
+
+ while (st.hasMoreTokens()) {
+ execArgs.add(st.nextToken());
+ }
+ }
+
+ // add custom args given as parameter
+ for (String arg : args) {
+ execArgs.add(arg);
+ }
+ return exec(executable, execArgs, envp, displayOutput);
+ }
+
+ private static Object[] exec(String command, List<String> args,
+ String[] envp,
+ boolean displayOutput)
+ throws IOException, InterruptedException {
+ // this function returns the resulting process from the exec
+ args.add(0, command);
+
+ if (displayOutput) {
+ StringBuilder commandLine;
+ // construct command line string and print it to stdout
+ commandLine = new StringBuilder(args.get(0));
+ for (int i = 1; i < args.size(); i++) {
+ commandLine.append(" ");
+ commandLine.append(args.get(i));
+ }
+ System.out.println("Exec: " + commandLine.toString());
+ System.out.println();
+ }
+
+ // execute java process
+ final Process proc =
+ Runtime.getRuntime().exec(args.toArray(new String[args.size()]),
+ envp);
+
+ final StringBuilder errBuf = new StringBuilder();
+ Thread errThread = new Thread(new Runnable() {
+ public void run() {
+ synchronized (errBuf) {
+ InputStream err;
+ int result;
+ byte[] bytes = new byte[1024];
+
+ synchronized (proc) {
+ proc.notifyAll();
+ }
+
+ err = proc.getErrorStream();
+ try {
+ while ((result = err.read(bytes)) != -1) {
+ System.err.write(bytes, 0, result);
+ errBuf.append(new String(bytes));
+ }
+ err.close();
+ } catch (IOException e) {
+ ByteArrayOutputStream out =
+ new ByteArrayOutputStream();
+ PrintStream printer = new PrintStream(out);
+
+ e.printStackTrace();
+ e.printStackTrace(printer);
+ printer.close();
+ errBuf.append(new String(out.toByteArray()));
+ }
+ }
+ }
+ });
+
+ synchronized (proc) {
+ errThread.start();
+ // wait for errThread to start
+ int count = 0;
+ boolean isFinished = false;
+ while (!isFinished) {
+ try {
+ proc.wait();
+ isFinished = true;
+ } catch (InterruptedException e) {
+ if (++count == 2) {
+ throw e;
+ }
+ }
+ }
+ if (count > 0) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ return new Object[] { proc, errBuf };
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_Field.java b/support/src/test/java/tests/support/Support_Field.java
new file mode 100644
index 0000000..ead1c07
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_Field.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_Field {
+
+ protected Object objectField;
+
+ protected boolean booleanField;
+
+ protected byte byteField;
+
+ protected char charField;
+
+ protected short shortField;
+
+ protected int intField;
+
+ protected long longField;
+
+ protected float floatField;
+
+ protected double doubleField;
+
+ /**
+ *
+ */
+ public Support_Field() {
+ }
+} \ No newline at end of file
diff --git a/support/src/test/java/tests/support/Support_GetLocal.java b/support/src/test/java/tests/support/Support_GetLocal.java
new file mode 100644
index 0000000..2d7acf7
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_GetLocal.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.JarURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Hashtable;
+
+import tests.support.resource.Support_Resources;
+
+public class Support_GetLocal {
+
+ static Hashtable<String, File> cache = new Hashtable<String, File>(20);
+
+ public static File getLocalFile(String url) throws IOException,
+ MalformedURLException {
+ url = Support_Resources.RESOURCE_PACKAGE + url;
+ File temp = cache.get(url);
+ if (temp == null) {
+ InputStream in = Support_GetLocal.class.getResourceAsStream(url);
+ temp = File.createTempFile("hyts_local", ".tmp", null);
+ temp.deleteOnExit();
+ FileOutputStream out = new FileOutputStream(temp);
+ int result;
+ byte[] buf = new byte[4096];
+ while ((result = in.read(buf)) != -1) {
+ out.write(buf, 0, result);
+ }
+ in.close();
+ out.close();
+ cache.put(url, temp);
+ }
+ return temp;
+ }
+
+ public static File getExternalLocalFile(String url) throws IOException,
+ MalformedURLException {
+ File temp = cache.get(url);
+ if (temp == null) {
+ InputStream in = new URL(url).openStream();
+ temp = File.createTempFile("hyts_local", ".tmp", null);
+ temp.deleteOnExit();
+ FileOutputStream out = new FileOutputStream(temp);
+ int result;
+ byte[] buf = new byte[4096];
+ while ((result = in.read(buf)) != -1) {
+ out.write(buf, 0, result);
+ }
+ in.close();
+ out.close();
+ cache.put(url, temp);
+ }
+ return temp;
+ }
+
+ static ByteArrayInputStream getStream(String url) throws IOException,
+ MalformedURLException {
+ InputStream in = new URL(url).openStream();
+ ByteArrayOutputStream out = new ByteArrayOutputStream(256);
+ int result;
+ byte[] buf = new byte[256];
+ while ((result = in.read(buf)) != -1) {
+ out.write(buf, 0, result);
+ }
+ return new ByteArrayInputStream(out.toByteArray());
+ }
+
+ public static File createTempFile(String suffix) throws IOException {
+ return File.createTempFile("hyts_", suffix, null);
+ }
+
+ public static JarURLConnection getJarURLConnection() throws IOException {
+ JarURLConnection con1 = null;
+ File file = getLocalFile("hyts_att.jar");
+ URL fUrl1 = new URL("jar:file:" + file.getPath() + "!/");
+ con1 = (JarURLConnection) fUrl1.openConnection();
+ return con1;
+ }
+} \ No newline at end of file
diff --git a/support/src/test/java/tests/support/Support_GetResource.java b/support/src/test/java/tests/support/Support_GetResource.java
new file mode 100644
index 0000000..69c8627
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_GetResource.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_GetResource {
+
+ public static String getResourceURL(String resource) {
+ return "http://" + Support_Configuration.TestResources + resource;
+ }
+} \ No newline at end of file
diff --git a/support/src/test/java/tests/support/Support_ListTest.java b/support/src/test/java/tests/support/Support_ListTest.java
new file mode 100644
index 0000000..6e9160b
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_ListTest.java
@@ -0,0 +1,220 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.NoSuchElementException;
+
+public class Support_ListTest extends junit.framework.TestCase {
+
+ List<Integer> list; // must contain the Integers 0 to 99 in order
+
+ public Support_ListTest(String p1) {
+ super(p1);
+ }
+
+ public Support_ListTest(String p1, List<Integer> l) {
+ super(p1);
+ list = l;
+ }
+
+ @Override
+ public void runTest() {
+ int hashCode = 1;
+ for (int counter = 0; counter < 100; counter++) {
+ Object elem;
+ elem = list.get(counter);
+ hashCode = 31 * hashCode + elem.hashCode();
+ assertTrue("ListTest - get failed", elem
+ .equals(new Integer(counter)));
+ }
+ assertTrue("ListTest - hashCode failed", hashCode == list.hashCode());
+
+ list.add(50, new Integer(1000));
+ assertTrue("ListTest - a) add with index failed--did not insert", list
+ .get(50).equals(new Integer(1000)));
+ assertTrue(
+ "ListTest - b) add with index failed--did not move following elements",
+ list.get(51).equals(new Integer(50)));
+ assertTrue(
+ "ListTest - c) add with index failed--affected previous elements",
+ list.get(49).equals(new Integer(49)));
+
+ list.set(50, new Integer(2000));
+ assertTrue("ListTest - a) set failed--did not set", list.get(50)
+ .equals(new Integer(2000)));
+ assertTrue("ListTest - b) set failed--affected following elements",
+ list.get(51).equals(new Integer(50)));
+ assertTrue("ListTest - c) set failed--affected previous elements", list
+ .get(49).equals(new Integer(49)));
+
+ list.remove(50);
+ assertTrue("ListTest - a) remove with index failed--did not remove",
+ list.get(50).equals(new Integer(50)));
+ assertTrue(
+ "ListTest - b) remove with index failed--did not move following elements",
+ list.get(51).equals(new Integer(51)));
+ assertTrue(
+ "ListTest - c) remove with index failed--affected previous elements",
+ list.get(49).equals(new Integer(49)));
+
+ List<Integer> myList = new LinkedList<Integer>();
+ myList.add(new Integer(500));
+ myList.add(new Integer(501));
+ myList.add(new Integer(502));
+
+ list.addAll(50, myList);
+ assertTrue("ListTest - a) addAll with index failed--did not insert",
+ list.get(50).equals(new Integer(500)));
+ assertTrue("ListTest - b) addAll with index failed--did not insert",
+ list.get(51).equals(new Integer(501)));
+ assertTrue("ListTest - c) addAll with index failed--did not insert",
+ list.get(52).equals(new Integer(502)));
+ assertTrue(
+ "ListTest - d) addAll with index failed--did not move following elements",
+ list.get(53).equals(new Integer(50)));
+ assertTrue(
+ "ListTest - e) addAll with index failed--affected previous elements",
+ list.get(49).equals(new Integer(49)));
+
+ List<Integer> mySubList = list.subList(50, 53);
+ assertEquals(3, mySubList.size());
+ assertTrue(
+ "ListTest - a) sublist Failed--does not contain correct elements",
+ mySubList.get(0).equals(new Integer(500)));
+ assertTrue(
+ "ListTest - b) sublist Failed--does not contain correct elements",
+ mySubList.get(1).equals(new Integer(501)));
+ assertTrue(
+ "ListTest - c) sublist Failed--does not contain correct elements",
+ mySubList.get(2).equals(new Integer(502)));
+
+ t_listIterator(mySubList);
+
+ mySubList.clear();
+ assertEquals("ListTest - Clearing the sublist did not remove the appropriate elements from the original list",
+ 100, list.size());
+
+ t_listIterator(list);
+ ListIterator<Integer> li = list.listIterator();
+ for (int counter = 0; li.hasNext(); counter++) {
+ Object elem;
+ elem = li.next();
+ assertTrue("ListTest - listIterator failed", elem
+ .equals(new Integer(counter)));
+ }
+
+ new Support_CollectionTest("", list).runTest();
+
+ }
+
+ public void t_listIterator(List<Integer> list) {
+ ListIterator<Integer> li = list.listIterator(1);
+ assertTrue("listIterator(1)", li.next() == list.get(1));
+
+ int orgSize = list.size();
+ li = list.listIterator();
+ for (int i = 0; i <= orgSize; i++) {
+ if (i == 0) {
+ assertTrue("list iterator hasPrevious(): " + i, !li
+ .hasPrevious());
+ } else {
+ assertTrue("list iterator hasPrevious(): " + i, li
+ .hasPrevious());
+ }
+ if (i == list.size()) {
+ assertTrue("list iterator hasNext(): " + i, !li.hasNext());
+ } else {
+ assertTrue("list iterator hasNext(): " + i, li.hasNext());
+ }
+ assertTrue("list iterator nextIndex(): " + i, li.nextIndex() == i);
+ assertTrue("list iterator previousIndex(): " + i, li
+ .previousIndex() == i - 1);
+ boolean exception = false;
+ try {
+ assertTrue("list iterator next(): " + i, li.next() == list
+ .get(i));
+ } catch (NoSuchElementException e) {
+ exception = true;
+ }
+ if (i == list.size()) {
+ assertTrue("list iterator next() exception: " + i, exception);
+ } else {
+ assertTrue("list iterator next() exception: " + i, !exception);
+ }
+ }
+
+ for (int i = orgSize - 1; i >= 0; i--) {
+ assertTrue("list iterator previous(): " + i, li.previous() == list
+ .get(i));
+ assertTrue("list iterator nextIndex()2: " + i, li.nextIndex() == i);
+ assertTrue("list iterator previousIndex()2: " + i, li
+ .previousIndex() == i - 1);
+ if (i == 0) {
+ assertTrue("list iterator hasPrevious()2: " + i, !li
+ .hasPrevious());
+ } else {
+ assertTrue("list iterator hasPrevious()2: " + i, li
+ .hasPrevious());
+ }
+ assertTrue("list iterator hasNext()2: " + i, li.hasNext());
+ }
+ boolean exception = false;
+ try {
+ li.previous();
+ } catch (NoSuchElementException e) {
+ exception = true;
+ }
+ assertTrue("list iterator previous() exception", exception);
+
+ Integer add1 = new Integer(600);
+ Integer add2 = new Integer(601);
+ li.add(add1);
+ assertTrue("list iterator add(), size()", list.size() == (orgSize + 1));
+ assertEquals("list iterator add(), nextIndex()", 1, li.nextIndex());
+ assertEquals("list iterator add(), previousIndex()",
+ 0, li.previousIndex());
+ Object next = li.next();
+ assertTrue("list iterator add(), next(): " + next, next == list.get(1));
+ li.add(add2);
+ Object previous = li.previous();
+ assertTrue("list iterator add(), previous(): " + previous,
+ previous == add2);
+ assertEquals("list iterator add(), nextIndex()2", 2, li.nextIndex());
+ assertEquals("list iterator add(), previousIndex()2",
+ 1, li.previousIndex());
+
+ li.remove();
+ assertTrue("list iterator remove(), size()",
+ list.size() == (orgSize + 1));
+ assertEquals("list iterator remove(), nextIndex()", 2, li.nextIndex());
+ assertEquals("list iterator remove(), previousIndex()", 1, li
+ .previousIndex());
+ assertTrue("list iterator previous()2", li.previous() == list.get(1));
+ assertTrue("list iterator previous()3", li.previous() == list.get(0));
+ assertTrue("list iterator next()2", li.next() == list.get(0));
+ li.remove();
+ assertTrue("list iterator hasPrevious()3", !li.hasPrevious());
+ assertTrue("list iterator hasNext()3", li.hasNext());
+ assertTrue("list iterator size()", list.size() == orgSize);
+ assertEquals("list iterator nextIndex()3", 0, li.nextIndex());
+ assertEquals("list iterator previousIndex()3", -1, li.previousIndex());
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_MapTest2.java b/support/src/test/java/tests/support/Support_MapTest2.java
new file mode 100644
index 0000000..217b198
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_MapTest2.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.util.Map;
+import junit.framework.TestCase;
+
+public class Support_MapTest2 extends TestCase {
+
+ Map<String, String> map;
+
+ public Support_MapTest2(Map<String, String> m) {
+ super();
+ map = m;
+ if (!map.isEmpty()) {
+ fail("Map must be empty");
+ }
+ }
+
+ @Override
+ public void runTest() {
+ try {
+ map.put("one", "1");
+ assertEquals("size should be one", 1, map.size());
+ map.clear();
+ assertEquals("size should be zero", 0, map.size());
+ assertTrue("Should not have entries", !map.entrySet().iterator()
+ .hasNext());
+ assertTrue("Should not have keys", !map.keySet().iterator()
+ .hasNext());
+ assertTrue("Should not have values", !map.values().iterator()
+ .hasNext());
+ } catch (UnsupportedOperationException e) {
+ }
+
+ try {
+ map.put("one", "1");
+ assertEquals("size should be one", 1, map.size());
+ map.remove("one");
+ assertEquals("size should be zero", 0, map.size());
+ assertTrue("Should not have entries", !map.entrySet().iterator()
+ .hasNext());
+ assertTrue("Should not have keys", !map.keySet().iterator()
+ .hasNext());
+ assertTrue("Should not have values", !map.values().iterator()
+ .hasNext());
+ } catch (UnsupportedOperationException e) {
+ }
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_ProviderTrust.java b/support/src/test/java/tests/support/Support_ProviderTrust.java
new file mode 100644
index 0000000..b5f4d87
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_ProviderTrust.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.Provider;
+
+/**
+ * This class implements a dummy provider.
+ */
+public class Support_ProviderTrust extends Provider {
+ private static final long serialVersionUID = 1L;
+
+ // Provider name
+ private static final String NAME = "ProviderTrust";
+
+ // Version of the services
+ private static final double VERSION = 1.0;
+
+ private static final String INFO = NAME
+ + " DSA key, parameter generation and signing; SHA-1 digest; SHA1PRNG SecureRandom";
+
+ /**
+ * Constructs a new instance of the dummy provider.
+ */
+ public Support_ProviderTrust() {
+ super(NAME, VERSION, INFO);
+ registerServices();
+ }
+
+ /**
+ * Register the services the receiver provides.
+ */
+ private void registerServices() {
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ public Void run() {
+ // Digest engine
+ put("MessageDigest.SHA",
+ "made.up.provider.name.MessageDigestSHA");
+ put("MessageDigest.MD5",
+ "made.up.provider.name.MessageDigestMD5");
+
+ // Algorithm parameter generator
+ put("AlgorithmParameterGenerator.DSA",
+ "made.up.provider.name.AlgorithmParameterGeneratorDSA");
+
+ // Algorithm parameters
+ put("AlgorithmParameters.DSA",
+ "made.up.provider.name.AlgorithmParametersDSA");
+
+ // Key pair generator
+ put("KeyPairGenerator.DSA",
+ "made.up.provider.name.KeyPairGeneratorDSA");
+
+ // Key factory
+ put("KeyFactory.DSA", "made.up.provider.name.KeyFactoryDSA");
+ put("KeyFactory.RSA", "made.up.provider.name.KeyFactoryRSA");
+
+ // Signature algorithm
+ put("Signature.SHA1withDSA",
+ "made.up.provider.name.SignatureDSA");
+
+ // KeyStore
+ put("KeyStore.PKCS#12/Netscape",
+ "made.up.provider.name.KeyStore");
+
+ // Certificate
+ put("CertificateFactory.X509",
+ "made.up.provider.name.CertificateFactoryX509");
+
+ return null;
+ }
+ });
+ }
+} \ No newline at end of file
diff --git a/support/src/test/java/tests/support/Support_Proxy_I1.java b/support/src/test/java/tests/support/Support_Proxy_I1.java
new file mode 100644
index 0000000..66296c9
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_Proxy_I1.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public interface Support_Proxy_I1 {
+ boolean equals(Object o);
+
+ int[] array(long[] f);
+
+ void foo(int i, boolean b);
+
+ String string(String s) throws Support_Proxy_ParentException, LinkageError;
+}
diff --git a/support/src/test/java/tests/support/Support_Proxy_I2.java b/support/src/test/java/tests/support/Support_Proxy_I2.java
new file mode 100644
index 0000000..e6e5394
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_Proxy_I2.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public interface Support_Proxy_I2 {
+
+ int[] array(long[] f);
+
+ void foo(boolean b, int i);
+
+ String string(String s) throws Support_Proxy_SubException, Error;
+}
diff --git a/support/src/test/java/tests/support/Support_Proxy_ParentException.java b/support/src/test/java/tests/support/Support_Proxy_ParentException.java
new file mode 100644
index 0000000..13ac4c0
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_Proxy_ParentException.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_Proxy_ParentException extends Exception {
+ private static final long serialVersionUID = -2760151845410887038L;
+}
diff --git a/support/src/test/java/tests/support/Support_Proxy_SubException.java b/support/src/test/java/tests/support/Support_Proxy_SubException.java
new file mode 100644
index 0000000..0d43630
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_Proxy_SubException.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_Proxy_SubException extends Support_Proxy_ParentException {
+ private static final long serialVersionUID = -2615472925826542925L;
+
+}
diff --git a/support/src/test/java/tests/support/Support_SetTest.java b/support/src/test/java/tests/support/Support_SetTest.java
new file mode 100644
index 0000000..51ac1c4
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_SetTest.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.util.Set;
+
+public class Support_SetTest extends junit.framework.TestCase {
+
+ Set<Integer> set; // must contain only the Integers 0 to 99
+
+ public Support_SetTest(String p1) {
+ super(p1);
+ }
+
+ public Support_SetTest(String p1, Set<Integer> s) {
+ super(p1);
+ set = s;
+ }
+
+ @Override
+ public void runTest() {
+ // add
+ assertTrue("Set Test - Adding a duplicate element changed the set",
+ !set.add(new Integer(50)));
+ assertTrue("Set Test - Removing an element did not change the set", set
+ .remove(new Integer(50)));
+ assertTrue(
+ "Set Test - Adding and removing a duplicate element failed to remove it",
+ !set.contains(new Integer(50)));
+ set.add(new Integer(50));
+ new Support_CollectionTest("", set).runTest();
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_StringReader.java b/support/src/test/java/tests/support/Support_StringReader.java
new file mode 100644
index 0000000..cc2725b
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_StringReader.java
@@ -0,0 +1,229 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.IOException;
+import java.io.Reader;
+
+public class Support_StringReader extends Reader {
+ private String str;
+
+ private int markpos = -1;
+
+ private int pos = 0;
+
+ private int count;
+
+ /**
+ * Construct a StringReader on the String <code>str</code>. The size of
+ * the reader is set to the <code>length()</code> of the String and the
+ * Object to synchronize access through is set to <code>str</code>.
+ *
+ * @param str the String to filter reads on.
+ */
+ public Support_StringReader(String str) {
+ super(str);
+ this.str = str;
+ this.count = str.length();
+ }
+
+ /**
+ * This method closes this StringReader. Once it is closed, you can no
+ * longer read from it. Only the first invocation of this method has any
+ * effect.
+ */
+ @Override
+ public void close() {
+ synchronized (lock) {
+ if (isOpen()) {
+ str = null;
+ }
+ }
+ }
+
+ /**
+ * Answer a boolean indicating whether or not this StringReader is open.
+ */
+ private boolean isOpen() {
+ return str != null;
+ }
+
+ /**
+ * Set a Mark position in this Reader. The parameter <code>readLimit</code>
+ * is ignored for StringReaders. Sending reset() will reposition the reader
+ * back to the marked position provided the mark has not been invalidated.
+ *
+ * @param readlimit ignored for StringReaders.
+ * @throws java.io.IOException If an error occurs attempting mark this StringReader.
+ */
+ @Override
+ public void mark(int readLimit) throws IOException {
+ if (readLimit >= 0) {
+ synchronized (lock) {
+ if (isOpen()) {
+ markpos = pos;
+ } else {
+ throw new IOException("StringReader is closed");
+ }
+ }
+ } else {
+ throw new IllegalArgumentException();
+ }
+ }
+
+ /**
+ * Answers a boolean indicating whether or not this StringReader supports
+ * mark() and reset(). This method always returns true.
+ *
+ * @return <code>true</code> if mark() and reset() are supported,
+ * <code>false</code> otherwise. This implementation always
+ * returns <code>true</code>.
+ */
+ @Override
+ public boolean markSupported() {
+ return true;
+ }
+
+ /**
+ * Reads a single character from this StringReader and returns the result as
+ * an int. The 2 higher-order bytes are set to 0. If the end of reader was
+ * encountered then return -1.
+ *
+ * @return the character read or -1 if end of reader.
+ * @throws java.io.IOException If the StringReader is already closed.
+ */
+ @Override
+ public int read() throws IOException {
+ synchronized (lock) {
+ if (isOpen()) {
+ if (pos != count) {
+ return str.charAt(pos++);
+ }
+ return -1;
+ }
+ throw new IOException("StringReader is closed");
+ }
+ }
+
+ /**
+ * Reads at most <code>count</code> characters from this StringReader and
+ * stores them at <code>offset</code> in the character array
+ * <code>buf</code>. Returns the number of characters actually read or -1
+ * if the end of reader was encountered.
+ *
+ * @param buf character array to store the read characters
+ * @param offset offset in buf to store the read characters
+ * @param count maximum number of characters to read
+ * @return the number of characters read or -1 if end of reader.
+ * @throws java.io.IOException If the StringReader is closed.
+ */
+ @Override
+ public int read(char buf[], int offset, int count) throws IOException {
+ // avoid int overflow
+ if (0 <= offset && offset <= buf.length && 0 <= count
+ && count <= buf.length - offset) {
+ synchronized (lock) {
+ if (isOpen()) {
+ if (pos == this.count) {
+ return -1;
+ }
+ int end = pos + count > this.count ? this.count : pos
+ + count;
+ str.getChars(pos, end, buf, offset);
+ int read = end - pos;
+ pos = end;
+ return read;
+ }
+ throw new IOException("StringReader is closed");
+ }
+ }
+ throw new ArrayIndexOutOfBoundsException();
+ }
+
+ /**
+ * Answers a <code>boolean</code> indicating whether or not this
+ * StringReader is ready to be read without blocking. If the result is
+ * <code>true</code>, the next <code>read()</code> will not block. If
+ * the result is <code>false</code> this Reader may or may not block when
+ * <code>read()</code> is sent. The implementation in StringReader always
+ * returns <code>true</code> even when it has been closed.
+ *
+ * @return <code>true</code> if the receiver will not block when
+ * <code>read()</code> is called, <code>false</code> if unknown
+ * or blocking will occur.
+ * @throws java.io.IOException If an IO error occurs.
+ */
+ @Override
+ public boolean ready() throws IOException {
+ synchronized (lock) {
+ if (isOpen()) {
+ return true;
+ }
+ throw new IOException("StringReader is closed");
+ }
+ }
+
+ /**
+ * Reset this StringReader's position to the last <code>mark()</code>
+ * location. Invocations of <code>read()/skip()</code> will occur from
+ * this new location. If this Reader was not marked, the StringReader is
+ * reset to the beginning of the String.
+ *
+ * @throws java.io.IOException If this StringReader has already been closed.
+ */
+ @Override
+ public void reset() throws IOException {
+ synchronized (lock) {
+ if (isOpen()) {
+ pos = markpos != -1 ? markpos : 0;
+ } else {
+ throw new IOException("StringReader is closed");
+ }
+ }
+ }
+
+ /**
+ * Skips <code>count</code> number of characters in this StringReader.
+ * Subsequent <code>read()</code>'s will not return these characters
+ * unless <code>reset()</code> is used.
+ *
+ * @param count The number of characters to skip.
+ * @return the number of characters actually skipped.
+ * @throws java.io.IOException If this StringReader has already been closed.
+ */
+ @Override
+ public long skip(long count) throws IOException {
+ synchronized (lock) {
+ if (isOpen()) {
+ if (count <= 0) {
+ return 0;
+ }
+ long skipped = 0;
+ if (count < this.count - pos) {
+ pos = pos + (int) count;
+ skipped = count;
+ } else {
+ skipped = this.count - pos;
+ pos = this.count;
+ }
+ return skipped;
+ }
+ throw new IOException("StringReader is closed");
+ }
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_StringWriter.java b/support/src/test/java/tests/support/Support_StringWriter.java
new file mode 100644
index 0000000..7d1b171
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_StringWriter.java
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.io.IOException;
+import java.io.Writer;
+
+public class Support_StringWriter extends Writer {
+ private StringBuffer buf;
+
+ /**
+ * Constructs a new StringWriter which has a StringBuffer allocated with the
+ * default size of 16 characters. The StringBuffer is also the
+ * <code>lock</code> used to synchronize access to this Writer.
+ */
+ public Support_StringWriter() {
+ super();
+ buf = new StringBuffer(16);
+ lock = buf;
+ }
+
+ /**
+ * Constructs a new StringWriter which has a StringBuffer allocated with the
+ * size of <code>initialSize</code> characters. The StringBuffer is also
+ * the <code>lock</code> used to synchronize access to this Writer.
+ */
+ public Support_StringWriter(int initialSize) {
+ if (initialSize >= 0) {
+ buf = new StringBuffer(initialSize);
+ lock = buf;
+ } else {
+ throw new IllegalArgumentException();
+ }
+ }
+
+ /**
+ * Close this Writer. This is the concrete implementation required. This
+ * particular implementation does nothing.
+ *
+ * @throws java.io.IOException If an IO error occurs closing this StringWriter.
+ */
+ @Override
+ public void close() throws IOException {
+ }
+
+ /**
+ * Flush this Writer. This is the concrete implementation required. This
+ * particular implementation does nothing.
+ */
+ @Override
+ public void flush() {
+ }
+
+ /**
+ * Answer the contents of this StringWriter as a StringBuffer. Any changes
+ * made to the StringBuffer by the receiver or the caller are reflected in
+ * this StringWriter.
+ *
+ * @return this StringWriters local StringBuffer.
+ */
+ public StringBuffer getBuffer() {
+ synchronized (lock) {
+ return buf;
+ }
+ }
+
+ /**
+ * Answer the contents of this StringWriter as a String. Any changes made to
+ * the StringBuffer by the receiver after returning will not be reflected in
+ * the String returned to the caller.
+ *
+ * @return this StringWriters current contents as a String.
+ */
+ @Override
+ public String toString() {
+ synchronized (lock) {
+ return buf.toString();
+ }
+ }
+
+ /**
+ * Writes <code>count</code> characters starting at <code>offset</code>
+ * in <code>buf</code> to this StringWriter.
+ *
+ * @param buf the non-null array containing characters to write.
+ * @param offset offset in buf to retrieve characters
+ * @param count maximum number of characters to write
+ * @throws java.lang.ArrayIndexOutOfBoundsException
+ * If offset or count are outside of bounds.
+ */
+ @Override
+ public void write(char[] buf, int offset, int count) {
+ // avoid int overflow
+ if (0 <= offset && offset <= buf.length && 0 <= count
+ && count <= buf.length - offset) {
+ synchronized (lock) {
+ this.buf.append(buf, offset, count);
+ }
+ } else {
+ throw new ArrayIndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * Writes the specified character <code>oneChar</code> to this
+ * StringWriter. This implementation writes the low order two bytes to the
+ * Stream.
+ *
+ * @param oneChar The character to write
+ */
+ @Override
+ public void write(int oneChar) {
+ synchronized (lock) {
+ buf.append((char) oneChar);
+ }
+ }
+
+ /**
+ * Writes the characters from the String <code>str</code> to this
+ * StringWriter.
+ *
+ * @param str the non-null String containing the characters to write.
+ */
+ @Override
+ public void write(String str) {
+ synchronized (lock) {
+ buf.append(str);
+ }
+ }
+
+ /**
+ * Writes <code>count</code> number of characters starting at
+ * <code>offset</code> from the String <code>str</code> to this
+ * StringWriter.
+ *
+ * @param str the non-null String containing the characters to write.
+ * @param offset the starting point to retrieve characters.
+ * @param count the number of characters to retrieve and write.
+ * @throws java.lang.ArrayIndexOutOfBoundsException
+ * If offset or count are outside of bounds.
+ */
+ @Override
+ public void write(String str, int offset, int count) {
+ String sub = str.substring(offset, offset + count);
+ synchronized (lock) {
+ buf.append(sub);
+ }
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_TestProvider.java b/support/src/test/java/tests/support/Support_TestProvider.java
new file mode 100644
index 0000000..e425ad6
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TestProvider.java
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.Provider;
+
+/**
+ * This class implements a dummy provider.
+ */
+public class Support_TestProvider extends Provider {
+ private static final long serialVersionUID = 1L;
+
+ // Provider name
+ private static final String NAME = "TestProvider";
+
+ // Version of the services provided
+ private static final double VERSION = 1.0;
+
+ private static final String INFO = NAME
+ + " DSA key, parameter generation and signing; SHA-1 digest; "
+ + "SHA1PRNG SecureRandom; PKCS#12/Netscape KeyStore";
+
+ /**
+ * Constructs a new instance of the dummy provider.
+ */
+ public Support_TestProvider() {
+ super(NAME, VERSION, INFO);
+ registerServices();
+ }
+
+ /**
+ * Register the services the receiver provides.
+ */
+ private void registerServices() {
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ public Void run() {
+ // Digest engine
+ put("MessageDigest.SHA",
+ "made.up.provider.name.MessageDigestSHA");
+ put("MessageDigest.MD2",
+ "made.up.provider.name.MessageDigestMD2");
+ // aliases
+ put("Alg.Alias.MessageDigest.SHA1", "SHA");
+ put("Alg.Alias.MessageDigest.SHA-1", "SHA");
+ put("Alg.Alias.MessageDigest.OID.1.3.14.3.2.26", "SHA");
+ put("Alg.Alias.MessageDigest.1.3.14.3.2.26", "SHA");
+
+ // Algorithm parameter generator
+ put("AlgorithmParameterGenerator.DSA",
+ "made.up.provider.name.AlgorithmParameterGeneratorDSA");
+
+ // Algorithm parameters
+ put("AlgorithmParameters.DSA",
+ "made.up.provider.name.AlgorithmParametersDSA");
+ // aliases
+ put("Alg.Alias.AlgorithmParameters.1.2.840.10040.4.1", "DSA");
+ put("Alg.Alias.AlgorithmParameters.1.3.14.3.2.12", "DSA");
+
+ // Key pair generator
+ put("KeyPairGenerator.DSA",
+ "made.up.provider.name.KeyPairGeneratorDSA");
+ // aliases
+ put("Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1", "DSA");
+ put("Alg.Alias.KeyPairGenerator.1.2.840.10040.4.1", "DSA");
+ put("Alg.Alias.KeyPairGenerator.1.3.14.3.2.12", "DSA");
+
+ // Key factory
+ put("KeyFactory.DSA", "made.up.provider.name.KeyFactoryDSA");
+ put("KeyFactory.RSA", "made.up.provider.name.KeyFactoryRSA");
+ // aliases
+ put("Alg.Alias.KeyFactory.1.2.840.10040.4.1", "DSA");
+ put("Alg.Alias.KeyFactory.1.3.14.3.2.12", "DSA");
+
+ // Signature algorithm
+ put("Signature.SHA1withDSA",
+ "made.up.provider.name.SignatureDSA");
+
+ // aliases
+ put("Alg.Alias.Signature.DSA", "SHA1withDSA");
+ put("Alg.Alias.Signature.DSS", "SHA1withDSA");
+ put("Alg.Alias.Signature.SHA/DSA", "SHA1withDSA");
+ put("Alg.Alias.Signature.SHA1/DSA", "SHA1withDSA");
+ put("Alg.Alias.Signature.SHA-1/DSA", "SHA1withDSA");
+ put("Alg.Alias.Signature.SHAwithDSA", "SHA1withDSA");
+ put("Alg.Alias.Signature.DSAwithSHA1", "SHA1withDSA");
+ put("Alg.Alias.Signature.DSAWithSHA1", "SHA1withDSA");
+ put("Alg.Alias.Signature.SHA-1withDSA", "SHA1withDSA");
+ put("Alg.Alias.Signature.OID.1.2.840.10040.4.3", "SHA1withDSA");
+ put("Alg.Alias.Signature.1.2.840.10040.4.3", "SHA1withDSA");
+ put("Alg.Alias.Signature.1.3.14.3.2.13", "SHA1withDSA");
+ put("Alg.Alias.Signature.1.3.14.3.2.27", "SHA1withDSA");
+ put("Alg.Alias.Signature.OID.1.3.14.3.2.13", "SHA1withDSA");
+ put("Alg.Alias.Signature.OID.1.3.14.3.2.27", "SHA1withDSA");
+
+ put("KeyStore.PKCS#12/Netscape",
+ "tests.support.Support_DummyPKCS12Keystore");
+
+ // Certificate
+ put("CertificateFactory.X509",
+ "made.up.provider.name.CertificateFactoryX509");
+ // aliases
+ put("Alg.Alias.CertificateFactory.X.509", "X509");
+
+ return null;
+ }
+ });
+ }
+} \ No newline at end of file
diff --git a/support/src/test/java/tests/support/Support_TestResource.java b/support/src/test/java/tests/support/Support_TestResource.java
new file mode 100644
index 0000000..e16b518
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TestResource.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_TestResource extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "parent1", "parentValue1" },
+ { "parent2", "parentValue2" }, { "parent3", "parentValue3" },
+ { "parent4", "parentValue4" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_TestResource_en.java b/support/src/test/java/tests/support/Support_TestResource_en.java
new file mode 100644
index 0000000..4a69d7f
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TestResource_en.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_TestResource_en extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "parent2", "enValue2" },
+ { "parent3", "enValue3" }, { "parent4", "enValue4" },
+ { "child1", "enChildValue1" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_TestResource_en_US.java b/support/src/test/java/tests/support/Support_TestResource_en_US.java
new file mode 100644
index 0000000..4d73675
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TestResource_en_US.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_TestResource_en_US extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "parent3", "enUSValue3" },
+ { "parent4", "enUSValue4" }, { "child1", "enUSChildValue1" },
+ { "child2", "enUSChildValue2" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_TestResource_fr.java b/support/src/test/java/tests/support/Support_TestResource_fr.java
new file mode 100644
index 0000000..8bc0829
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TestResource_fr.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_TestResource_fr extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "parent2", "frValue2" },
+ { "parent3", "frValue3" }, { "parent4", "frValue4" },
+ { "child1", "frChildValue1" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_TestResource_fr_FR.java b/support/src/test/java/tests/support/Support_TestResource_fr_FR.java
new file mode 100644
index 0000000..59c56bd
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TestResource_fr_FR.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+public class Support_TestResource_fr_FR extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "parent3", "frFRValue3" },
+ { "parent4", "frFRValue4" }, { "child1", "frFRChildValue1" },
+ { "child2", "frFRChildValue2" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java b/support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java
new file mode 100644
index 0000000..b9f4d60
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package tests.support;
+
+public class Support_TestResource_fr_FR_VAR extends
+ java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "parent4", "frFRVARValue4" },
+ { "child1", "frFRVARChildValue1" },
+ { "child2", "frFRVARChildValue2" },
+ { "child3", "frFRVARChildValue3" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/java/tests/support/Support_TimeZone.java b/support/src/test/java/tests/support/Support_TimeZone.java
new file mode 100644
index 0000000..e2c3e65
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_TimeZone.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+/**
+ * Sample java.util.TimeZone subclass to test getDSTSavings() and getOffset(long)
+ * APIs
+ */
+public class Support_TimeZone extends TimeZone {
+ private static final long serialVersionUID = 1L;
+
+ int rawOffset;
+
+ boolean useDaylightTime;
+
+ public Support_TimeZone(int rawOffset, boolean useDaylightTime) {
+ this.rawOffset = rawOffset;
+ this.useDaylightTime = useDaylightTime;
+ }
+
+ @Override
+ public int getRawOffset() {
+ return rawOffset;
+ }
+
+ /**
+ * let's assume this timezone has daylight savings from the 4th month till
+ * the 10th month of the year to ame things simple.
+ */
+ @Override
+ public boolean inDaylightTime(java.util.Date p1) {
+ if (!useDaylightTime) {
+ return false;
+ }
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTime(p1);
+ int month = cal.get(Calendar.MONTH);
+
+ if (month > 4 && month < 10) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean useDaylightTime() {
+ return useDaylightTime;
+ }
+
+ /*
+ * return 0 to keep it simple, since this subclass is not used to test this
+ * method..
+ */
+ @Override
+ public int getOffset(int p1, int p2, int p3, int p4, int p5, int p6) {
+ return 0;
+ }
+
+ @Override
+ public void setRawOffset(int p1) {
+ rawOffset = p1;
+ }
+}
diff --git a/support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java b/support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java
new file mode 100644
index 0000000..96619bd
--- /dev/null
+++ b/support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import junit.framework.TestCase;
+
+public class Support_UnmodifiableCollectionTest extends TestCase {
+
+ Collection<Integer> col;
+
+ // must be a collection containing the Integers 0 to 99 (which will iterate
+ // in order)
+
+ public Support_UnmodifiableCollectionTest(String p1) {
+ super(p1);
+ }
+
+ public Support_UnmodifiableCollectionTest(String p1, Collection<Integer> c) {
+ super(p1);
+ col = c;
+ }
+
+ @Override
+ public void runTest() {
+
+ // contains
+ assertTrue("UnmodifiableCollectionTest - should contain 0", col
+ .contains(new Integer(0)));
+ assertTrue("UnmodifiableCollectionTest - should contain 50", col
+ .contains(new Integer(50)));
+ assertTrue("UnmodifiableCollectionTest - should not contain 100", !col
+ .contains(new Integer(100)));
+
+ // containsAll
+ HashSet<Integer> hs = new HashSet<Integer>();
+ hs.add(new Integer(0));
+ hs.add(new Integer(25));
+ hs.add(new Integer(99));
+ assertTrue(
+ "UnmodifiableCollectionTest - should contain set of 0, 25, and 99",
+ col.containsAll(hs));
+ hs.add(new Integer(100));
+ assertTrue(
+ "UnmodifiableCollectionTest - should not contain set of 0, 25, 99 and 100",
+ !col.containsAll(hs));
+
+ // isEmpty
+ assertTrue("UnmodifiableCollectionTest - should not be empty", !col
+ .isEmpty());
+
+ // iterator
+ Iterator<Integer> it = col.iterator();
+ SortedSet<Integer> ss = new TreeSet<Integer>();
+ while (it.hasNext()) {
+ ss.add(it.next());
+ }
+ it = ss.iterator();
+ for (int counter = 0; it.hasNext(); counter++) {
+ int nextValue = it.next().intValue();
+ assertTrue(
+ "UnmodifiableCollectionTest - Iterator returned wrong value. Wanted: "
+ + counter + " got: " + nextValue,
+ nextValue == counter);
+ }
+
+ // size
+ assertTrue(
+ "UnmodifiableCollectionTest - returned wrong size. Wanted 100, got: "
+ + col.size(), col.size() == 100);
+
+ // toArray
+ Object[] objArray;
+ objArray = col.toArray();
+ for (int counter = 0; it.hasNext(); counter++) {
+ assertTrue(
+ "UnmodifiableCollectionTest - toArray returned incorrect array",
+ objArray[counter] == it.next());
+ }
+
+ // toArray (Object[])
+ objArray = new Object[100];
+ col.toArray(objArray);
+ for (int counter = 0; it.hasNext(); counter++) {
+ assertTrue(
+ "UnmodifiableCollectionTest - toArray(Object) filled array incorrectly",
+ objArray[counter] == it.next());
+ }
+
+ }
+
+}
diff --git a/support/src/test/java/tests/support/resource/Support_Resources.java b/support/src/test/java/tests/support/resource/Support_Resources.java
new file mode 100644
index 0000000..ec1a4b7
--- /dev/null
+++ b/support/src/test/java/tests/support/resource/Support_Resources.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.support.resource;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import tests.support.Support_Configuration;
+
+public class Support_Resources {
+
+ public static final String RESOURCE_PACKAGE = "/tests/resources/";
+
+ public static final String RESOURCE_PACKAGE_NAME = "tests.resources";
+
+ public static InputStream getStream(String name) {
+ // System.err.println("getResourceAsStream(" + RESOURCE_PACKAGE + name + ")");
+ return Support_Resources.class.getResourceAsStream(RESOURCE_PACKAGE + name);
+ }
+
+ public static String getURL(String name) {
+ String folder = null;
+ String fileName = name;
+ File resources = createTempFolder();
+ int index = name.lastIndexOf("/");
+ if (index != -1) {
+ folder = name.substring(0, index);
+ name = name.substring(index + 1);
+ }
+ copyFile(resources, folder, name);
+ URL url = null;
+ String resPath = resources.toString();
+ if (resPath.charAt(0) == '/' || resPath.charAt(0) == '\\') {
+ resPath = resPath.substring(1);
+ }
+ try {
+ url = new URL("file:/" + resPath + "/" + fileName);
+ } catch (MalformedURLException e) {
+ throw new RuntimeException(e);
+ }
+ return url.toString();
+ }
+
+ public static File createTempFolder() {
+ File folder = null;
+ try {
+ folder = File.createTempFile("hyts_resources", "", null);
+ folder.delete();
+ folder.mkdirs();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ folder.deleteOnExit();
+ return folder;
+ }
+
+ public static void copyFile(File root, String folder, String file) {
+ File f;
+ if (folder != null) {
+ f = new File(root.toString() + "/" + folder);
+ if (!f.exists()) {
+ f.mkdirs();
+ f.deleteOnExit();
+ }
+ } else {
+ f = root;
+ }
+
+ String src = folder == null ? file : folder + "/" + file;
+ InputStream in = Support_Resources.getStream(src);
+ try {
+ File dst = new File(f.toString() + "/" + file);
+ copyLocalFileTo(dst, in);
+ } catch (Exception e) {
+ throw new RuntimeException("copyFile failed: root=" + root + " folder=" + folder + " file=" + file + " (src=" + src + ")", e);
+ }
+ }
+
+ public static File createTempFile(String suffix) throws IOException {
+ return File.createTempFile("hyts_", suffix, null);
+ }
+
+ public static void copyLocalFileTo(File dest, InputStream in) throws IOException {
+ if (!dest.exists()) {
+ FileOutputStream out = new FileOutputStream(dest);
+ int result;
+ byte[] buf = new byte[4096];
+ while ((result = in.read(buf)) != -1) {
+ out.write(buf, 0, result);
+ }
+ in.close();
+ out.close();
+ dest.deleteOnExit();
+ }
+ }
+
+ public static File getExternalLocalFile(String url) throws IOException, MalformedURLException {
+ File resources = createTempFolder();
+ InputStream in = new URL(url).openStream();
+ File temp = new File(resources.toString() + "/local.tmp");
+ copyLocalFileTo(temp, in);
+ return temp;
+ }
+
+ public static String getResourceURL(String resource) {
+ return "http://" + Support_Configuration.TestResources + resource;
+ }
+
+ /**
+ * Util method to load resource files
+ *
+ * @param name - name of resource file
+ * @return - resource input stream
+ */
+ public static InputStream getResourceStream(String name) {
+ InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream(name);
+ if (is == null) {
+ throw new RuntimeException("Failed to load resource: " + name);
+ }
+ return is;
+ }
+
+ /**
+ * Util method to get absolute path to resource file
+ *
+ * @param name - name of resource file
+ * @return - path to resource
+ */
+ public static String getAbsoluteResourcePath(String name) {
+ URL url = ClassLoader.getSystemClassLoader().getResource(name);
+ if (url == null) {
+ throw new RuntimeException("Failed to load resource: " + name);
+ }
+
+ try {
+ return new File(url.toURI()).getAbsolutePath();
+ } catch (URISyntaxException e) {
+ throw new RuntimeException("Failed to load resource: " + name);
+ }
+ }
+}
diff --git a/support/src/test/java/tests/util/SerializationTester.java b/support/src/test/java/tests/util/SerializationTester.java
new file mode 100644
index 0000000..93bff70
--- /dev/null
+++ b/support/src/test/java/tests/util/SerializationTester.java
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.net.URL;
+
+/**
+ * This class simplifies the serialization test.
+ */
+public class SerializationTester {
+
+ /*
+ * --------------------------------------------------------------------
+ * Class variables
+ * --------------------------------------------------------------------
+ */
+
+ // the last deserialized object
+ private static Object lastOutput = null;
+
+ /*
+ * -------------------------------------------------------------------
+ * Constructors
+ * -------------------------------------------------------------------
+ */
+
+ private SerializationTester() {
+
+ }
+
+ /*
+ * -------------------------------------------------------------------
+ * Methods
+ * -------------------------------------------------------------------
+ */
+
+ /**
+ * Serialize an object and then deserialize it.
+ *
+ * @param inputObject the input object
+ * @return the deserialized object
+ */
+ public static Object getDeserilizedObject(Object inputObject)
+ throws IOException, ClassNotFoundException {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(inputObject);
+ oos.close();
+
+ ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+ ObjectInputStream ois = new ObjectInputStream(bis);
+ Object outputObject = ois.readObject();
+ lastOutput = outputObject;
+ ois.close();
+ return outputObject;
+ }
+
+ /**
+ * Tests the serialization and deserialization of const objects.
+ *
+ * @param inputObject A const object
+ * @return true if the deserialized object is the same as the input object,
+ * otherwise false
+ * @throws Exception If any occurs.
+ */
+ public static boolean assertSame(Object inputObject) throws Exception {
+ return inputObject == getDeserilizedObject(inputObject);
+ }
+
+ /**
+ * Tests the serialization and deserialization of instance objects.
+ *
+ * @param inputObject An object
+ * @return true if the deserialized object is equal to the input object,
+ * otherwise false
+ * @throws Exception If any occurs.
+ */
+ public static boolean assertEquals(Object inputObject) throws Exception {
+ return inputObject.equals(getDeserilizedObject(inputObject));
+ }
+
+ /**
+ * Tests the serialization compatibility with reference const objects.
+ *
+ * @param obj the object to be checked
+ * @param fileName the serialization output file generated by reference
+ * @return true if compatible, otherwise false
+ * @throws Exception If any occurs.
+ */
+ public static boolean assertCompabilitySame(Object obj, String fileName)
+ throws Exception {
+ return obj == readObject(obj, fileName);
+ }
+
+ /**
+ * Tests the serialization compatibility with reference for instance
+ * objects.
+ *
+ * @param obj the object to be checked
+ * @param fileName the serialization output file generated by reference
+ * @return true if compatible, otherwise false
+ * @throws Exception If any occurs.
+ */
+ public static boolean assertCompabilityEquals(Object obj, String fileName)
+ throws Exception {
+ return obj.equals(readObject(obj, fileName));
+ }
+
+ /**
+ * Deserialize an object from a file.
+ *
+ * @param obj the object to be serialized if no serialization file is found
+ * @param fileName the serialization file
+ * @return the deserialized object
+ * @throws Exception If any occurs.
+ */
+ public static Object readObject(Object obj, String fileName)
+ throws Exception {
+ InputStream input = null;
+ ObjectInputStream oinput = null;
+ URL url = SerializationTester.class.getClassLoader().getResource(
+ fileName);
+ if (null == url) {
+ // serialization file does not exist, create one in the current dir
+ writeObject(obj, new File(fileName).getName());
+ throw new Error(
+ "Serialization file does not exist, created in the current dir.");
+ }
+ input = url.openStream();
+ try {
+ oinput = new ObjectInputStream(input);
+ Object newObj = oinput.readObject();
+ return newObj;
+ } finally {
+ try {
+ if (null != oinput) {
+ oinput.close();
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+ try {
+ if (null != input) {
+ input.close();
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ }
+
+ /*
+ * Creates a serialization output.
+ *
+ * @param obj the object to be serialized @param fileName the output file
+ * @throws Exception If any occurs.
+ */
+ public static void writeObject(Object obj, String fileName)
+ throws Exception {
+ // String path = SerializationTester.class.getResource(".").getPath();
+ // if (path.endsWith(".")) {
+ // path = path.substring(0, path.length() - 1);
+ // }
+ // if (!path.endsWith("/")) {
+ // path += "/";
+ // }
+ // path += fileName;
+ // System.out.println(path);
+ OutputStream output = null;
+ ObjectOutputStream ooutput = null;
+ try {
+ output = new FileOutputStream(fileName);
+ ooutput = new ObjectOutputStream(output);
+ ooutput.writeObject(obj);
+ } finally {
+ try {
+ if (null != ooutput) {
+ ooutput.close();
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+ try {
+ if (null != output) {
+ output.close();
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ }
+
+ /**
+ * Gets the last deserialized object.
+ *
+ * @return the last deserialized object
+ */
+ public static Object getLastOutput() {
+ return lastOutput;
+ }
+
+ /*
+ * For test purpose.
+ */
+ public static void main(String[] args) {
+ }
+}
diff --git a/support/src/test/resources/config/jcltest-excludes.xml b/support/src/test/resources/config/jcltest-excludes.xml
new file mode 100644
index 0000000..dac4583
--- /dev/null
+++ b/support/src/test/resources/config/jcltest-excludes.xml
@@ -0,0 +1,2536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hy:suite xmlns:hy="http://incubator.apache.org/harmony/testing"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://incubator.apache.org/harmony/testing excludes.xsd">
+
+ <!-- Applet module test exclusions -->
+
+
+ <!-- Archive module test exclusions -->
+ <hy:type id="tests.api.java.util.zip.GZIPInputStreamTest">
+ <hy:exclude id="test_read$BII" shouldfix="true">
+ <hy:reason>java.io.IOException: Size mismatch</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_close" shouldfix="true">
+ <hy:reason>java.io.IOException: Size mismatch</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.zip.InflaterInputStreamTest">
+ <hy:exclude id="test_ConstructorLjava_io_InputStream" shouldfix="true">
+ <hy:reason>read() threw an exception while testing constructor
+ </hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.zip.InflaterTest">
+ <hy:exclude id="test_setDictionary$B" shouldfix="true">
+ <hy:reason>java.lang.IllegalArgumentException in native method
+ </hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- Auth module test exclusions -->
+ <hy:type
+ id="javax.security.auth.login.serialization.SerAccountExpiredExceptionTest">
+ <hy:exclude id="testGolden" shouldfix="true">
+ <hy:reason>java.io.EOFException</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="javax.security.auth.login.serialization.SerCredentialExpiredExceptionTest">
+ <hy:exclude id="testGolden" shouldfix="true">
+ <hy:reason>java.io.EOFException</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.security.auth.x500.X500PrincipalTest">
+ <hy:exclude id="testValidEncoding" shouldfix="true">
+ <hy:reason>Undiagnosed Error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.javax.security.auth.x500.X500PrincipalTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>Undiagnosed Error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- AWT module test exclusions -->
+
+
+ <!-- Beans module test exclusions -->
+ <hy:type id="java.beans.beancontext.BeanContextServicesSupportTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>protected system package 'java.beans.beancontext'
+ </hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="java.beans.beancontext.BeanContextSupportTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>protected system package 'java.beans.beancontext'
+ </hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.tests.java.beans.BeansTest">
+ <hy:exclude id="testLoadBySpecificClassLoader" shouldfix="true">
+ <hy:reason>Class with name
+ org.apache.harmony.tests.beans.auxiliary.SampleBean is not found
+ </hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testLoadByDefaultClassLoader" shouldfix="true">
+ <hy:reason>Class with name
+ org.apache.harmony.tests.beans.auxiliary.SampleBean is not found
+ </hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.tests.java.beans.EventHandlerTest">
+ <hy:exclude id="testNullListenerMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvoke" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvokeWithNullPropertyName" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateWithDottedParameterCall" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateWithMethodCallWhichIsSetter" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateForStaticMethodAsPropertyGetter"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.tests.java.beans.SimpleBeanInfoTest">
+ <hy:exclude id="testLoadImage" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.BeanDescriptorTest">
+ <hy:exclude id="testBeanDescriptorClass" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBeanDescriptorClassClass_CustomizerClassNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.BeansTest">
+ <hy:exclude id="testInstantiateClassLoaderString_Class"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiateClassLoaderString_Ser" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiateClassLoaderStringBeanContext_Class"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiateClassLoaderStringBeanContext_Ser"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testInstantiateClassLoaderStringBeanContextAppletInitializer_Class"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testInstantiateClassLoaderStringBeanContextAppletInitializer_Ser"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIsInstanceOf_BeanNull" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.CustomizedPersistenceDelegateTest">
+ <hy:exclude id="testArrayPD" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testProxyPD" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPrimitivePD" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMethodPD" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFieldPD" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.DefaultPersistenceDelegateTest">
+ <hy:exclude id="testInstantiate_NullProperty" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiate_EmptyProperty" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiate_NonExistingGetter" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiate_NonExistingGetterNulEncoder"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiate_InitialUpperCasePropName"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiate_NoGetter" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiate_NotRegularGetter" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMutatesTo_NormalNoProperty" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMutatesTo_NormalWithEmptyPropertyPublicEqualMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMutatesTo_Null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_Normal" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NormalBeanInfo" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_SameInstance" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_TransientProperty" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NullClass" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NullInstances" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NullEncoder" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NotRegularGetter" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.EncoderTest">
+ <hy:exclude id="testGetExceptionListener" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetExceptionListener_Null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetExceptionListener" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteExpression_Null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetPersistenceDelegate_BeanInfo" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetPersistenceDelegate_Default" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetPersistenceDelegate_Null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGet_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGet_Integer" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemove_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.EventHandlerTest">
+ <hy:exclude id="testCreateClassObjectString_ObjectNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectString_MethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectString_MethodEmpty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringString_TargetNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringString_ActionNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringString_ActionInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringString_PropertyNameNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringString_PropertyNameInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringStringString_TargetNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringStringString_ActionNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringStringString_ActionInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringStringString_PropertyNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateClassObjectStringStringString_PropertyInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvoke_1" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIncompatibleMethod" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCoverage_1" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvoke_extend2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvoke_extend2_2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvoke_extend4_BooleanObject" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEventHandlerCreate" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.EventSetDescriptorTest">
+ <hy:exclude id="testEventSetDescriptorClassStringClassString2"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEventSetDescriptorClassStringClassString_EventNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEventSetDescriptorClassStringClassString_EventEmpty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassString_EventInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassString_ListenerInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString_sourceClassNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString_eventNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString_eventEmpty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString_listenerMethodNamesNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString_listenerMethodNamesEmpty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString_addListenerMethodNameNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringString_removeListenerMethodNameNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringStringString"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringStringString_getListenerMethodNameNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorClassStringClassStringArrayStringStringString_getListenerMethodNameInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod_EventNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod_EventEmpty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod_ListenerTypeNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod_listenerMethodsNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod_listenerMethodsInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod_addListenerMethodInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethod_removeListenerMethodInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethodMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodArrayMethodMethodMethod_getListenerMethodInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testEventSetDescriptorStringClassMethodDescriptorArrayMethodMethod_ListenerMDNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.ExpressionTest">
+ <hy:exclude id="testConstructor_Normal" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullTarget" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_ArrayTarget" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NewMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_EmptyMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullArguments" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullArgument" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_Normal" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_NullTarget" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_ArrayTarget" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_NullMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_NewMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_EmptyMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_NullArguments" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_NullArgument" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_NullValue" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedNormalInstanceMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedNullMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedOverloadedMethods"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedNormalConstructor"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedOverloadedConstructorsNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedAmbitiousStaticMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedClassForName" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetValue_UnboundedVoidMethod" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_Value_SetValueCalledIn"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.FeatureDescriptorTest">
+ <hy:exclude id="testSetDisplayName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetValue_ValueNull" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.IndexedPropertyDescriptorTest">
+ <hy:exclude id="testEquals" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_ReadMethod" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_ReadMethodNull" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_WriteMethod" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_WriteMethodNull" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_IndexedR" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_IndexedRNull" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_IndexedW" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_IndexWNull" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEquals_PropertyType" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIndexedPropertyDescriptorStringClass"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringClass_PropertyNameInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringClass_NotIndexedProperty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringClassStringStringStringString"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringClassStringStringStringString_IndexedReadMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringClassStringStringStringString_IndexedRWNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringClassStringStringStringString_RNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_propInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_ReadMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_WriteMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_IndexedReadMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_IndexedWriteMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_IndexedRWNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_RWNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_RWIncompatible"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testIndexedPropertyDescriptorStringMethodMethodMethodMethod_IndexedRWIncompatible"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedReadMethod_invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedReadMethod_null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedReadMethod_RInvalidArgs" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedReadMethod_RInvalidArgType"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedReadMethod_RInvalidReturn"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedWriteMethod_null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedWriteMethod" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedWriteMethod_noargs" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedWriteMethod_badargtype" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedWriteMethod_return" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetIndexedWriteMethod_InvalidIndexType"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.IntrospectionExceptionTest">
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.IntrospectorTest">
+ <hy:exclude id="testGetBeanInfoClassClass_ClassInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetBeanInfoClassint_IGNORE_IMMEDIATE_Event"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetBeanInfoClassint_IGNORE_ALL_Event"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetBeanInfoSearchPath" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetBeanInfoSearchPath_Default" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntrospection_5" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntrospection_8" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntrospection_9" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntrospection_10" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntrospection_11" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntrospection_13" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBeanInfo_1" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetBeanInfoSearchPath2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.MethodDescriptorTest">
+ <hy:exclude id="testMethodDescriptorMethod" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMethodDescriptorMethodParameterDescriptorArray"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testMethodDescriptorMethodParameterDescriptorArray_PDNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.PersistenceDelegateTest">
+ <hy:exclude id="testWriteObject_NormalMutatesToFalse" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_NullObject" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_Normal" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NullClass" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NullInstances" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInitialize_NullEncoder" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMutatesTo_Null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.PropertyChangeEventTest">
+ <hy:exclude id="testSerializationCompatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.PropertyChangeSupportTest">
+ <hy:exclude
+ id="testAddPropertyChangeListener_PropertyChangeListener_Normal"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddPropertyChangeListener_PropertyChangeListener_Null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddPropertyChangeListener_PropertyChangeListener_String_Normal"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddPropertyChangeListener_PropertyChangeListener_String_NullListener"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddPropertyChangeListener_PropertyChangeListener_String_NullProperty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddPropertyChangeListener_PropertyChangeListener_String_Duplicate"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemovePropertyChangeListener_PropertyChangeListener_Normal"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemovePropertyChangeListener_PropertyChangeListener_Null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemovePropertyChangeListener_PropertyChangeListener_String_PropertyRegistered"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemovePropertyChangeListener_PropertyChangeListener_String_NullListener"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemovePropertyChangeListener_PropertyChangeListener_String_NullProperty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetPropertyChangeListener_String_Normal"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetPropertyChangeListener_String_Null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testHasListener_PropertyRegistered" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testHasListener_Null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_Object_NullProperty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_Object_NullListener"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_PropertyChangeEvent_NullProperty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_PropertyChangeEvent_NullListener"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_Boolean_NullProperty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_Boolean_NullListener"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_Int_NullProperty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFirePropertyChange_Int_NullListener"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerializationCompatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.PropertyDescriptorTest">
+ <hy:exclude id="testPropertyDescriptorStringClass" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyDescriptorStringClass_PropertyNameInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyDescriptorStringClass_ProtectedGetter"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyDescriptorStringClassStringString"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testPropertyDescriptorStringClassStringString_ReadMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testPropertyDescriptorStringClassStringString_ReadMethodInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testPropertyDescriptorStringClassStringString_WriteMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testPropertyDescriptorStringClassStringString_WriteMethodEmpty"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testPropertyDescriptorStringClassStringString_WriteMethodInvalid"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyDescriptorStringMethodMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyDescriptorStringMethodMethod_ReadMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testPropertyDescriptorStringMethodMethod_WriteMethodNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetReadMethod_Invalid_returnVoid" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetBound_true" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetBound_false" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetConstrained_true" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetConstrained_false" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.PropertyEditorManagerTest">
+ <hy:exclude id="testGetEditorSearchPath_default" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetEditorSearchPath_null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBoolEditor_setAsText" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBoolEditor_setAsText_null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBoolEditor_setAsText_Invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testByteEditor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testByteEditor_null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testByteEditor_invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testByteEditor_invalid2" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testDoubleEditor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testDoubleEditor_SetAsText_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testDoubleEditor_SetAsText_Invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFloatEditor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFloatEditor_SetAsText_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFloatEditor_SetAsText_Invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testLongEditor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testLongEditor_SetAsText_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testLongEditor_SetAsText_Invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testShortEditor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testShortEditor_SetAsText_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testShortEditor_SetAsText_Invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntegerEditor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntegerEditor_SetAsText_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIntegerEditor_SetAsText_Invalid" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testStringEditor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testStringEditor_SetAsText_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testStringEditor_SetAsText_SpecialChars"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.PropertyEditorSupportTest">
+ <hy:exclude id="testPropertyEditorSupport" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyEditorSupportObject" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyEditorSupportObject_null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAddPropertyChangeListener" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAddPropertyChangeListener_source_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAddPropertyChangeListener_null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemovePropertyChangeListener" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemovePropertyChangeListener_null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemovePropertyChangeListener_diff" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemovePropertyChangeListener_null_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetAsText" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetValue" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetValue_null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.PropertyVetoExceptionTest">
+ <hy:exclude id="testSerializablization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.StatementTest">
+ <hy:exclude id="testConstructor_Normal" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullTarget" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_ArrayTarget" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NewMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_EmptyMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullArguments" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testConstructor_NullArgument" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_NormalInstanceMethod" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_NullMethodName" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_OverloadedMethods" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_NormalConstructor" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_OverloadedConstructorsNull"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_AmbitiousStaticMethod" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_ClassForName" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_ArrayGet" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_ArrayInvalidSet" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_PrimitiveVSWrapper" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExecute_IntMethodNullParameter" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.VetoableChangeListenerProxyTest">
+ <hy:exclude id="testVetoableChangeListenerProxy" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.VetoableChangeSupportTest">
+ <hy:exclude
+ id="testAddVetoableChangeListenerStringVetoableChangeListener_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddVetoableChangeListenerVetoableChangeListener_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddVetoableChangeListenerVetoableChangeListener_Proxy"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFireVetoableChangePropertyChangeEvent_Veto"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFireVetoableChangePropertyChangeEvent_listener_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testFireVetoableChangeStringbooleanboolean_listener_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testFireVetoableChangeStringbooleanboolean_listener_null_property"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerStringVetoableChangeListener_property"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerStringVetoableChangeListener_property_more"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerStringVetoableChangeListener_property_diff"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerStringVetoableChangeListener_listener_diff"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerStringVetoableChangeListener_listener_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerStringVetoableChangeListener_propertyName_Null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerStringVetoableChangeListener_listener_null_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerVetoableChangeListener_all_more_diff"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerVetoableChangeListener_all_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testRemoveVetoableChangeListenerVetoableChangeListener_null_null"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.XMLDecoderTest">
+ <hy:exclude id="testGetExceptionListener" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_Integer" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_StringCodec" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_IntArray" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_PropertyDependency" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_NoChange" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_BornFriendChange" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_ManyChanges" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_StaticField" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_Owner" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadObject_Owner_WithWriteStatement"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetExceptionListener_CatchException"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testXMLDecoderInputStream" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testXMLDecoderInputStreamObject" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.XMLEncoderTest">
+ <hy:exclude id="testWriteObject_Null" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_Integer" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_StringCodec" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_IntArray" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_PropertyDependency" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_NoChange" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_BornFriendChange" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_ManyChanges" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_ManyChanges_2" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_SetOwner" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_SetOwnerWithWriteStatement"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testWriteObject_StaticField" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFlush" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.beancontext.BeanContextChildSupportTest">
+ <hy:exclude id="testAddPropertyChangeListener_NullParam"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAddVetoableChangeListener_NullParam"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testServiceAvailable" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testServiceRevoked" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetBeanContext" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetBeanContext_VetoedByListener" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetBeanContext_VetoedByValidateMethod"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_NoPeer" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_WithPeer" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="tests.api.java.beans.beancontext.BeanContextMembershipEventTest">
+ <hy:exclude id="testSerialization" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="tests.api.java.beans.beancontext.BeanContextServiceAvailableEventTest">
+ <hy:exclude id="testSerialization" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="tests.api.java.beans.beancontext.BeanContextServiceRevokedEventTest">
+ <hy:exclude id="testBeanContextServiceRevokedEvent_NullParam"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBeanContextServiceRevokedEvent" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetSourceAsBeanContextServices" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="tests.api.java.beans.beancontext.BeanContextServicesSupportTest">
+ <hy:exclude id="testAddServiceClassBeanContextServiceProvider_NullParam"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAddServiceClassBeanContextServiceProvider_Exist"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="testAddServiceClassBeanContextServiceProviderboolean_FalseParam"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testChildJustRemovedHook" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFireServiceRevokedClassboolean" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetCurrentServiceClasses" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetCurrentServiceSelectors_NullParam"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetCurrentServiceSelectors_NonExist"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetCurrentServiceSelectors" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetService_NullParam" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetService_NonChild" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetService_ThisContext" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetService_ParentContext" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testHasService_ParentService" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReleaseBeanContextResources" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReleaseService_WrongChildOrRequestor"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReleaseService" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRevokeService_ChildContext" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.beans.beancontext.BeanContextSupportTest">
+ <hy:exclude id="testAdd_NonBCC" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAdd_BCC" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAdd_BCP" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAdd_Exist" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAdd_Veto" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAddAll" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAddBeanContextMembershipListener" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testAvoidingGui_VisibleChild" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBcsChildren" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBcsPreDeserializationHook" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBcsPreSerializationHook" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testChildDeserializedHook" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testContains" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testContainsAll" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testContainsKey" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCopyChildren" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetChildBeanContextChild_Both" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResource_NullParam" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResource_NonChild" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResource_NotExist" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResource" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResourceAsStream_NullParam" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResourceAsStream_NonChild" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResourceAsStream_NotExist" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetResourceAsStream" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInstantiateChild" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIsEmpty" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testIterator" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testNeedsGui_NoVisibleChild" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testNeedsGui_VisibilityChild" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testPropertyChange" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testReadChildren" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveBeanContextMembershipListener"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveObject_NonBCC" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveObject_BCC" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveObject_BCP" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveObject_BCP2" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveObject_NonExist" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveObject_Veto" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testRemoveObjectboolean" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetDesignTime" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetLocale_NullParam" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetLocale" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetLocale_Veto" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testToArray" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testToArrayObjectArray_WrongType" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testToArrayObjectArray_LesserLength" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testToArrayObjectArray_RightLength" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testToArrayObjectArray_GreaterLength" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testVetoableChange" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_NoPeer" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Peer" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSerialization_Compatibility" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- Crypto module test exclusions -->
+
+
+ <!-- JNDI module test exclusions -->
+
+
+ <!-- Logging module test exclusions -->
+ <hy:type
+ id="org.apache.harmony.logging.tests.java.util.logging.FileHandlerTest">
+ <hy:exclude id="testSecurity" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFileSecurity" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvalidProperty" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testInvalidParams" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSetOutputStream" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testFileHandlerString" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="org.apache.harmony.logging.tests.java.util.logging.LogManagerTest">
+ <hy:exclude id="testDefaultLoggerProperties" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetProperty" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="org.apache.harmony.logging.tests.java.util.logging.SocketHandlerTest">
+ <hy:exclude id="testPublish_Null" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- LUNI module test exclusions -->
+ <hy:type id="tests.api.java.io.InputStreamReaderTest">
+ <hy:exclude id="test_read" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.io.ObjectInputStreamTest">
+ <hy:exclude id="test_ConstructorLjava_io_InputStream_subtest0"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.io.ObjectOutputStreamTest">
+ <hy:exclude id="test_ConstructorLjava_io_OutputStream_subtest0"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_writeObject_NotSerializable" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.io.OutputStreamWriterTest">
+ <hy:exclude id="testSingleCharIO" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testBlockIO" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_close" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.io.PipedInputStreamTest">
+ <hy:exclude id="test_receive" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.AssertionErrorTest">
+ <hy:exclude id="test_ObjectConstructor" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.ClassTest">
+ <hy:exclude id="test_getResourceLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getResourceAsStreamLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.ProcessTest">
+ <hy:exclude id="test_getOutputStream" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.StringTest">
+ <hy:exclude id="test_concatLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getBytes" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getBytesLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.DatagramSocketTest">
+ <hy:exclude id="test_connectLjava_net_InetAddressI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.HttpURLConnectionTest">
+ <hy:exclude id="test_getResponseCode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getResponseMessage" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getHeaderFields" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_usingProxy" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.InetAddressTest">
+ <hy:exclude id="test_getHostName" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_toString" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.JarURLConnectionTest">
+ <hy:exclude id="test_getAttributes" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getJarEntry" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getMainAttributes" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.MulticastSocketTest">
+ <hy:exclude id="test_ConstructorI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getInterface" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getNetworkInterface" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getTimeToLive" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getTTL" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_joinGroupLjava_net_InetAddress" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="test_joinGroupLjava_net_SocketAddressLjava_net_NetworkInterface"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_leaveGroupLjava_net_InetAddress" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="test_leaveGroupLjava_net_SocketAddressLjava_net_NetworkInterface"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_sendLjava_net_DatagramPacketB" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_setInterfaceLjava_net_InetAddress"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_setNetworkInterfaceLjava_net_NetworkInterface"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_setTimeToLiveI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_setTTLB" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_setLoopbackModeZ" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_setReuseAddressZ" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.ServerSocketTest">
+ <hy:exclude id="test_toString" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.SocketImplTest">
+ <hy:exclude id="test_Constructor" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.SocketTest">
+ <hy:exclude
+ id="test_ConstructorLjava_lang_StringILjava_net_InetAddressI"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.URLClassLoaderTest">
+ <hy:exclude id="test_findResourcesLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_newInstance$Ljava_net_URL" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_findClassLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_findResourceLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.URLConnectionTest">
+ <hy:exclude id="test_getContent" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getContentLength" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getContentType" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getHeaderFieldI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getHeaderFields" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getHeaderFieldKeyI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getInputStream" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getOutputStream" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_guessContentTypeFromStreamLjava_io_InputStream"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.URLTest">
+ <hy:exclude
+ id="test_ConstructorLjava_lang_StringLjava_lang_StringLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_openStream" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getAuthority" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.CalendarTest">
+ <hy:exclude id="test_setII" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.LocaleTest">
+ <hy:exclude id="test_toString" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- Math module test exclusions -->
+
+
+ <!-- NIO module test exclusions -->
+
+
+ <!-- NIO_Char module test exclusions -->
+ <hy:type id="tests.api.java.nio.charset.ASCCharsetEncoderTest">
+ <hy:exclude id="testCanEncodeCharSequence" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMultiStepEncode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.CharsetEncoderTest">
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.CharsetEncoderTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>Failure - Exception in constructor</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.CharsetTest">
+ <hy:exclude id="testEncode_CharBuffer_Normal" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEncode_String_Normal" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.ConcreteCharsetTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>Failure - No public constructor</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.GBCharsetEncoderTest">
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMultiStepEncode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.ISOCharsetEncoderTest">
+ <hy:exclude id="testCanEncodeCharSequence" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSpecificDefaultValue" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMultiStepEncode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.UTF16BECharsetEncoderTest">
+ <hy:exclude id="testSpecificDefaultValue" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMultiStepEncode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.UTF16CharsetDecoderTest">
+ <hy:exclude id="testMultiStepDecode" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.UTF16CharsetEncoderTest">
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMultiStepEncode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.UTF16LECharsetEncoderTest">
+ <hy:exclude id="testSpecificDefaultValue" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMultiStepEncode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.nio.charset.UTFCharsetEncoderTest">
+ <hy:exclude id="testEncodeCharBufferException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testMultiStepEncode" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- Prefs module test exclusions -->
+ <hy:type
+ id="org.apache.harmony.prefs.tests.java.util.prefs.AbstractPreferencesTest">
+ <hy:exclude id="testPutByteArray" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExportNode" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testExportSubtree" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="org.apache.harmony.prefs.tests.java.util.prefs.FilePreferencesImplTest">
+ <hy:exclude id="testPutGet" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testChildNodes" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testSecurityException" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="org.apache.harmony.prefs.tests.java.util.prefs.PreferencesTest">
+ <hy:exclude id="testImportPreferences" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- Regex module test exclusions -->
+
+
+ <!-- RMI module test exclusions -->
+
+
+ <!-- Security module test exclusions -->
+ <hy:type id="java.security.serialization.KeyPairTest">
+ <hy:exclude id="testSerialization02" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.AccessControllerTest">
+ <hy:exclude id="test_doPrivilegedLjava_security_PrivilegedAction"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.AlgorithmParameterGeneratorTest">
+ <hy:exclude id="test_initLjava_security_spec_AlgorithmParameterSpec"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="test_initLjava_security_spec_AlgorithmParameterSpecLjava_security_SecureRandom"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.AlgorithmParametersTest">
+ <hy:exclude id="test_getEncodedLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.KeyStoreTest">
+ <hy:exclude id="test_aliases" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_containsAliasLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getCertificateLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getCertificateAliasLjava_security_cert_Certificate"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getCertificateChainLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getInstanceLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getInstanceLjava_lang_StringLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getKeyLjava_lang_String$C" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getProvider" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getType" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_isCertificateEntryLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_isKeyEntryLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_loadLjava_io_InputStream$C" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="test_setCertificateEntryLjava_lang_StringLjava_security_cert_Certificate"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="test_setKeyEntryLjava_lang_String$B$Ljava_security_cert_Certificate"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="test_setKeyEntryLjava_lang_StringLjava_security_Key$C$Ljava_security_cert_Certificate"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_size" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.PermissionCollectionTest">
+ <hy:exclude id="test_impliesLjava_security_Permission" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.SecureRandomTest">
+ <hy:exclude id="test_getInstanceLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getInstanceLjava_lang_StringLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.SecurityTest">
+ <hy:exclude id="test_addProviderLjava_security_Provider"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getProvidersLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getProvidersLjava_util_Map" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.cert.CertificateFactoryTest">
+ <hy:exclude id="test_generateCertificateLjava_io_InputStream"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.cert.X509CertificateTest">
+ <hy:exclude id="test_getExtensionValueLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.cert.X509CRLEntryTest">
+ <hy:exclude id="test_getExtensionValueLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.security.cert.X509CRLTest">
+ <hy:exclude id="test_getExtensionValueLjava_lang_String"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- SQL module test exclusions -->
+ <hy:type id="org.apache.harmony.sql.tests.java.sql.ArrayTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>This class contains no test methods</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- Text module test exclusions -->
+ <hy:type
+ id="org.apache.harmony.text.tests.java.text.AttributedCharacterIteratorTest">
+ <hy:exclude
+ id="test_getRunLimitLjava_text_AttributedCharacterIterator$Attribute"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.text.tests.java.text.ChoiceFormatTest">
+ <hy:exclude id="test_toPattern" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.text.tests.java.text.CollationKeyTest">
+ <hy:exclude id="test_toByteArray" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.text.tests.java.text.CollatorTest">
+ <hy:exclude id="test_getAvailableLocales" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getDecomposition" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_setDecompositionI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type
+ id="org.apache.harmony.text.tests.java.text.DecimalFormatSymbolsTest">
+ <hy:exclude id="test_RIHarmony_compatible" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.text.tests.java.text.DecimalFormatTest">
+ <hy:exclude
+ id="test_formatDLjava_lang_StringBufferLjava_text_FieldPosition"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude
+ id="test_formatJLjava_lang_StringBufferLjava_text_FieldPosition"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_formatToCharacterIteratorLjava_lang_Object"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getCurrency" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_parseLjava_lang_StringLjava_text_ParsePosition"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.text.tests.java.text.MessageFormatTest">
+ <hy:exclude id="test_applyPatternLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_formatToCharacterIteratorLjava_lang_Object"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="org.apache.harmony.text.tests.java.text.NumberFormatTest">
+ <hy:exclude
+ id="test_formatLjava_lang_ObjectLjava_lang_StringBufferLjava_text_FieldPosition"
+ shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getCurrency" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+
+ <!-- X-Net module test exclusions -->
+ <hy:type id="javax.net.ServerSocketFactoryTest">
+ <hy:exclude id="testGetDefault" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.SocketFactoryTest">
+ <hy:exclude id="testGetDefault" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.ssl.DefaultSSLServerSocketFactoryTest">
+ <hy:exclude id="testCreateServerSocketint" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateServerSocketintint" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateServerSocketintintInetAddress"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetDefaultCipherSuites" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetSupportedCipherSuites" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.ssl.DefaultSSLSocketFactoryTest">
+ <hy:exclude id="testCreateSocketStringint" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateSocketStringintInetAddressint"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateSocketInetAddressint" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateSocketInetAddressintInetAddressint"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetDefaultCipherSuites" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetSupportedCipherSuites" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testCreateSocketSocketStringintboolean"
+ shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.ssl.HttpsURLConnectionTest">
+ <hy:exclude id="testGetDefaultHostnameVerifier" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGetHostnameVerifier" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.ssl.SSLServerSocketFactoryTest">
+ <hy:exclude id="testGetDefault" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.ssl.SSLSocketFactoryTest">
+ <hy:exclude id="testGetDefault" shouldfix="true">
+ <hy:reason>Undiagnosed error</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.ssl.serialization.HandshakeCompletedEventTest">
+ <hy:exclude id="testSelf" shouldfix="true">
+ <hy:reason>This test requires a JSSE provider</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGolden" shouldfix="true">
+ <hy:reason>This test requires a JSSE provider</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="javax.net.ssl.serialization.SSLSessionBindingEventTest">
+ <hy:exclude id="testSelf" shouldfix="true">
+ <hy:reason>This test requires a JSSE provider</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="testGolden" shouldfix="true">
+ <hy:reason>This test requires a JSSE provider</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+</hy:suite>
diff --git a/support/src/test/resources/hyts_Foo.c b/support/src/test/resources/hyts_Foo.c
new file mode 100644
index 0000000..907de59
--- /dev/null
+++ b/support/src/test/resources/hyts_Foo.c
@@ -0,0 +1 @@
+/* Some random file for it to look at. */ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/Broken_entry.jar b/support/src/test/resources/tests/resources/Broken_entry.jar
new file mode 100644
index 0000000..e6e7927
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Broken_entry.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Broken_manifest.jar b/support/src/test/resources/tests/resources/Broken_manifest.jar
new file mode 100644
index 0000000..4c3ff31
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Broken_manifest.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Created_by_1_4.jar b/support/src/test/resources/tests/resources/Created_by_1_4.jar
new file mode 100644
index 0000000..1fe7947
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Created_by_1_4.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/EmptyEntries_signed.jar b/support/src/test/resources/tests/resources/EmptyEntries_signed.jar
new file mode 100644
index 0000000..237d244
--- /dev/null
+++ b/support/src/test/resources/tests/resources/EmptyEntries_signed.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Harmony.GIF b/support/src/test/resources/tests/resources/Harmony.GIF
new file mode 100644
index 0000000..be2dc56
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Harmony.GIF
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Inserted_Entry_Manifest.jar b/support/src/test/resources/tests/resources/Inserted_Entry_Manifest.jar
new file mode 100644
index 0000000..154d8d6
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Inserted_Entry_Manifest.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Inserted_Entry_Manifest_with_DigestCode.jar b/support/src/test/resources/tests/resources/Inserted_Entry_Manifest_with_DigestCode.jar
new file mode 100644
index 0000000..a94ae49
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Inserted_Entry_Manifest_with_DigestCode.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Integrate.jar b/support/src/test/resources/tests/resources/Integrate.jar
new file mode 100644
index 0000000..16e9c55
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Integrate.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_11.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_11.jar
new file mode 100644
index 0000000..19cf5f2
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_11.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_12.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_12.jar
new file mode 100644
index 0000000..236659b
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_12.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_13.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_13.jar
new file mode 100644
index 0000000..9ea6806
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_13.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_14.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_14.jar
new file mode 100644
index 0000000..d8bc44b
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_14.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_21.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_21.jar
new file mode 100644
index 0000000..c25d4bf
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_21.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_22-new.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_22-new.jar
new file mode 100644
index 0000000..542c22a
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_22-new.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_22.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_22.jar
new file mode 100644
index 0000000..84c7af0
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_22.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_23.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_23.jar
new file mode 100644
index 0000000..a932052
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_23.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_31.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_31.jar
new file mode 100644
index 0000000..ab69696
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_31.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_32.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_32.jar
new file mode 100644
index 0000000..12de6bb
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_32.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_33.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_33.jar
new file mode 100644
index 0000000..086e494
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_33.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_41.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_41.jar
new file mode 100644
index 0000000..fb71bf8
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_41.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_42.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_42.jar
new file mode 100644
index 0000000..06a35cd
--- /dev/null
+++ b/support/src/test/resources/tests/resources/JarIndex/hyts_42.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Modified_Class.jar b/support/src/test/resources/tests/resources/Modified_Class.jar
new file mode 100644
index 0000000..d8113c7
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Modified_Class.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Modified_Manifest_EntryAttributes.jar b/support/src/test/resources/tests/resources/Modified_Manifest_EntryAttributes.jar
new file mode 100644
index 0000000..bd1dbb1
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Modified_Manifest_EntryAttributes.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Modified_Manifest_MainAttributes.jar b/support/src/test/resources/tests/resources/Modified_Manifest_MainAttributes.jar
new file mode 100644
index 0000000..5bc60e6
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Modified_Manifest_MainAttributes.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Modified_SF_EntryAttributes.jar b/support/src/test/resources/tests/resources/Modified_SF_EntryAttributes.jar
new file mode 100644
index 0000000..7b76694
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Modified_SF_EntryAttributes.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Package/hyts_all_attributes.jar b/support/src/test/resources/tests/resources/Package/hyts_all_attributes.jar
new file mode 100644
index 0000000..bde3f4d
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Package/hyts_all_attributes.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Package/hyts_c.jar b/support/src/test/resources/tests/resources/Package/hyts_c.jar
new file mode 100644
index 0000000..111f73c
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Package/hyts_c.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Package/hyts_no_attributes.jar b/support/src/test/resources/tests/resources/Package/hyts_no_attributes.jar
new file mode 100644
index 0000000..1879acb
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Package/hyts_no_attributes.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Package/hyts_no_entry.jar b/support/src/test/resources/tests/resources/Package/hyts_no_entry.jar
new file mode 100644
index 0000000..66090a5
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Package/hyts_no_entry.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Package/hyts_pq.jar b/support/src/test/resources/tests/resources/Package/hyts_pq.jar
new file mode 100644
index 0000000..5919f6c
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Package/hyts_pq.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/Package/hyts_some_attributes.jar b/support/src/test/resources/tests/resources/Package/hyts_some_attributes.jar
new file mode 100644
index 0000000..95c87a8
--- /dev/null
+++ b/support/src/test/resources/tests/resources/Package/hyts_some_attributes.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/ServiceLoader/hyts_services.jar b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services.jar
new file mode 100644
index 0000000..12503a6
--- /dev/null
+++ b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/ServiceLoader/hyts_services2.jar b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services2.jar
new file mode 100644
index 0000000..a7a754a
--- /dev/null
+++ b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services2.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/TestCodeSigners.jar b/support/src/test/resources/tests/resources/TestCodeSigners.jar
new file mode 100644
index 0000000..a4c42aa
--- /dev/null
+++ b/support/src/test/resources/tests/resources/TestCodeSigners.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_Bar.ser b/support/src/test/resources/tests/resources/hyts_Bar.ser
new file mode 100644
index 0000000..2802528
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_Bar.ser
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_Foo.ser b/support/src/test/resources/tests/resources/hyts_Foo.ser
new file mode 100644
index 0000000..9f511ac
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_Foo.ser
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_PropertiesTest.properties b/support/src/test/resources/tests/resources/hyts_PropertiesTest.properties
new file mode 100644
index 0000000..6c1b950
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_PropertiesTest.properties
@@ -0,0 +1,29 @@
+
+
+
+
+ \ \r \n \t \f
+
+
+! dshfjklahfjkldashgjl;as
+ #jdfagdfjagkdjfghksdajfd
+
+!!properties
+
+a=a
+b bb as,dn
+c\r\ \t\nu =:: cu
+bu= b\
+ u
+d=d\r\ne=e
+f :f\
+f\
+ f
+g g
+h\u0020h
+\ i=i
+j=\ j
+space=\ c
+
+dblbackslash=\\
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/hyts_ZipFile.zip b/support/src/test/resources/tests/resources/hyts_ZipFile.zip
new file mode 100644
index 0000000..f9cd6ed
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_ZipFile.zip
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_att.jar b/support/src/test/resources/tests/resources/hyts_att.jar
new file mode 100644
index 0000000..7f4530c
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_att.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_available.tst b/support/src/test/resources/tests/resources/hyts_available.tst
new file mode 100644
index 0000000..d67b2f4
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_available.tst
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_checkInput.txt b/support/src/test/resources/tests/resources/hyts_checkInput.txt
new file mode 100644
index 0000000..6d49d33
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_checkInput.txt
@@ -0,0 +1,4 @@
+ crc.reset();
+ crc.update(1);
+ //System.out.print("value of crc"+crc.getValue());
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/hyts_compDiction.bin b/support/src/test/resources/tests/resources/hyts_compDiction.bin
new file mode 100644
index 0000000..f0478c8
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_compDiction.bin
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_compressD.bin b/support/src/test/resources/tests/resources/hyts_compressD.bin
new file mode 100644
index 0000000..36c89f2
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_compressD.bin
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_construOD.bin b/support/src/test/resources/tests/resources/hyts_construOD.bin
new file mode 100644
index 0000000..035d12e
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_construOD.bin
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_construODI.bin b/support/src/test/resources/tests/resources/hyts_construODI.bin
new file mode 100644
index 0000000..1e5d284
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_construODI.bin
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_htmltest.html b/support/src/test/resources/tests/resources/hyts_htmltest.html
new file mode 100644
index 0000000..c7795c2
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_htmltest.html
@@ -0,0 +1,63 @@
+<HTML>
+<TITLE>Test HTML Document</TITLE>
+
+<BODY>
+<H2>Test HTML Document</H2>
+This file is used by the <CODE>Test_java_net_URL.test_getContent()</CODE>.
+<p>
+ It contains the string
+ <quote>A Seemingly Non Important String</quote>
+ . Which is
+ looked for in the testcase.
+<P>
+<UL>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+ <LI>A Line of text</LI>
+</UL>
+<p>
+ A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph. A bunch of text representing part of a
+ paragraph. A bunch of text representing part of a paragraph. A bunch of text
+ representing part of a paragraph.
+
+<p>
+
+ The End.
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/hyts_mainClass.ser b/support/src/test/resources/tests/resources/hyts_mainClass.ser
new file mode 100644
index 0000000..0421ba9
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_mainClass.ser
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_manifest1.jar b/support/src/test/resources/tests/resources/hyts_manifest1.jar
new file mode 100644
index 0000000..fb292b2
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_manifest1.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_missingclass.ser b/support/src/test/resources/tests/resources/hyts_missingclass.ser
new file mode 100644
index 0000000..0a71403
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_missingclass.ser
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_patch.jar b/support/src/test/resources/tests/resources/hyts_patch.jar
new file mode 100644
index 0000000..f3c51d0
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_patch.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_patch2.jar b/support/src/test/resources/tests/resources/hyts_patch2.jar
new file mode 100644
index 0000000..c26f9e7
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_patch2.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_resource.properties b/support/src/test/resources/tests/resources/hyts_resource.properties
new file mode 100644
index 0000000..baf5762
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_resource.properties
@@ -0,0 +1,2 @@
+property=parent
+propertyInSystemParent=valueInSystemParent
diff --git a/support/src/test/resources/tests/resources/hyts_security.jar b/support/src/test/resources/tests/resources/hyts_security.jar
new file mode 100644
index 0000000..abef675
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_security.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/hyts_signed.jar b/support/src/test/resources/tests/resources/hyts_signed.jar
new file mode 100644
index 0000000..8ea8489
--- /dev/null
+++ b/support/src/test/resources/tests/resources/hyts_signed.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/manifest/hyts_MANIFEST.MF b/support/src/test/resources/tests/resources/manifest/hyts_MANIFEST.MF
new file mode 100644
index 0000000..2402bca
--- /dev/null
+++ b/support/src/test/resources/tests/resources/manifest/hyts_MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-Name: ClientSupport
+Bundle-Description: Provides SessionService, AuthenticationService. Extends RegistryService.
+Bundle-Activator: com.ibm.ive.eccomm.client.support.ClientSupportActivator
+Import-Package: com.ibm.ive.eccomm.client.services.log,
+ com.ibm.ive.eccomm.client.services.registry,
+ com.ibm.ive.eccomm.service.registry; specification-version=1.0.0,
+ com.ibm.ive.eccomm.service.session; specification-version=1.0.0,
+ com.ibm.ive.eccomm.service.framework; specification-version=1.2.0,
+ org.osgi.framework; specification-version=1.0.0,
+ org.osgi.service.log; specification-version=1.0.0,
+ com.ibm.ive.eccomm.flash; specification-version=1.2.0,
+ com.ibm.ive.eccomm.client.xml,
+ com.ibm.ive.eccomm.client.http.common,
+ com.ibm.ive.eccomm.client.http.client
+Import-Service: org.osgi.service.log.LogReaderService
+ org.osgi.service.log.LogService,
+ com.ibm.ive.eccomm.service.registry.RegistryService
+Export-Package: com.ibm.ive.eccomm.client.services.authentication; specification-version=1.0.0,
+ com.ibm.ive.eccomm.service.authentication; specification-version=1.0.0,
+ com.ibm.ive.eccomm.common; specification-version=1.0.0,
+ com.ibm.ive.eccomm.client.services.registry.store; specification-version=1.0.0
+Export-Service: com.ibm.ive.eccomm.service.authentication.AuthenticationService,
+ com.ibm.ive.eccomm.service.session.SessionService
+Bundle-Vendor: IBM
+Bundle-Version: 1.2.0
diff --git a/support/src/test/resources/tests/resources/morestuff/hyts_patch.jar b/support/src/test/resources/tests/resources/morestuff/hyts_patch.jar
new file mode 100644
index 0000000..f3c51d0
--- /dev/null
+++ b/support/src/test/resources/tests/resources/morestuff/hyts_patch.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/morestuff/hyts_patch2.jar b/support/src/test/resources/tests/resources/morestuff/hyts_patch2.jar
new file mode 100644
index 0000000..c26f9e7
--- /dev/null
+++ b/support/src/test/resources/tests/resources/morestuff/hyts_patch2.jar
Binary files differ
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en.properties b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en.properties
new file mode 100644
index 0000000..40b8caf
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en.properties
@@ -0,0 +1,2 @@
+property=en_resource
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.java b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.java
new file mode 100644
index 0000000..1913879
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.norootresources;
+
+public class hyts_resource_en_US extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent3", "enUSValue3" },
+ { "subParent4", "enUSValue4" },
+ { "subChild1", "enUSChildValue1" },
+ { "subChild2", "enUSChildValue2" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.properties b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.properties
new file mode 100644
index 0000000..06c99f6
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US.properties
@@ -0,0 +1,2 @@
+property=en_US_resource
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US_VAR.java b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US_VAR.java
new file mode 100644
index 0000000..1c75ec8
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_en_US_VAR.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.norootresources;
+
+public class hyts_resource_en_US_VAR extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent4", "enUSVARValue4" },
+ { "subChild1", "enUSVARChildValue1" },
+ { "subChild2", "enUSVARChildValue2" },
+ { "subChild3", "enUSVARChildValue3" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.java b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.java
new file mode 100644
index 0000000..d049d7b
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.norootresources;
+
+public class hyts_resource_fr extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent2", "frValue2" },
+ { "subParent3", "frValue3" }, { "subParent4", "frValue4" },
+ { "subChild1", "frChildValue1" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.properties b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.properties
new file mode 100644
index 0000000..447f06c
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr.properties
@@ -0,0 +1,3 @@
+property=fr_resource
+propertyInFR=valueInFR
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.java b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.java
new file mode 100644
index 0000000..ae11beb
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.norootresources;
+
+public class hyts_resource_fr_FR extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent3", "frFRValue3" },
+ { "subParent4", "frFRValue4" },
+ { "subChild1", "frFRChildValue1" },
+ { "subChild2", "frFRChildValue2" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.properties b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.properties
new file mode 100644
index 0000000..0ac2c73
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR.properties
@@ -0,0 +1,3 @@
+property=fr_FR_resource
+propertyInFRFR=valueInFRFR
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.java b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.java
new file mode 100644
index 0000000..958c5ff
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package tests.resources.subfolder.tests.norootresources;
+
+public class hyts_resource_fr_FR_VAR extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent4", "frFRVARValue4" },
+ { "subChild1", "frFRVARChildValue1" },
+ { "subChild2", "frFRVARChildValue2" },
+ { "subChild3", "frFRVARChildValue3" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.properties b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.properties
new file mode 100644
index 0000000..dd76478
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/norootresources/hyts_resource_fr_FR_VAR.properties
@@ -0,0 +1,2 @@
+property=fr_FR_VAR_resource
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.java b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.java
new file mode 100644
index 0000000..afa3e6e
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.resources;
+
+public class hyts_resource extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent1", "subParentValue1" },
+ { "subParent2", "subParentValue2" },
+ { "subParent3", "subParentValue3" },
+ { "subParent4", "subParentValue4" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.properties b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.properties
new file mode 100644
index 0000000..eae054e
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource.properties
@@ -0,0 +1,3 @@
+property=resource
+propertyInURLParent=valueInURLParent
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en.properties b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en.properties
new file mode 100644
index 0000000..40b8caf
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en.properties
@@ -0,0 +1,2 @@
+property=en_resource
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.java b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.java
new file mode 100644
index 0000000..16c6e08
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.resources;
+
+public class hyts_resource_en_US extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent3", "enUSValue3" },
+ { "subParent4", "enUSValue4" },
+ { "subChild1", "enUSChildValue1" },
+ { "subChild2", "enUSChildValue2" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.properties b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.properties
new file mode 100644
index 0000000..06c99f6
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US.properties
@@ -0,0 +1,2 @@
+property=en_US_resource
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US_VAR.java b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US_VAR.java
new file mode 100644
index 0000000..aba4675
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_en_US_VAR.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.resources;
+
+public class hyts_resource_en_US_VAR extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent4", "enUSVARValue4" },
+ { "subChild1", "enUSVARChildValue1" },
+ { "subChild2", "enUSVARChildValue2" },
+ { "subChild3", "enUSVARChildValue3" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.java b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.java
new file mode 100644
index 0000000..adac070
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.resources.subfolder.tests.resources;
+
+public class hyts_resource_fr extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent2", "frValue2" },
+ { "subParent3", "frValue3" }, { "subParent4", "frValue4" },
+ { "subChild1", "frChildValue1" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.properties b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.properties
new file mode 100644
index 0000000..447f06c
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr.properties
@@ -0,0 +1,3 @@
+property=fr_resource
+propertyInFR=valueInFR
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR.properties b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR.properties
new file mode 100644
index 0000000..0ac2c73
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR.properties
@@ -0,0 +1,3 @@
+property=fr_FR_resource
+propertyInFRFR=valueInFRFR
+ \ No newline at end of file
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.java b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.java
new file mode 100644
index 0000000..5d48aa3
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package tests.resources.subfolder.tests.resources;
+
+public class hyts_resource_fr_FR_VAR extends java.util.ListResourceBundle {
+
+ @Override
+ protected Object[][] getContents() {
+ Object[][] contents = { { "subParent4", "frFRVARValue4" },
+ { "subChild1", "frFRVARChildValue1" },
+ { "subChild2", "frFRVARChildValue2" },
+ { "subChild3", "frFRVARChildValue3" }, };
+ return contents;
+ }
+
+}
diff --git a/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.properties b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.properties
new file mode 100644
index 0000000..dd76478
--- /dev/null
+++ b/support/src/test/resources/tests/resources/subfolder/tests/resources/hyts_resource_fr_FR_VAR.properties
@@ -0,0 +1,2 @@
+property=fr_FR_VAR_resource
+ \ No newline at end of file