diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2020-04-28 20:27:13 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-04-28 20:27:13 +0000 |
commit | d397a63c7d59dd3956409e3cd3064dfa73555a9b (patch) | |
tree | 720d2b2d76a78fe0ba19b8a48e19a488d616ec7f | |
parent | eee34a6105388fc3c5cdafc62a066a60e177859e (diff) | |
parent | b115c18dcfcc7433d89826f86a1f5889d3a6e37f (diff) | |
download | apache-harmony-android10-mainline-tzdata-release.tar.gz |
Snap for 6439596 from b115c18dcfcc7433d89826f86a1f5889d3a6e37f to qt-aml-tzdata-releaseq_tzdata_aml_297100400q_tzdata_aml_297100300q_tzdata_aml_297100000q_tzdata_aml_296200000q_tzdata_aml_295600118q_tzdata_aml_295600110q_tzdata_aml_295500002q_tzdata_aml_295500001q_tzdata_aml_294400310android-mainline-12.0.0_r54android-mainline-12.0.0_r111android-mainline-10.0.0_r13android-mainline-10.0.0_r12android-mainline-10.0.0_r11q_tzdata_aml_297100000android12-mainline-tzdata-releaseandroid10-mainline-tzdata-releaseandroid10-android13-mainline-tzdata-release
Change-Id: I64058cd03174edd19c36f5416443452602640772
235 files changed, 8752 insertions, 339 deletions
@@ -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", @@ -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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differnew file mode 100644 index 0000000..7ba6034 --- /dev/null +++ b/luni/src/test/resources/org/apache/harmony/luni/tests/ObjectStreamClassTest.jar 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 Binary files differnew file mode 100644 index 0000000..9aa43d8 --- /dev/null +++ b/luni/src/test/resources/org/apache/harmony/luni/tests/key_store.bks 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 Binary files differnew file mode 100644 index 0000000..0b5d815 --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleEntry.golden.ser 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 Binary files differnew file mode 100644 index 0000000..a85543d --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/AbstractMapTest_SimpleImmutableEntry.golden.ser 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 Binary files differnew file mode 100644 index 0000000..eec840e --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedCollection.golden.ser 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 Binary files differnew file mode 100644 index 0000000..e9a4122 --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedList.golden.ser 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 Binary files differnew file mode 100644 index 0000000..dfa2d43 --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedListRandomAccess.golden.ser 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 Binary files differnew file mode 100644 index 0000000..13415f6 --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedMap.golden.ser 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 Binary files differnew file mode 100644 index 0000000..ed1f305 --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedSet.golden.ser 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 Binary files differnew file mode 100644 index 0000000..eca8ffa --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedMap.golden.ser 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 Binary files differnew file mode 100644 index 0000000..4520ed4 --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_CheckedSortedSet.golden.ser 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 Binary files differnew file mode 100644 index 0000000..73134df --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_asLifoQueue.golden.ser 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 Binary files differnew file mode 100644 index 0000000..88f97e5 --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/Collections_newSetFromMap.golden.ser diff --git a/luni/src/test/resources/serialization/java/util/PriorityQueue.golden.ser b/luni/src/test/resources/serialization/java/util/PriorityQueue.golden.ser Binary files differnew file mode 100644 index 0000000..d716dda --- /dev/null +++ b/luni/src/test/resources/serialization/java/util/PriorityQueue.golden.ser 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 Binary files differnew file mode 100644 index 0000000..0a15a61 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/FileTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..cd0e319 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/io/IOErrorTest.golden.ser 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differnew file mode 100644 index 0000000..255e965 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/AbstractMethodErrorTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..a94e8bf --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalArgumentExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..14b902b --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/IllegalStateExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..76abfd1 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/SecurityExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..861b4ab --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBufferTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..fb54290 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..9197188 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/lang/UnsupportedOperationExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..40413eb --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/HttpRetryExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..bc70d04 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/Inet4AddressTest.golden.ser 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differnew file mode 100644 index 0000000..bc70d04 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/InetAddressTest.golden.ser 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differnew file mode 100644 index 0000000..a6e7680 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/net/SocketTimeoutExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..794419a --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ArrayDequeTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..1f38d8d --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/BitSetTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..f26eade --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/DuplicateFormatFlagsExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..8ab8303 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumMapTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..6859db8 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/EnumSetTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..ff1afb2 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatFlagsConversionMismatchExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..02e8dbc --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/FormatterClosedExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..529512a --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashMapTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..5d76a32 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/HashSetTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..a1d8844 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IdentityHashMapTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..23db2c6 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatCodePointExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..52c8817 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatConversionExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..b14987f --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatFlagsExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..e822aec --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatPrecisionExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..8e1a25b --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/IllegalFormatWidthExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..5b76933 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/InputMismatchExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..c94e6dc --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/LinkedListTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..ea6797d --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatArgumentExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..19773a5 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/MissingFormatWidthExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..d43a064 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/ServiceConfigurationErrorTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..20a59cc --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatConversionExceptionTest.golden.ser 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 Binary files differnew file mode 100644 index 0000000..e4b2278 --- /dev/null +++ b/luni/src/test/resources/serialization/org/apache/harmony/luni/tests/java/util/UnknownFormatFlagsExceptionTest.golden.ser 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differnew 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differnew 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 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 Binary files differindex 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 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>"test.mode" </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 "serial.reference". 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>"RESOURCE_DIR" </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 Binary files differnew file mode 100644 index 0000000..e6e7927 --- /dev/null +++ b/support/src/test/resources/tests/resources/Broken_entry.jar diff --git a/support/src/test/resources/tests/resources/Broken_manifest.jar b/support/src/test/resources/tests/resources/Broken_manifest.jar Binary files differnew file mode 100644 index 0000000..4c3ff31 --- /dev/null +++ b/support/src/test/resources/tests/resources/Broken_manifest.jar 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 Binary files differnew file mode 100644 index 0000000..1fe7947 --- /dev/null +++ b/support/src/test/resources/tests/resources/Created_by_1_4.jar diff --git a/support/src/test/resources/tests/resources/EmptyEntries_signed.jar b/support/src/test/resources/tests/resources/EmptyEntries_signed.jar Binary files differnew file mode 100644 index 0000000..237d244 --- /dev/null +++ b/support/src/test/resources/tests/resources/EmptyEntries_signed.jar diff --git a/support/src/test/resources/tests/resources/Harmony.GIF b/support/src/test/resources/tests/resources/Harmony.GIF Binary files differnew file mode 100644 index 0000000..be2dc56 --- /dev/null +++ b/support/src/test/resources/tests/resources/Harmony.GIF diff --git a/support/src/test/resources/tests/resources/Inserted_Entry_Manifest.jar b/support/src/test/resources/tests/resources/Inserted_Entry_Manifest.jar Binary files differnew file mode 100644 index 0000000..154d8d6 --- /dev/null +++ b/support/src/test/resources/tests/resources/Inserted_Entry_Manifest.jar 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 Binary files differnew file mode 100644 index 0000000..a94ae49 --- /dev/null +++ b/support/src/test/resources/tests/resources/Inserted_Entry_Manifest_with_DigestCode.jar diff --git a/support/src/test/resources/tests/resources/Integrate.jar b/support/src/test/resources/tests/resources/Integrate.jar Binary files differnew file mode 100644 index 0000000..16e9c55 --- /dev/null +++ b/support/src/test/resources/tests/resources/Integrate.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_11.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_11.jar Binary files differnew file mode 100644 index 0000000..19cf5f2 --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_11.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_12.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_12.jar Binary files differnew file mode 100644 index 0000000..236659b --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_12.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_13.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_13.jar Binary files differnew file mode 100644 index 0000000..9ea6806 --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_13.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_14.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_14.jar Binary files differnew file mode 100644 index 0000000..d8bc44b --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_14.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_21.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_21.jar Binary files differnew file mode 100644 index 0000000..c25d4bf --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_21.jar 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 Binary files differnew file mode 100644 index 0000000..542c22a --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_22-new.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_22.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_22.jar Binary files differnew file mode 100644 index 0000000..84c7af0 --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_22.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_23.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_23.jar Binary files differnew file mode 100644 index 0000000..a932052 --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_23.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_31.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_31.jar Binary files differnew file mode 100644 index 0000000..ab69696 --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_31.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_32.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_32.jar Binary files differnew file mode 100644 index 0000000..12de6bb --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_32.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_33.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_33.jar Binary files differnew file mode 100644 index 0000000..086e494 --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_33.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_41.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_41.jar Binary files differnew file mode 100644 index 0000000..fb71bf8 --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_41.jar diff --git a/support/src/test/resources/tests/resources/JarIndex/hyts_42.jar b/support/src/test/resources/tests/resources/JarIndex/hyts_42.jar Binary files differnew file mode 100644 index 0000000..06a35cd --- /dev/null +++ b/support/src/test/resources/tests/resources/JarIndex/hyts_42.jar diff --git a/support/src/test/resources/tests/resources/Modified_Class.jar b/support/src/test/resources/tests/resources/Modified_Class.jar Binary files differnew file mode 100644 index 0000000..d8113c7 --- /dev/null +++ b/support/src/test/resources/tests/resources/Modified_Class.jar diff --git a/support/src/test/resources/tests/resources/Modified_Manifest_EntryAttributes.jar b/support/src/test/resources/tests/resources/Modified_Manifest_EntryAttributes.jar Binary files differnew file mode 100644 index 0000000..bd1dbb1 --- /dev/null +++ b/support/src/test/resources/tests/resources/Modified_Manifest_EntryAttributes.jar diff --git a/support/src/test/resources/tests/resources/Modified_Manifest_MainAttributes.jar b/support/src/test/resources/tests/resources/Modified_Manifest_MainAttributes.jar Binary files differnew file mode 100644 index 0000000..5bc60e6 --- /dev/null +++ b/support/src/test/resources/tests/resources/Modified_Manifest_MainAttributes.jar diff --git a/support/src/test/resources/tests/resources/Modified_SF_EntryAttributes.jar b/support/src/test/resources/tests/resources/Modified_SF_EntryAttributes.jar Binary files differnew file mode 100644 index 0000000..7b76694 --- /dev/null +++ b/support/src/test/resources/tests/resources/Modified_SF_EntryAttributes.jar 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 Binary files differnew file mode 100644 index 0000000..bde3f4d --- /dev/null +++ b/support/src/test/resources/tests/resources/Package/hyts_all_attributes.jar diff --git a/support/src/test/resources/tests/resources/Package/hyts_c.jar b/support/src/test/resources/tests/resources/Package/hyts_c.jar Binary files differnew file mode 100644 index 0000000..111f73c --- /dev/null +++ b/support/src/test/resources/tests/resources/Package/hyts_c.jar 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 Binary files differnew file mode 100644 index 0000000..1879acb --- /dev/null +++ b/support/src/test/resources/tests/resources/Package/hyts_no_attributes.jar 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 Binary files differnew file mode 100644 index 0000000..66090a5 --- /dev/null +++ b/support/src/test/resources/tests/resources/Package/hyts_no_entry.jar diff --git a/support/src/test/resources/tests/resources/Package/hyts_pq.jar b/support/src/test/resources/tests/resources/Package/hyts_pq.jar Binary files differnew file mode 100644 index 0000000..5919f6c --- /dev/null +++ b/support/src/test/resources/tests/resources/Package/hyts_pq.jar 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 Binary files differnew file mode 100644 index 0000000..95c87a8 --- /dev/null +++ b/support/src/test/resources/tests/resources/Package/hyts_some_attributes.jar diff --git a/support/src/test/resources/tests/resources/ServiceLoader/hyts_services.jar b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services.jar Binary files differnew file mode 100644 index 0000000..12503a6 --- /dev/null +++ b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services.jar diff --git a/support/src/test/resources/tests/resources/ServiceLoader/hyts_services2.jar b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services2.jar Binary files differnew file mode 100644 index 0000000..a7a754a --- /dev/null +++ b/support/src/test/resources/tests/resources/ServiceLoader/hyts_services2.jar diff --git a/support/src/test/resources/tests/resources/TestCodeSigners.jar b/support/src/test/resources/tests/resources/TestCodeSigners.jar Binary files differnew file mode 100644 index 0000000..a4c42aa --- /dev/null +++ b/support/src/test/resources/tests/resources/TestCodeSigners.jar diff --git a/support/src/test/resources/tests/resources/hyts_Bar.ser b/support/src/test/resources/tests/resources/hyts_Bar.ser Binary files differnew file mode 100644 index 0000000..2802528 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_Bar.ser diff --git a/support/src/test/resources/tests/resources/hyts_Foo.ser b/support/src/test/resources/tests/resources/hyts_Foo.ser Binary files differnew file mode 100644 index 0000000..9f511ac --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_Foo.ser 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 Binary files differnew file mode 100644 index 0000000..f9cd6ed --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_ZipFile.zip diff --git a/support/src/test/resources/tests/resources/hyts_att.jar b/support/src/test/resources/tests/resources/hyts_att.jar Binary files differnew file mode 100644 index 0000000..7f4530c --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_att.jar diff --git a/support/src/test/resources/tests/resources/hyts_available.tst b/support/src/test/resources/tests/resources/hyts_available.tst Binary files differnew file mode 100644 index 0000000..d67b2f4 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_available.tst 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 Binary files differnew file mode 100644 index 0000000..f0478c8 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_compDiction.bin diff --git a/support/src/test/resources/tests/resources/hyts_compressD.bin b/support/src/test/resources/tests/resources/hyts_compressD.bin Binary files differnew file mode 100644 index 0000000..36c89f2 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_compressD.bin diff --git a/support/src/test/resources/tests/resources/hyts_construOD.bin b/support/src/test/resources/tests/resources/hyts_construOD.bin Binary files differnew file mode 100644 index 0000000..035d12e --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_construOD.bin diff --git a/support/src/test/resources/tests/resources/hyts_construODI.bin b/support/src/test/resources/tests/resources/hyts_construODI.bin Binary files differnew file mode 100644 index 0000000..1e5d284 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_construODI.bin 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 Binary files differnew file mode 100644 index 0000000..0421ba9 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_mainClass.ser diff --git a/support/src/test/resources/tests/resources/hyts_manifest1.jar b/support/src/test/resources/tests/resources/hyts_manifest1.jar Binary files differnew file mode 100644 index 0000000..fb292b2 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_manifest1.jar diff --git a/support/src/test/resources/tests/resources/hyts_missingclass.ser b/support/src/test/resources/tests/resources/hyts_missingclass.ser Binary files differnew file mode 100644 index 0000000..0a71403 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_missingclass.ser diff --git a/support/src/test/resources/tests/resources/hyts_patch.jar b/support/src/test/resources/tests/resources/hyts_patch.jar Binary files differnew file mode 100644 index 0000000..f3c51d0 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_patch.jar diff --git a/support/src/test/resources/tests/resources/hyts_patch2.jar b/support/src/test/resources/tests/resources/hyts_patch2.jar Binary files differnew file mode 100644 index 0000000..c26f9e7 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_patch2.jar 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 Binary files differnew file mode 100644 index 0000000..abef675 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_security.jar diff --git a/support/src/test/resources/tests/resources/hyts_signed.jar b/support/src/test/resources/tests/resources/hyts_signed.jar Binary files differnew file mode 100644 index 0000000..8ea8489 --- /dev/null +++ b/support/src/test/resources/tests/resources/hyts_signed.jar 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 Binary files differnew file mode 100644 index 0000000..f3c51d0 --- /dev/null +++ b/support/src/test/resources/tests/resources/morestuff/hyts_patch.jar diff --git a/support/src/test/resources/tests/resources/morestuff/hyts_patch2.jar b/support/src/test/resources/tests/resources/morestuff/hyts_patch2.jar Binary files differnew file mode 100644 index 0000000..c26f9e7 --- /dev/null +++ b/support/src/test/resources/tests/resources/morestuff/hyts_patch2.jar 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 |