harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "chunrong lai" <chunrong...@gmail.com>
Subject Re: svn commit: r689792 - /harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
Date Sun, 31 Aug 2008 16:32:11 GMT
I see the commit only modifies some tests. But it breaks the test cases
org.apache.harmony.auth.tests.javax.security.auth.kerberos.serialization.KrbServicePermissionCollectionTest
and
org.apache.harmony.auth.tests.javax.security.auth.kerberos.serialization.KrbDelegationPermissionCollectionTest
of classlib test suites, in our integrity testing platforms.

Should we have a check?
Thanks.

http://people.apache.org/~chunrong/harmony-integrity/windows_x86/classlib-test/
       junit.framework.AssertionFailedError:
expected:<[(javax.security.auth.kerberos.DelegationPermission "AAA" "BBB"),
(javax.security.auth.kerberos.DelegationPermission "AAA" "CCC"),
(javax.security.auth.kerberos.DelegationPermission "BBB" "CCC")]> but
was:<[(javax.security.auth.kerberos.DelegationPermission "BBB" "CCC"),
(javax.security.auth.kerberos.DelegationPermission "AAA" "CCC"),
(javax.security.auth.kerberos.DelegationPermission "AAA" "BBB")]>


On 8/28/08, tellison@apache.org <tellison@apache.org> wrote:
>
> Author: tellison
> Date: Thu Aug 28 04:56:31 2008
> New Revision: 689792
>
> URL: http://svn.apache.org/viewvc?rev=689792&view=rev
> Log:
> Apply patch for HARMONY-5962 ([classlib][support] Fail on
> UnresolvedPermissionTest and UnresolvedPermissionCollectionTest with Sun
> JDK)
>
> Modified:
>
> harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
>
> Modified:
> harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java?rev=689792&r1=689791&r2=689792&view=diff
>
> ==============================================================================
> ---
> harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
> (original)
> +++
> harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
> Thu Aug 28 04:56:31 2008
> @@ -35,9 +35,9 @@
> import java.lang.reflect.Method;
> import java.security.Permission;
> import java.security.PermissionCollection;
> -import java.util.Collection;
> +import java.security.UnresolvedPermission;
> +import java.util.ArrayList;
> import java.util.Collections;
> -import java.util.HashSet;
>
> import junit.framework.Assert;
> import junit.framework.TestCase;
> @@ -292,13 +292,86 @@
>             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()));
> +            ArrayList<Permission> refList =
> Collections.list(initPC.elements());
> +            ArrayList<Permission> tstList =
> Collections.list(dserPC.elements());
> +            Assert.assertEquals(refList.size(), refList.size());
> +
> +            int size = refList.size();
> +            if (size > 0) {
> +                if (refList.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(refList, tstList);
> +                }
> +            }
> +        }
> +
> +        /*
> +         * 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() {
>
> -            Assert.assertEquals(refCollection, tstCollection);
> +        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);
> +            }
>         }
> +
>     };
>
>     /**
> @@ -334,6 +407,9 @@
>         if (m.getDeclaringClass() != Object.class) {
>             // one of classes overrides Object.equals(Object) method
>             // use default comparator
> +               if (object instanceof UnresolvedPermission) {
> +                return UNRESOLVED_PERMISSION_COMPARATOR;
> +            }
>             return DEFAULT_COMPARATOR;
>         }
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message