You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2006/03/15 12:47:39 UTC
svn commit: r386058 [49/49] - in /incubator/harmony/enhanced/classlib/trunk:
make/ modules/archive/make/common/ modules/archive/src/test/java/tests/
modules/archive/src/test/java/tests/api/
modules/archive/src/test/java/tests/api/java/ modules/archive/...
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TestResource_fr_FR_VAR.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,28 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 tests.support;
+
+public class Support_TestResource_fr_FR_VAR extends
+ java.util.ListResourceBundle {
+
+ protected Object[][] getContents() {
+ Object[][] contents = { { "parent4", "frFRVARValue4" },
+ { "child1", "frFRVARChildValue1" },
+ { "child2", "frFRVARChildValue2" },
+ { "child3", "frFRVARChildValue3" }, };
+ return contents;
+ }
+
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TimeZone.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TimeZone.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TimeZone.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_TimeZone.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,74 @@
+/* Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 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 {
+
+ int rawOffset;
+
+ boolean useDaylightTime;
+
+ public Support_TimeZone(int rawOffset, boolean useDaylightTime) {
+ this.rawOffset = rawOffset;
+ this.useDaylightTime = useDaylightTime;
+ }
+
+ 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.
+ */
+ 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;
+ else
+ return false;
+ }
+
+ public boolean useDaylightTime() {
+ return useDaylightTime;
+ }
+
+ /*
+ * return 0 to keep it simple, since this subclass is not used to test this
+ * method..
+ */
+ public int getOffset(int p1, int p2, int p3, int p4, int p5, int p6) {
+ return 0;
+ }
+
+ public void setRawOffset(int p1) {
+ rawOffset = p1;
+ }
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_URLConnector.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_URLConnector.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_URLConnector.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_URLConnector.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,81 @@
+/* Copyright 2002, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 tests.support;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * This class implements the Support_HttpConnector interface using java.net
+ * URL's
+ */
+public class Support_URLConnector implements Support_HttpConnector {
+ private URLConnection instance;
+
+ private boolean streamOpen = false;
+
+ /**
+ * @see com.ibm.support.Support_HttpConnector#open(String)
+ */
+ public void open(String address) throws IOException {
+ instance = new URL(address).openConnection();
+ }
+
+ public void close() throws IOException {
+ if (!streamOpen) {
+ ((HttpURLConnection) instance).disconnect();
+ }
+ }
+
+ /**
+ * @see com.ibm.support.Support_HttpConnector#getInputStream()
+ */
+ public InputStream getInputStream() throws IOException {
+ if (instance == null)
+ return null;
+ streamOpen = true;
+ return instance.getInputStream();
+ }
+
+ public OutputStream getOutputStream() throws IOException {
+ if (instance == null)
+ return null;
+ instance.setDoOutput(true);
+ ((HttpURLConnection) instance).setRequestMethod("POST");
+ streamOpen = true;
+ return instance.getOutputStream();
+ }
+
+ public boolean isChunkedOnFlush() {
+ return false;
+ }
+
+ public void setRequestProperty(String key, String value) throws IOException {
+ instance.setRequestProperty(key, value);
+ }
+
+ public String getHeaderField(int index) throws IOException {
+ return ((HttpURLConnection) instance).getHeaderField(index);
+ }
+
+ public String getHeaderFieldKey(int index) throws IOException {
+ return ((HttpURLConnection) instance).getHeaderFieldKey(index);
+ }
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableCollectionTest.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,108 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 tests.support;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+public class Support_UnmodifiableCollectionTest extends
+ junit.framework.TestCase {
+
+ Collection 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 c) {
+ super(p1);
+ col = c;
+ }
+
+ 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 hs = new HashSet();
+ 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 it = col.iterator();
+ SortedSet ss = new TreeSet();
+ while (it.hasNext()) {
+ ss.add(it.next());
+ }
+ it = ss.iterator();
+ for (int counter = 0; it.hasNext(); counter++) {
+ int nextValue = ((Integer) 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());
+ }
+
+ }
+
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableMapTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableMapTest.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableMapTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_UnmodifiableMapTest.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,158 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 tests.support;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+public class Support_UnmodifiableMapTest extends junit.framework.TestCase {
+
+ Map map;
+
+ // must be a map containing the string keys "0"-"99" paired with the Integer
+ // values Integer(0) to Integer(99)
+
+ public Support_UnmodifiableMapTest(String p1) {
+ super(p1);
+ }
+
+ public Support_UnmodifiableMapTest(String p1, Map m) {
+ super(p1);
+ map = m;
+ }
+
+ public void runTest() {
+ // containsKey
+ assertTrue("UnmodifiableMapTest - Should contain the key \"0\"", map
+ .containsKey("0"));
+ assertTrue("UnmodifiableMapTest - Should contain the key \"50\"", map
+ .containsKey("50"));
+ assertTrue("UnmodifiableMapTest - Should not contain the key \"100\"",
+ !map.containsKey("100"));
+
+ // containsValue
+ assertTrue("UnmodifiableMapTest - Should contain the value 0", map
+ .containsValue(new Integer(0)));
+ assertTrue("UnmodifiableMapTest - Should contain the value 50", map
+ .containsValue(new Integer(50)));
+ assertTrue("UnmodifiableMapTest - Should not contain value 100", !map
+ .containsValue(new Integer(100)));
+
+ // entrySet
+ Set entrySet = map.entrySet();
+ Iterator entrySetIterator = entrySet.iterator();
+ int myCounter = 0;
+ while (entrySetIterator.hasNext()) {
+ Map.Entry me = (Map.Entry) entrySetIterator.next();
+ assertTrue("UnmodifiableMapTest - Incorrect Map.Entry returned",
+ map.get(me.getKey()).equals(me.getValue()));
+ myCounter++;
+ }
+ assertTrue(
+ "UnmodifiableMapTest - Incorrect number of map entries returned",
+ myCounter == 100);
+
+ // get
+ assertTrue("UnmodifiableMapTest - getting \"0\" didn't return 0",
+ ((Integer) map.get("0")).intValue() == 0);
+ assertTrue("UnmodifiableMapTest - getting \"50\" didn't return 0",
+ ((Integer) map.get("0")).intValue() == 0);
+ assertTrue("UnmodifiableMapTest - getting \"100\" didn't return null",
+ map.get("100") == null);
+
+ // isEmpty
+ assertTrue(
+ "UnmodifiableMapTest - should have returned false to isEmpty",
+ !map.isEmpty());
+
+ // keySet
+ Set keySet = map.keySet();
+ t_KeySet(keySet);
+
+ // size
+ assertTrue("Size should return 100, returned: " + map.size(), map
+ .size() == 100);
+
+ // values
+ new Support_UnmodifiableCollectionTest("Unmod--from map test", map
+ .values());
+
+ }
+
+ void t_KeySet(Set keySet) {
+ // keySet should be a set of the strings "0" to "99"
+
+ // contains
+ assertTrue("UnmodifiableMapTest - keySetTest - should contain \"0\"",
+ keySet.contains("0"));
+ assertTrue("UnmodifiableMapTest - keySetTest - should contain \"50\"",
+ keySet.contains("50"));
+ assertTrue(
+ "UnmodifiableMapTest - keySetTest - should not contain \"100\"",
+ !keySet.contains("100"));
+
+ // containsAll
+ HashSet hs = new HashSet();
+ hs.add("0");
+ hs.add("25");
+ hs.add("99");
+ assertTrue(
+ "UnmodifiableMapTest - keySetTest - should contain set of \"0\", \"25\", and \"99\"",
+ keySet.containsAll(hs));
+ hs.add("100");
+ assertTrue(
+ "UnmodifiableMapTest - keySetTest - should not contain set of \"0\", \"25\", \"99\" and \"100\"",
+ !keySet.containsAll(hs));
+
+ // isEmpty
+ assertTrue("UnmodifiableMapTest - keySetTest - should not be empty",
+ !keySet.isEmpty());
+
+ // iterator
+ Iterator it = keySet.iterator();
+ while (it.hasNext()) {
+ assertTrue(
+ "UnmodifiableMapTest - keySetTest - Iterator returned wrong values",
+ keySet.contains(it.next()));
+ }
+
+ // size
+ assertTrue(
+ "UnmodifiableMapTest - keySetTest - returned wrong size. Wanted 100, got: "
+ + keySet.size(), keySet.size() == 100);
+
+ // toArray
+ Object[] objArray;
+ objArray = keySet.toArray();
+ for (int counter = 0; it.hasNext(); counter++) {
+ assertTrue(
+ "UnmodifiableMapTest - keySetTest - toArray returned incorrect array",
+ objArray[counter] == it.next());
+ }
+
+ // toArray (Object[])
+ objArray = new Object[100];
+ keySet.toArray(objArray);
+ for (int counter = 0; it.hasNext(); counter++) {
+ assertTrue(
+ "UnmodifiableMapTest - keySetTest - toArray(Object) filled array incorrectly",
+ objArray[counter] == it.next());
+ }
+ }
+
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/resource/Support_Resources.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/resource/Support_Resources.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/resource/Support_Resources.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/resource/Support_Resources.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,134 @@
+/* Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 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.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) {
+ 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) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return url.toString();
+ }
+
+ public static File createTempFolder() {
+
+ File folder = null;
+ try {
+ folder = File.createTempFile("hyts_resources", "", null);
+ folder.delete();
+ folder.mkdirs();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ 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;
+
+ File dest = new File(f.toString() + "/" + file);
+
+ InputStream in = Support_Resources.getStream(folder == null ? file
+ : folder + "/" + file);
+ try {
+ copyLocalFileto(dest, in);
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public static File createTempFile(String suffix) throws IOException {
+ return File.createTempFile("hyts_", suffix, null);
+ }
+
+ public static void copyLocalFileto(File dest, InputStream in)
+ throws FileNotFoundException, 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;
+ }
+
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/CallVerificationStack.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/CallVerificationStack.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/CallVerificationStack.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/CallVerificationStack.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,354 @@
+/* Copyright 2004 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 tests.util;
+
+import java.util.Stack;
+
+/**
+ * A stack to store the parameters of a call, as well as the call stack.
+ *
+ */
+public class CallVerificationStack extends Stack {
+
+ /*
+ * --------------------------------------------------------------------
+ * Class variables
+ * --------------------------------------------------------------------
+ */
+
+ private static final long serialVersionUID = 1L;
+
+ // the singleton
+ private static CallVerificationStack _instance = new CallVerificationStack();
+
+ /*
+ * --------------------------------------------------------------------
+ * Instance variables
+ * --------------------------------------------------------------------
+ */
+
+ // the call stack, store StackTraceElement
+ private Stack callStack = new Stack();
+
+ /*
+ * -------------------------------------------------------------------
+ * Constructors
+ * -------------------------------------------------------------------
+ */
+
+ /**
+ * Can't be instantiated.
+ */
+ private CallVerificationStack() {
+ // empty
+ }
+
+ /*
+ * -------------------------------------------------------------------
+ * Methods
+ * -------------------------------------------------------------------
+ */
+
+ /**
+ * Gets the singleton instance.
+ *
+ * @return the singleton instance
+ */
+ public static CallVerificationStack getInstance() {
+ return _instance;
+ }
+
+ /**
+ * Pushes the call stack.
+ */
+ private void pushCallStack() {
+ StackTraceElement[] eles = (new Throwable()).getStackTrace();
+ int i;
+ for (i = 1; i < eles.length; i++) {
+ if (!eles[i].getClassName().equals(this.getClass().getName())) {
+ break;
+ }
+ }
+ this.callStack.push(eles[i]);
+ }
+
+ /**
+ * Gets the "current" calling class name.
+ *
+ * @return the "current" calling class name
+ */
+ public String getCurrentSourceClass() {
+ return ((StackTraceElement) this.callStack.peek()).getClassName();
+ }
+
+ /**
+ * Gets the "current" calling method name.
+ *
+ * @return the "current" calling method name
+ */
+ public String getCurrentSourceMethod() {
+ return ((StackTraceElement) this.callStack.peek()).getMethodName();
+ }
+
+ /**
+ * Clear the parameter stack and the call stack.
+ *
+ */
+ public void clear() {
+ this.callStack.clear();
+ super.clear();
+ }
+
+ /**
+ * Pushes an object onto the top of this stack.
+ *
+ * @param o
+ * the object to push
+ */
+ public Object push(Object o) {
+ pushCallStack();
+ return super.push(o);
+ }
+
+ /**
+ * Pushes a boolean onto the top of this stack.
+ *
+ * @param val
+ * the value to push
+ */
+ public void push(boolean val) {
+ this.push(new BaseTypeWrapper(val));
+ }
+
+ /**
+ * Pushes a char onto the top of this stack.
+ *
+ * @param val
+ * the value to push
+ */
+ public void push(char val) {
+ this.push(new BaseTypeWrapper(val));
+ }
+
+ /**
+ * Pushes a double onto the top of this stack.
+ *
+ * @param val
+ * the value to push
+ */
+ public void push(double val) {
+ this.push(new BaseTypeWrapper(val));
+ }
+
+ /**
+ * Pushes a float onto the top of this stack.
+ *
+ * @param val
+ * the value to push
+ */
+ public void push(float val) {
+ this.push(new BaseTypeWrapper(val));
+ }
+
+ /**
+ * Pushes an int onto the top of this stack.
+ *
+ * @param val
+ * the value to push
+ */
+ public void push(int val) {
+ this.push(new BaseTypeWrapper(val));
+ }
+
+ /**
+ * Pushes a long onto the top of this stack.
+ *
+ * @param val
+ * the value to push
+ */
+ public void push(long val) {
+ this.push(new BaseTypeWrapper(val));
+ }
+
+ /**
+ * Pushes a short onto the top of this stack.
+ *
+ * @param val
+ * the value to push
+ */
+ public void push(short val) {
+ this.push(new BaseTypeWrapper(val));
+ }
+
+ /**
+ * Pop an object.
+ *
+ * @return the object
+ */
+ public Object pop() {
+ this.callStack.pop();
+ return super.pop();
+ }
+
+ /**
+ * Pop a boolean.
+ *
+ * @return the value
+ */
+ public boolean popBoolean() {
+ BaseTypeWrapper wrapper = (BaseTypeWrapper) this.pop();
+ Boolean value = (Boolean) wrapper.getValue();
+ return value.booleanValue();
+ }
+
+ /**
+ * Pop a char.
+ *
+ * @return the value
+ */
+ public char popChar() {
+ BaseTypeWrapper wrapper = (BaseTypeWrapper) this.pop();
+ Character value = (Character) wrapper.getValue();
+ return value.charValue();
+ }
+
+ /**
+ * Pop a double.
+ *
+ * @return the value
+ */
+ public double popDouble() {
+ BaseTypeWrapper wrapper = (BaseTypeWrapper) this.pop();
+ Double value = (Double) wrapper.getValue();
+ return value.doubleValue();
+ }
+
+ /**
+ * Pop a float.
+ *
+ * @return the value
+ */
+ public float popFloat() {
+ BaseTypeWrapper wrapper = (BaseTypeWrapper) this.pop();
+ Float value = (Float) wrapper.getValue();
+ return value.floatValue();
+ }
+
+ /**
+ * Pop a int.
+ *
+ * @return the value
+ */
+ public int popInt() {
+ BaseTypeWrapper wrapper = (BaseTypeWrapper) this.pop();
+ Integer value = (Integer) wrapper.getValue();
+ return value.intValue();
+ }
+
+ /**
+ * Pop a long.
+ *
+ * @return the value
+ */
+ public long popLong() {
+ BaseTypeWrapper wrapper = (BaseTypeWrapper) this.pop();
+ Long value = (Long) wrapper.getValue();
+ return value.longValue();
+ }
+
+ /**
+ * Pop a short.
+ *
+ * @return the value
+ */
+ public short popShort() {
+ BaseTypeWrapper wrapper = (BaseTypeWrapper) this.pop();
+ Short value = (Short) wrapper.getValue();
+ return value.shortValue();
+ }
+
+ /*
+ * Wrapper of base types.
+ */
+ class BaseTypeWrapper {
+
+ // the internal value
+ private Object value;
+
+ /*
+ * Constructs a wrapper object for the base type <code> boolean </code> .
+ */
+ public BaseTypeWrapper(boolean val) {
+ this.value = new Boolean(val);
+ }
+
+ /*
+ * Constructs a wrapper object for the base type <code> c </code> .
+ */
+ public BaseTypeWrapper(byte val) {
+ this.value = new Byte(val);
+ }
+
+ /*
+ * Constructs a wrapper object for the base type <code> char </code> .
+ */
+ public BaseTypeWrapper(char val) {
+ this.value = new Character(val);
+ }
+
+ /*
+ * Constructs a wrapper object for the base type <code> double </code> .
+ */
+ public BaseTypeWrapper(double val) {
+ this.value = new Double(val);
+ }
+
+ /*
+ * Constructs a wrapper object for the base type <code> float </code> .
+ */
+ public BaseTypeWrapper(float val) {
+ this.value = new Float(val);
+ }
+
+ /*
+ * Constructs a wrapper object for the base type <code> int </code> .
+ */
+ public BaseTypeWrapper(int val) {
+ this.value = new Integer(val);
+ }
+
+ /*
+ * Constructs a wrapper object for the base type <code> long </code> .
+ */
+ public BaseTypeWrapper(long val) {
+ this.value = new Long(val);
+ }
+
+ /*
+ * Constructs a wrapper object for the base type <code> short </code> .
+ */
+ public BaseTypeWrapper(short val) {
+ this.value = new Short(val);
+ }
+
+ /*
+ * Gets the internal value.
+ */
+ public Object getValue() {
+ return this.value;
+ }
+ }
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SerializationTester.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SerializationTester.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SerializationTester.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SerializationTester.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,244 @@
+/* Copyright 2004 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 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 = (Object) 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) {
+ }
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SomeTests.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SomeTests.java?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SomeTests.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/java/tests/util/SomeTests.java Wed Mar 15 03:46:17 2006
@@ -0,0 +1,320 @@
+/* Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * 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 tests.util;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
+
+import junit.extensions.TestDecorator;
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.xpath.XPathAPI;
+import org.apache.xpath.objects.XObject;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Decorator for JUnit test suites that we want to run with certain test cases
+ * excluded. The exclusions are captured in a separate XML file.
+ */
+public class SomeTests extends TestSetup {
+
+ private static final String EXCLUDES_SCHEMA_URI_PROP = "excludes.schema.uri";
+
+ private static final String EXCLUDES_FILE_URI_PROP = "excludes.file.uri";
+
+ private static final String JAXP_SCHEMA_SOURCE_ATTR_NAME = "http://java.sun.com/xml/jaxp/properties/schemaSource";
+
+ private static final String JAXP_SCHEMA_LANGUAGE_ATTR_VAL = "http://www.w3.org/2001/XMLSchema";
+
+ private static final String JAXP_SCHEMA_LANGUAGE_ATTR_NAME = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
+
+ private static final String DOCUMENT_BUILDER_FACTORY_VAL = "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl";
+
+ private static final String DOCUMENT_BUILDER_FACTORY_PROP = "javax.xml.parsers.DocumentBuilderFactory";
+
+ private Node excludesDoc;
+
+ private List runCases = new ArrayList();
+
+ private String excludesListURI;
+
+ private String excludesSchemaURI;
+
+ int originalTestCaseCount;
+
+ private boolean docIsValid = false;
+
+ /**
+ * @param test
+ * @param excludesListURI
+ * @param excludesSchemaURI
+ */
+ public SomeTests(Test test) {
+ super(test);
+ initExcludes();
+
+ // Drill down into each test case contained in the supplied Test
+ // and, for each one *not* excluded, add the corresponding TestCase
+ // to an ordered collection. The number of TestCase objects in the
+ // collection is the number of test cases that will be run.
+ seekTests(this.getTest());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see junit.extensions.TestDecorator#basicRun(junit.framework.TestResult)
+ */
+ public void basicRun(TestResult result) {
+ // The 'basic run' of this decorator is to enumerate through all
+ // of the tests not excluded and run them...
+ Iterator allIncluded = runCases.iterator();
+ while (allIncluded.hasNext()) {
+ TestCase test = (TestCase) allIncluded.next();
+ test.run(result);
+ }// end while
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see junit.extensions.TestSetup#setUp()
+ */
+ protected void setUp() throws Exception {
+ if (docIsValid) {
+ System.out.println("\nExcludes list document " + excludesListURI
+ + " is valid");
+ }
+ System.out.println("\nRunning " + this.countTestCases()
+ + " out of a total of " + this.originalTestCaseCount
+ + " possible test cases\n");
+ }
+
+ protected void tearDown() throws Exception {
+ System.out.println("\nRan " + this.countTestCases()
+ + " out of a total of " + this.originalTestCaseCount
+ + " possible test cases\n");
+
+ if (excludesDoc != null) {
+ System.out.println("THE FOLLOWING EXCLUSIONS WERE ENFORCED:");
+ NodeList allTypes = XPathAPI.selectNodeList(excludesDoc,
+ "/descendant::hy:type");
+ for (int i = 0; i < allTypes.getLength(); i++) {
+ Node typeNode = allTypes.item(i);
+ String typeName = typeNode.getAttributes().getNamedItem("id")
+ .getNodeValue();
+ NodeList allExcludesForType = XPathAPI.selectNodeList(typeNode,
+ "descendant::hy:exclude");
+ for (int j = 0; j < allExcludesForType.getLength(); j++) {
+ Node excludeNode = allExcludesForType.item(j);
+ String excName = excludeNode.getAttributes().getNamedItem(
+ "id").getNodeValue();
+ if (excName.equalsIgnoreCase("all")) {
+ excName = "!!!!!!!!!!ALL TESTS!!!!!!!!!!";
+ }
+ System.out.print(typeName + "::" + excName);
+ Node reasonNode = XPathAPI.selectSingleNode(excludeNode,
+ "descendant::hy:reason");
+ if (reasonNode != null) {
+ XObject reason = XPathAPI.eval(reasonNode, "string()");
+ System.out.print(" (" + reason.str() + ")");
+ }
+ System.out.print("\n");
+ }// end for all excludes
+ }// end for all types
+ System.out.println("\n");
+ }
+ super.tearDown();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see junit.framework.Test#countTestCases()
+ */
+ public int countTestCases() {
+ return runCases.size();
+ }
+
+ private void seekTests(TestSuite suite) {
+ Enumeration allTests = suite.tests();
+ while (allTests.hasMoreElements()) {
+ Test test = (Test) allTests.nextElement();
+ seekTests(test);
+ }// end while
+ }
+
+ private void seekTests(Test test) {
+ if (test instanceof TestSuite) {
+ seekTests((TestSuite) test);
+ } else if (test instanceof TestCase) {
+ seekTests((TestCase) test);
+ } else if (test instanceof TestDecorator) {
+ seekTests(((TestDecorator) test).getTest());
+ }
+ }
+
+ private void seekTests(TestCase testCase) {
+ // Check the testcase against the excludes structure
+ if (!isTestCaseExcluded(testCase)) {
+ // Add this testcase to the collection of tests to be run.
+ runCases.add(testCase);
+ }
+ }
+
+ private boolean isTestCaseExcluded(TestCase testCase) {
+ this.originalTestCaseCount++;
+ boolean result = false;
+ String tcType = testCase.getClass().getName();
+ String tcName = testCase.getName();
+
+ if (excludesDoc != null) {
+ try {
+ // Find *the first* element for the type. If there are
+ // more than one "type" elements for a given type then the
+ // first one found is what counts.
+ NodeList typeNodes = XPathAPI.selectNodeList(excludesDoc,
+ "/descendant::hy:type[@id=\"" + tcType + "\"]");
+ if (typeNodes.getLength() > 0) {
+ Node typeNode = typeNodes.item(0);
+ // Look for a blanket exclusion of this test case type
+ NodeList excludes = XPathAPI.selectNodeList(typeNode,
+ "descendant::hy:exclude[@id=\"all\"]");
+ if (excludes.getLength() != 0) {
+ result = true;
+ } else {
+ // Look for explicit exclusion
+ excludes = XPathAPI.selectNodeList(typeNode,
+ "descendant::hy:exclude[@id=\"" + tcName
+ + "\"]");
+ if (excludes.getLength() != 0) {
+ result = true;
+ }
+ }// end else
+ }// end if named type located
+ } catch (TransformerException e) {
+ // Carry on.
+ result = false;
+ }
+ }
+ return result;
+ }
+
+ /**
+ */
+ private boolean initExcludes() {
+ boolean result = true;
+
+ // Look for location of excludes list and (optionally) a schema
+ // location override.
+ readProperties();
+ if (excludesListURI == null) {
+ System.out.println("No excludes list specified.");
+ result = false;
+ }
+
+ if (result) {
+ try {
+ System.setProperty(DOCUMENT_BUILDER_FACTORY_PROP,
+ DOCUMENT_BUILDER_FACTORY_VAL);
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ factory.setNamespaceAware(true);
+ factory.setValidating(true);
+ factory.setAttribute(JAXP_SCHEMA_LANGUAGE_ATTR_NAME,
+ JAXP_SCHEMA_LANGUAGE_ATTR_VAL);
+ if (excludesSchemaURI != null) {
+ factory.setAttribute(JAXP_SCHEMA_SOURCE_ATTR_NAME,
+ excludesSchemaURI);
+ }
+
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ DocValidator handler = new DocValidator();
+ builder.setErrorHandler(handler);
+ excludesDoc = builder.parse(excludesListURI);
+ if (handler.inError == true) {
+ this.docIsValid = false;
+ System.out.println("Excludes list document "
+ + excludesListURI + " is invalid :"
+ + handler.inError + " "
+ + handler.spException.getMessage());
+ excludesDoc = null;
+ result = false;
+ } else {
+ this.docIsValid = true;
+ }
+ } catch (FileNotFoundException e) {
+ System.out.println("File not found : " + e.getMessage());
+ result = false;
+ } catch (ParserConfigurationException e) {
+ System.out.println("Serious error with XML parser : "
+ + e.getMessage());
+ result = false;
+ } catch (SAXException e) {
+ System.out.println("Serious error occurred parsing document : "
+ + e.getMessage());
+ result = false;
+ } catch (IOException e) {
+ System.out.println("IO error occurred : " + e.getMessage());
+ result = false;
+ }
+ }
+ return result;
+ }
+
+ /**
+ *
+ */
+ private void readProperties() {
+ excludesListURI = System.getProperty(EXCLUDES_FILE_URI_PROP);
+ excludesSchemaURI = System.getProperty(EXCLUDES_SCHEMA_URI_PROP);
+ }
+
+ /**
+ */
+ class DocValidator extends DefaultHandler {
+ private boolean inError = false;
+
+ private SAXParseException spException = null;
+
+ public void error(SAXParseException exception) throws SAXException {
+ inError = true;
+ spException = exception;
+ }
+
+ public void fatalError(SAXParseException exception) throws SAXException {
+ inError = true;
+ spException = exception;
+ }
+ }
+}
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/excludes.xsd
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/excludes.xsd?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/excludes.xsd (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/excludes.xsd Wed Mar 15 03:46:17 2006
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://incubator.apache.org/harmony/testing"
+ targetNamespace="http://incubator.apache.org/harmony/testing">
+
+ <!--
+ * A suite contains zero or more type declarations
+ -->
+ <xsd:element name="suite">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="type" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!--
+ * A type contains one or more exclude elements.
+ * A type has a single attribute (id) which can be
+ * any meaningful character value that is based on
+ * proper XML naming conventions (must begin with a
+ * letter or underscore).
+ -->
+ <xsd:element name="type">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="exclude" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="idtype" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <!--
+ * An exclude element can have an optional reason
+ * element.
+ -->
+ <xsd:element name="exclude">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="reason" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="idtype" default="all" />
+ <xsd:attribute name="platform" type="platformlisttype" default="all" />
+ <xsd:attribute name="shouldfix" type="booleanstringtype" default="true" />
+ </xsd:complexType>
+ </xsd:element>
+
+<!--
+ * A reason element has no attributes, only parsed
+ * character data.
+ -->
+ <xsd:element name="reason">
+ <xsd:complexType mixed="true"/>
+ </xsd:element>
+
+
+ <!--
+ * Type idtype is any string data.
+ -->
+ <xsd:simpleType name="idtype">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+
+ <!--
+ * Type platformstringtype is one of the
+ * strings "all", "win.IA32" or "linux.IA32".
+ -->
+ <xsd:simpleType name="platformstringtype" >
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="win.IA32"/>
+ <xsd:enumeration value="linux.IA32"/>
+ <xsd:enumeration value="all"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:simpleType name="platformlisttype">
+ <xsd:list itemType="platformstringtype"/>
+ </xsd:simpleType>
+
+
+ <!--
+ * Type booleanstringtype is one of the
+ * strings "true" or "false".
+ -->
+ <xsd:simpleType name="booleanstringtype" >
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="true"/>
+ <xsd:enumeration value="false"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+</xsd:schema>
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/jcltest-excludes.xml
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/jcltest-excludes.xml?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/jcltest-excludes.xml (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/jcltest-excludes.xml Wed Mar 15 03:46:17 2006
@@ -0,0 +1,405 @@
+<?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">
+
+ <hy:type id="tests.api.java.io.BufferedInputStreamTest">
+ <hy:exclude id="test_reset" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.io.FileTest">
+ <hy:exclude id="test_Constructor_String_String_112270" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_Constructor_File_String_112270" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_deleteOnExit" shouldfix="true">
+ <hy:reason>Needs investigation...</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.PipedInputStreamTest">
+ <hy:exclude id="test_receive" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.io.PushbackReaderTest">
+ <hy:exclude id="test_skip$J" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.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="tests.api.java.text.ChoiceFormatTest">
+ <hy:exclude id="test_toPattern" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.text.CollationKeyTest">
+ <hy:exclude id="test_toByteArray" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.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="tests.api.java.text.DateFormatFieldTest">
+ <hy:exclude id="test_ConstructorLjava_lang_StringI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_Constructor2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_readResolve" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.text.MessageFormatTest">
+ <hy:exclude id="test_applyPatternLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.text.SimpleDateFormatTest">
+ <hy:exclude id="test_equalsLjava_lang_Object" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_formatLjava_util_DateLjava_lang_StringBufferLjava_text_FieldPosition" shouldfix="true">
+ <hy:reason>Wrong format: " h" expected: 3 result: 4</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_parseLjava_lang_StringLjava_text_ParsePosition" shouldfix="true">
+ <hy:reason>Wrong result: MM'M' input: 4M expected: Wed Apr 01 00:00:00 GMT 1970 result: Tue Mar 31 23:00:00 GMT 1970</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.math.BigDecimalTest">
+ <hy:exclude id="test_constructor_String_115522" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.reflect.ReflectPermissionTest">
+ <hy:exclude id="test_ConstructorLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_ConstructorLjava_lang_StringLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.jar.JarFileTest">
+ <hy:exclude id="test_entries" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getInputStreamLjava_util_jar_JarEntry_subtest0" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.zip.ZipFileTest">
+ <hy:exclude id="test_entries" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.zip.ZipInputStreamTest">
+ <hy:exclude id="test_skipJ" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.ArraysTest">
+ <hy:exclude id="test_binarySearch$DD" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_binarySearch$FF" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_equals$F$F" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_equals$D$D" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_sort$D" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_sort$F" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.BitSetTest">
+ <hy:exclude id="test_111478" 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.CollectionsTest">
+ <hy:exclude id="test_rotate2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.IdentityHashMap2Test">
+ <hy:exclude id="test_null_Keys_and_Values" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_entrySet_removeAll" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_values" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_keySet_removeAll" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_keySet_retainAll" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_keyset_remove" 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>
+
+ <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.DoubleTest">
+ <hy:exclude id="test_compare" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.FloatTest">
+ <hy:exclude id="test_compare" 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_getBytesII$BI" 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:exclude id="test_substringI" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_substringII" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.ThreadGroupTest">
+ <hy:exclude id="test_list" 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:type>
+
+ <hy:type id="tests.api.java.net.URITest">
+ <hy:exclude id="test_URI_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <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_fiveArgConstructor" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_compareToLjava_lang_Object" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_compareTo2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_equals2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getAuthority2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getPort2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_normalize3" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_relativize2" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_ConstructorLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_StringLjava_lang_String" shouldfix="true">
+ <hy:reason>Needs investigation...</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.URLClassLoaderTest">
+ <hy:exclude id="test_findClassLjava_lang_String" shouldfix="true">
+ <hy:reason>Undiagnosed failure</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.OutOfMemoryErrorTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>Really, really slow to run!</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.VectorTest">
+ <hy:exclude id="test_toString" shouldfix="true">
+ <hy:reason>Fails because of stack overflow !</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.jar.JarOutputStreamTest">
+ <hy:exclude id="test_putNextEntryLjava_util_zip_ZipEntry" shouldfix="true">
+ <hy:reason>Needs investigation...</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.zip.CheckedInputStreamTest">
+ <hy:exclude id="test_getChecksum" shouldfix="true">
+ <hy:reason>Needs investigation...</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.zip.DeflaterTest">
+ <hy:exclude id="test_setStrategyI" shouldfix="true">
+ <hy:reason>Needs investigation...</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>Needs investigation...</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getResourceAsStreamLjava_lang_String" shouldfix="true">
+ <hy:reason>Needs investigation...</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.lang.ProcessTest">
+ <hy:exclude id="test_getInputStream" shouldfix="true">
+ <hy:reason>Needs investigation...</hy:reason>
+ </hy:exclude>
+ <hy:exclude id="test_getOutputStream" shouldfix="true">
+ <hy:reason>Needs investigation...</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.net.Inet6AddressTest">
+ <hy:exclude id="all" shouldfix="true">
+ <hy:reason>Need to configure correctly</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <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.InflaterTest">
+ <hy:exclude id="test_setDictionary$B" shouldfix="true">
+ <hy:reason>java.lang.IllegalArgumentException in native method</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.io.InputStreamReaderTest">
+ <hy:exclude id="test_read" shouldfix="true">
+ <hy:reason>UTF-16BE unexpected 1: java.io.IOException: CoderResult[Malformed-input error with erroneous input length 1]</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.io.OutputStreamWriterTest">
+ <hy:exclude id="test_close" shouldfix="true">
+ <hy:reason>invalid conversion</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.util.ResourceBundleTest">
+ <hy:exclude id="test_getBundleLjava_lang_StringLjava_util_LocaleLjava_lang_ClassLoader" shouldfix="true">
+ <hy:reason>Problem with Jar URLs containing relative paths needs investigating</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+ <hy:type id="tests.api.java.text.NumberFormatTest">
+ <hy:exclude id="test_formatLjava_lang_ObjectLjava_lang_StringBufferLjava_text_FieldPosition" shouldfix="true">
+ <hy:reason>Depends on a real implementation of BigInteger</hy:reason>
+ </hy:exclude>
+ </hy:type>
+
+</hy:suite>
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/localhosttest.ini
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/localhosttest.ini?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/localhosttest.ini (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/localhosttest.ini Wed Mar 15 03:46:17 2006
@@ -0,0 +1,30 @@
+DomainAddress=
+WebName=localhost.
+TestResourcesDir=/testres231
+HomeAddressResponse=HTTP/1.1 200 OK
+HomeAddressSoftware=Apache/2.0.55 (Win32)
+ProxyServerTestHost=localhost
+SocksServerTestHost=localhost
+SocksServerTestPort=2080
+UnresolvedIP=192.168.99.99
+InetTestAddress=localhost
+InetTestIP=127.0.0.1
+NonLocalAddressBytes=1.0.0.0
+InetTestAddress2=localhost
+InetTestIP2=127.0.0.1
+InetTestHashcode=2130706433
+SpecialInetTestAddress=localhost
+SpecialInetTestAddressNumber=1
+FTPTestAddress=jcltest:jclpass@localhost
+URLConnectionLastModifiedString=Sat, 07 Jan 2006 13:50:52 GMT
+URLConnectionLastModified=1136641852000
+URLConnectionDate=929092440000
+InetTestIP6=fe80::20d:60ff:fe24:7410
+ResolvedNotExistingHost=9.26.194.72
+InetAlias1=localhost
+InetAlias2=localhost
+IPv6GlobalAddressJcl4=
+
+
+
+
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/testing.policy
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/testing.policy?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/testing.policy (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/config/testing.policy Wed Mar 15 03:46:17 2006
@@ -0,0 +1,9 @@
+grant {
+ // so we can remove the security manager
+ permission java.lang.RuntimePermission "setSecurityManager";
+
+ permission java.io.SerializablePermission "enableSubclassImplementation";
+
+ permission java.util.PropertyPermission "user.dir", "read";
+ permission java.io.FilePermission "${user.dir}${/}bin${/}tests${/}resources${/}-", "read";
+};
\ No newline at end of file
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/FTP/jcltest/nettest.txt
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/FTP/jcltest/nettest.txt?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/FTP/jcltest/nettest.txt (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/FTP/jcltest/nettest.txt Wed Mar 15 03:46:17 2006
@@ -0,0 +1 @@
+This text file is used for testing the java.net package of the Harmony class libraries.
\ No newline at end of file
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/cgi-bin/test.pl
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/cgi-bin/test.pl?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/cgi-bin/test.pl (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/cgi-bin/test.pl Wed Mar 15 03:46:17 2006
@@ -0,0 +1,5 @@
+#!/usr/bin/perl
+print "Content-type: text/plain\n\n";
+read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+print $buffer;
+exit 0;
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/JUC/lf.jar
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/JUC/lf.jar?rev=386058&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/JUC/lf.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/RESOURCE.TXT
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/RESOURCE.TXT?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/RESOURCE.TXT (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/RESOURCE.TXT Wed Mar 15 03:46:17 2006
@@ -0,0 +1 @@
+This is a test resource file.
\ No newline at end of file
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/UCL/UCL.jar
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/UCL/UCL.jar?rev=386058&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/UCL/UCL.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/URLConnectionTest/Harmony.html
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/URLConnectionTest/Harmony.html?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/URLConnectionTest/Harmony.html (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/URLConnectionTest/Harmony.html Wed Mar 15 03:46:17 2006
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+ <TITLE></TITLE>
+ <META NAME="GENERATOR" CONTENT="OpenOffice.org 2.0 (Win32)">
+ <META NAME="AUTHOR" CONTENT="George Harley">
+ <META NAME="CREATED" CONTENT="20060107;13432130">
+ <META NAME="CHANGEDBY" CONTENT="George Harley">
+ <META NAME="CHANGED" CONTENT="20060107;13505271">
+ <STYLE>
+ <!--
+ @page { size: 4.5cm 4.5cm; margin: 2cm }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="en-US" BGCOLOR="#000000" DIR="LTR">
+<P><BR><BR>
+</P>
+<P ALIGN=CENTER><FONT COLOR="#ffffff">“<FONT FACE="Arial, sans-serif"><FONT SIZE=4>Happiness
+is when what you think, what you say, and what you do are in
+harmony.”</FONT></FONT></FONT></P>
+<P ALIGN=CENTER><FONT FACE="Arial, sans-serif"><FONT SIZE=2><FONT COLOR="#ffffff">Mohandas
+Gandhi</FONT></FONT> </FONT>
+</P>
+</BODY>
+</HTML>
\ No newline at end of file
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/subdir1/RESOURCE.TXT
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/subdir1/RESOURCE.TXT?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/subdir1/RESOURCE.TXT (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/HTTP/html/testres231/subdir1/RESOURCE.TXT Wed Mar 15 03:46:17 2006
@@ -0,0 +1 @@
+This is a resource from a subdir
\ No newline at end of file
Added: incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/README.txt
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/README.txt?rev=386058&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/README.txt (added)
+++ incubator/harmony/enhanced/classlib/trunk/support/src/test/resources/net.resources/README.txt Wed Mar 15 03:46:17 2006
@@ -0,0 +1,188 @@
+README
+======
+
+
+
+Contents
+--------
+This directory contains resources that can be used to carry out unit testing of
+the java.net types. The resources are separated according to the type of
+server that will host them.
+
+FTP
+---
+The FTP folder contains a single text file (nettest.txt) which should be placed
+in the root or home directory of an FTP account with id "jcltest" with password
+"jclpass". Please do not modify nettest.txt as the tests have been written to
+check on the precise contents of this file.
+
+
+HTTP
+----
+The HTTP folder contains files to be deployed on an HTTP server.
+
+Directory cgi-bin contains a single Perl script called test.pl which should be
+placed in the normal bin directory for your HTTP server (e.g. "cgi-bin" for the
+Apache HTTP server). The intent is that this script can be accessed with the URL
+"http://<your host>/cgi-bin/test.pl" .
+
+Directory html/testres231 contains a number of text and binary resources. This
+folder and all of its subfolders should be copied to the root directory of your
+web server from which static documents are served (e.g. "htdocs" for the Apache
+HTTP server)...
+
+
+<DOCUMENT_ROOT>/testres231
+ | RESOURCE.TXT
+ |
+ +---JUC
+ | lf.jar
+ |
+ +---subdir1
+ | RESOURCE.TXT
+ |
+ +---UCL
+ | UCL.jar
+ |
+ \---URLConnectionTest
+ Harmony.html
+
+
+
+The intent is that these resources can be accessed with URLs beginning
+"http://<your host>/testres231/" .
+
+As with the FTP resource, please do not modify these files in any way as the
+unit test code has been written to expect specific information about these
+files such as content and date of last modification.
+
+
+SERVER CONFIGURATION
+--------------------
+Before running the unit tests for the java.net types the following steps should
+be taken.
+
+1. Install the FTP and HTTP documents to their respective server locations as
+described above.
+2. Enable proxying capability on the HTTP server.
+3. Start the HTTP and FTP servers.
+4. Start up a SOCKS server.
+
+
+
+RUNNING THE TESTS
+-----------------
+The success of the java.net tests rely on a number of text values which can be
+supplied in a properties file. These properties include the hostname of the
+HTTP server where the testres231 files are hosted, the network location of the
+FTP and SOCKS servers and so on. Isolating these values in a properties file
+enables the tests to be run in any network environment without recourse to
+updating values in the test case source code.
+
+The location of the properties file can be specified to the running tests
+through setting the property "test.ini.file". An example of this is available
+in the "run-tests" target of the <EXTRACT_DIR>/Harmony/make/build-java.xml file
+contained in this zip file. There the "test.ini.file" property holds the
+path to the file
+<EXTRACT_DIR>/Harmony/Harmony_Tests/src/test/resources/config/localhost.ini
+that contains suitable property values if the HTTP, FTP and SOCKS servers were
+all running on the local machine of the tests user.
+
+The key properties required by the java.net tests are as follows ...
+
+
+* DomainAddress : The domain name of the host where the HTTP server is running.
+
+* WebName : The unqualified name of the host where the HTTP server is running.
+
+* TestResourcesDir : the name of the folder on the HTTP server beneath the
+ document root where the where the web resources have been
+ deployed.
+
+* HomeAddressResponse : the expected response returned from a successful get
+ from the HTTP server.
+
+* HomeAddressSoftware : the expected information about the HTTP server's
+ software.
+
+* ProxyServerTestHost : the fully qualified location of the HTTP proxy host
+ used in the tests.
+
+* SocksServerTestHost : the fully qualified location of the SOCKS server used
+ in the tests.
+
+* SocksServerTestPort : the test SOCKS server's port number
+
+* UnresolvedIP : an IP address that does not resolve to a host name
+
+* InetTestAddress : the string name of a network host with IP address given
+ in the corresponding "InetTestIP" property.
+
+* InetTestIP : the IP address of a network host whose string name is supplied
+ in the corresponding "InetTestAddress" property.
+
+* NonLocalAddressBytes : the bytes representing the address of any machine which
+ cannot be bound to during the tests. Used in the socket
+ tests to verify we get the expected error when trying
+ to bind to an address that cannot be reached.
+
+* InetTestAddress2 : the string name of a network host with IP address given
+ in the corresponding "InetTestIP" property.
+
+* InetTestIP2 : the IP address of a network host whose string name is supplied
+ in the corresponding "InetTestAddress" property.
+
+* InetTestHashcode : the expected hashcode value of the "InetTestAddress".
+
+* SpecialInetTestAddress : An address that resolves to more than one IP address.
+ The expected number of IP addresses that this address
+ resolves to should be set in the
+ "SpecialInetTestAddressNumber" property. Used to test
+ the java.net.InetAddress.getAllByName() method.
+
+* SpecialInetTestAddressNumber : The number of IP addresses that resolve to the
+ host named in the property
+ "SpecialInetTestAddress". Used to test the
+ java.net.InetAddress.getAllByName() method.
+
+* FTPTestAddress : a string of the form "jcltest:jclpass@<server address>" that
+ points to the network location of the FTP resources.
+
+* URLConnectionLastModifiedString : string which gives the precise date and time
+ that the HTTP server resources were last
+ modified. If you make any changes to the
+ web resources this value will need to
+ change.
+
+* URLConnectionLastModified : the corresponding numeric equivalent of the
+ "URLConnectionLastModifiedString" string value.
+ Any changes to the web resources will affect this
+ value.
+
+* URLConnectionDate : the expected date when the file
+ "http://<your HTTP host>/testres231/RESOURCE.TXT" was last
+ modified. Making any changes to the RESOURCE.TXT file will
+ mean this property value will require updating.
+
+* InetTestIP6 : an IPv6 address to help test out serialization of the type
+ java.net.Inet6Address .
+
+* ResolvedNotExistingHost : an IP address that resolves to a host that is not
+ present on the local network. This allows us to
+ check the timeouts for socket connections.
+
+* InetAlias1 : this property and "InetAlias2" should be different host names
+ that resolve to the same IP address.
+
+* InetAlias2 : this property and "InetAlias1" should be different host names
+ that resolve to the same IP address.
+
+* IPv6GlobalAddressJcl4 : the IPv6 address for a host on the network.
+
+
+
+If any of these properties are not set the *hard coded* defaults in the class
+tests.support.Support_Configuration will be used (see
+<EXTRACT_DIR>/Harmony/Harmony_Tests/src/test/java/tests/support/Support_Configuration.java
+in this zip file).
+