[110443] trunk/dports/devel/zeroc-ice35

blair at macports.org blair at macports.org
Fri Aug 30 21:32:29 PDT 2013


Revision: 110443
          https://trac.macports.org/changeset/110443
Author:   blair at macports.org
Date:     2013-08-30 21:32:29 -0700 (Fri, 30 Aug 2013)
Log Message:
-----------
zeroc-ice35: add reenerated patch from upstream for computing checksums.

http://www.zeroc.com/forums/patches/6066-patch-2-ice-3-5-0-checksums-corrections.html

Modified Paths:
--------------
    trunk/dports/devel/zeroc-ice35/Portfile

Added Paths:
-----------
    trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff

Modified: trunk/dports/devel/zeroc-ice35/Portfile
===================================================================
--- trunk/dports/devel/zeroc-ice35/Portfile	2013-08-31 04:23:55 UTC (rev 110442)
+++ trunk/dports/devel/zeroc-ice35/Portfile	2013-08-31 04:32:29 UTC (rev 110443)
@@ -5,7 +5,7 @@
 
 name            zeroc-ice35
 version         3.5.0
-revision        1
+revision        2
 set branch      [join [lrange [split ${version} .] 0 1] .]
 categories      devel
 maintainers     blair
@@ -48,7 +48,8 @@
                 patch-ice.cpp.test.IceGrid.deployer.run.py.diff \
                 patch-ice.cpp.test.IceGrid.replicaGroup.run.py.diff \
                 patch-ice.cpp.test.include.TestCommon.h.diff \
-                patch-ice.scripts.TestUtil.py.diff
+                patch-ice.scripts.TestUtil.py.diff \
+                patch-3.5.0-checksum-corrections.diff
 
 patch.pre_args  -p1
 platforms       darwin

Added: trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff
===================================================================
--- trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff	                        (rev 0)
+++ trunk/dports/devel/zeroc-ice35/files/patch-3.5.0-checksum-corrections.diff	2013-08-31 04:32:29 UTC (rev 110443)
@@ -0,0 +1,2445 @@
+http://www.zeroc.com/forums/patches/6066-patch-2-ice-3-5-0-checksums-corrections.html
+
+Regenerated from the git-style patch-3.5.0-2.nix.txt patch.
+
+diff -ru Ice-3.5.0.orig/cpp/src/Slice/Checksum.cpp Ice-3.5.0/cpp/src/Slice/Checksum.cpp
+--- Ice-3.5.0.orig/cpp/src/Slice/Checksum.cpp	2013-03-11 08:19:46.000000000 -0700
++++ Ice-3.5.0/cpp/src/Slice/Checksum.cpp	2013-08-30 21:28:31.000000000 -0700
+@@ -9,6 +9,7 @@
+ 
+ #include <Slice/Checksum.h>
+ #include <Slice/MD5.h>
++#include <IceUtil/OutputUtil.h>
+ 
+ using namespace std;
+ using namespace Slice;
+@@ -65,8 +66,14 @@
+     {
+         ostr << "class ";
+     }
++
+     ostr << p->name();
+ 
++    if(p->compactId() >= 0)
++    {
++        ostr << '(' << p->compactId() << ')';
++    }
++
+     if(!bases.empty())
+     {
+         if(!bases.front()->isInterface())
+@@ -99,9 +106,38 @@
+     if(p->hasDataMembers())
+     {
+         DataMemberList members = p->dataMembers();
++        DataMemberList optionals;
+         for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
+         {
+-            ostr << typeToString((*q)->type()) << ' ' << (*q)->name() << endl;
++            if((*q)->optional())
++            {
++                optionals.push_back(*q);
++            }
++            else
++            {
++                ostr << typeToString((*q)->type()) << ' ' << (*q)->name() << endl;
++            }
++        }
++
++        if(!optionals.empty())
++        {
++            //
++            // Sort optional parameters by tag.
++            //
++            class SortFn
++            {
++            public:
++                static bool compare(const DataMemberPtr& lhs, const DataMemberPtr& rhs)
++                {
++                    return lhs->tag() < rhs->tag();
++                }
++            };
++            optionals.sort(SortFn::compare);
++
++            for(DataMemberList::iterator q = optionals.begin(); q != optionals.end(); ++q)
++            {
++                ostr << typeToString((*q)->type()) << ' ' << (*q)->tag() << ' ' << (*q)->name();
++            }
+         }
+     }
+ 
+@@ -110,20 +146,63 @@
+         OperationList ops = p->operations();
+         for(OperationList::iterator q = ops.begin(); q != ops.end(); ++q)
+         {
+-            ostr << typeToString((*q)->returnType()) << ' ' << (*q)->name() << '(';
++            ostr << typeToString((*q)->returnType()) << ' ';
++            if((*q)->returnIsOptional())
++            {
++                ostr << (*q)->returnTag() << ' ';
++            }
++            ostr << (*q)->name() << '(';
+             ParamDeclList params = (*q)->parameters();
++            ParamDeclList optionals;
+             for(ParamDeclList::iterator r = params.begin(); r != params.end(); ++r)
+             {
+-                if(r != params.begin())
++                if((*r)->optional())
+                 {
+-                    ostr << ", ";
++                    optionals.push_back(*r);
+                 }
+-                if((*r)->isOutParam())
++                else
+                 {
+-                    ostr << "out ";
++                    if(r != params.begin())
++                    {
++                        ostr << ", ";
++                    }
++                    if((*r)->isOutParam())
++                    {
++                        ostr << "out ";
++                    }
++                    ostr << typeToString((*r)->type()) << ' ' << (*r)->name();
+                 }
+-                ostr << typeToString((*r)->type()) << ' ' << (*r)->name();
+             }
++
++            if(!optionals.empty())
++            {
++                //
++                // Sort optional parameters by tag.
++                //
++                class SortFn
++                {
++                public:
++                    static bool compare(const ParamDeclPtr& lhs, const ParamDeclPtr& rhs)
++                    {
++                        return lhs->tag() < rhs->tag();
++                    }
++                };
++                optionals.sort(SortFn::compare);
++
++                for(ParamDeclList::iterator r = optionals.begin(); r != optionals.end(); ++r)
++                {
++                    if(r != optionals.begin() || params.size() > optionals.size())
++                    {
++                        ostr << ", ";
++                    }
++                    if((*r)->isOutParam())
++                    {
++                        ostr << "out ";
++                    }
++                    ostr << typeToString((*r)->type()) << ' ' << (*r)->tag() << ' ' << (*r)->name();
++                }
++            }
++
+             ostr << ')';
+             ExceptionList ex = (*q)->throws();
+             if(!ex.empty())
+@@ -167,9 +246,38 @@
+     ostr << endl;
+ 
+     DataMemberList members = p->dataMembers();
++    DataMemberList optionals;
+     for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
+     {
+-        ostr << typeToString((*q)->type()) << ' ' << (*q)->name() << endl;
++        if((*q)->optional())
++        {
++            optionals.push_back(*q);
++        }
++        else
++        {
++            ostr << typeToString((*q)->type()) << ' ' << (*q)->name() << endl;
++        }
++    }
++
++    if(!optionals.empty())
++    {
++        //
++        // Sort optional parameters by tag.
++        //
++        class SortFn
++        {
++        public:
++            static bool compare(const DataMemberPtr& lhs, const DataMemberPtr& rhs)
++            {
++                return lhs->tag() < rhs->tag();
++            }
++        };
++        optionals.sort(SortFn::compare);
++
++        for(DataMemberList::iterator q = optionals.begin(); q != optionals.end(); ++q)
++        {
++            ostr << typeToString((*q)->type()) << ' ' << (*q)->tag() << ' ' << (*q)->name();
++        }
+     }
+ 
+     updateMap(p->scoped(), ostr.str());
+@@ -239,12 +347,38 @@
+ 
+     ostr << "enum " << p->name() << endl;
+ 
++    //
++    // Check if any of the enumerators were assigned an explicit value.
++    //
++    const bool explicitValue = p->explicitValue();
++
+     EnumeratorList enums = p->getEnumerators();
+-    for(EnumeratorList::iterator q = enums.begin(); q != enums.end(); ++q)
++    if(explicitValue)
+     {
+-        ostr << (*q)->name() << endl;
++        //
++        // Sort enumerators by value.
++        //
++        class SortFn
++        {
++        public:
++            static bool compare(const EnumeratorPtr& lhs, const EnumeratorPtr& rhs)
++            {
++                return lhs->value() < rhs->value();
++            }
++        };
++        enums.sort(SortFn::compare);
++        for(EnumeratorList::iterator q = enums.begin(); q != enums.end(); ++q)
++        {
++            ostr << (*q)->name() << ' ' << IceUtilInternal::int64ToString((*q)->value()) << endl;
++        }
++    }
++    else
++    {
++        for(EnumeratorList::iterator q = enums.begin(); q != enums.end(); ++q)
++        {
++            ostr << (*q)->name() << endl;
++        }
+     }
+-
+     updateMap(p->scoped(), ostr.str());
+ }
+ 
+diff -ru Ice-3.5.0.orig/cpp/test/Ice/checksum/Types.ice Ice-3.5.0/cpp/test/Ice/checksum/Types.ice
+--- Ice-3.5.0.orig/cpp/test/Ice/checksum/Types.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/cpp/test/Ice/checksum/Types.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -48,6 +48,26 @@
+ enum Enum4 { Enum41, Enum42, Enum43 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
++
++//
+ // TEST: Same
+ //
+ sequence<int> Sequence1;
+@@ -306,6 +326,56 @@
+ };
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -405,6 +475,133 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(2)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             optional(2) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    optional(1) int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+@@ -435,4 +632,3 @@
+ };
+ 
+ };
+-
+diff -ru Ice-3.5.0.orig/cpp/test/Ice/checksum/server/Types.ice Ice-3.5.0/cpp/test/Ice/checksum/server/Types.ice
+--- Ice-3.5.0.orig/cpp/test/Ice/checksum/server/Types.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/cpp/test/Ice/checksum/server/Types.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -43,6 +43,26 @@
+ enum Enum3 { Enum32, Enum33 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
++
++//
+ // TEST: Change to a different type
+ //
+ class Enum4 {};
+@@ -302,6 +322,57 @@
+ class Exception6 {};
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -400,6 +471,134 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(3)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/cs/test/Ice/checksum/Types.ice Ice-3.5.0/cs/test/Ice/checksum/Types.ice
+--- Ice-3.5.0.orig/cs/test/Ice/checksum/Types.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/cs/test/Ice/checksum/Types.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -48,6 +48,26 @@
+ enum Enum4 { Enum41, Enum42, Enum43 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
++
++//
+ // TEST: Same
+ //
+ sequence<int> Sequence1;
+@@ -306,6 +326,56 @@
+ };
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -405,6 +475,133 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(2)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             optional(2) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    optional(1) int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/cs/test/Ice/checksum/server/Types.ice Ice-3.5.0/cs/test/Ice/checksum/server/Types.ice
+--- Ice-3.5.0.orig/cs/test/Ice/checksum/server/Types.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/cs/test/Ice/checksum/server/Types.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -43,6 +43,26 @@
+ enum Enum3 { Enum32, Enum33 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
++
++//
+ // TEST: Change to a different type
+ //
+ class Enum4 {};
+@@ -302,6 +322,57 @@
+ class Exception6 {};
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -400,6 +471,134 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(3)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/java/test/Ice/checksum/Types.ice Ice-3.5.0/java/test/Ice/checksum/Types.ice
+--- Ice-3.5.0.orig/java/test/Ice/checksum/Types.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/java/test/Ice/checksum/Types.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -49,6 +49,26 @@
+ enum Enum4 { Enum41, Enum42, Enum43 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
++
++//
+ // TEST: Same
+ //
+ sequence<int> Sequence1;
+@@ -307,6 +327,56 @@
+ };
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -406,6 +476,133 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(2)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             optional(2) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    optional(1) int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/java/test/Ice/checksum/TypesServer.ice Ice-3.5.0/java/test/Ice/checksum/TypesServer.ice
+--- Ice-3.5.0.orig/java/test/Ice/checksum/TypesServer.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/java/test/Ice/checksum/TypesServer.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -44,6 +44,26 @@
+ enum Enum3 { Enum32, Enum33 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
++
++//
+ // TEST: Change to a different type
+ //
+ class Enum4 {};
+@@ -303,6 +323,57 @@
+ class Exception6 {};
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -401,6 +472,134 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(3)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/php/test/Ice/checksum/CTypes.ice Ice-3.5.0/php/test/Ice/checksum/CTypes.ice
+--- Ice-3.5.0.orig/php/test/Ice/checksum/CTypes.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/php/test/Ice/checksum/CTypes.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -48,6 +48,26 @@
+ enum Enum4 { Enum41, Enum42, Enum43 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
++
++//
+ // TEST: Same
+ //
+ sequence<int> Sequence1;
+@@ -306,6 +326,56 @@
+ };
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -405,6 +475,133 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(2)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             optional(2) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    optional(1) int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/py/test/Ice/checksum/CTypes.ice Ice-3.5.0/py/test/Ice/checksum/CTypes.ice
+--- Ice-3.5.0.orig/py/test/Ice/checksum/CTypes.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/py/test/Ice/checksum/CTypes.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -48,6 +48,26 @@
+ enum Enum4 { Enum41, Enum42, Enum43 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
++
++//
+ // TEST: Same
+ //
+ sequence<int> Sequence1;
+@@ -306,6 +326,56 @@
+ };
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -405,6 +475,133 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(2)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             optional(2) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    optional(1) int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/py/test/Ice/checksum/STypes.ice Ice-3.5.0/py/test/Ice/checksum/STypes.ice
+--- Ice-3.5.0.orig/py/test/Ice/checksum/STypes.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/py/test/Ice/checksum/STypes.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -43,6 +43,26 @@
+ enum Enum3 { Enum32, Enum33 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit13 = 3, EnumExplicit12 = 2 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 3, EnumExplicit23 };
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2};
++
++//
+ // TEST: Change to a different type
+ //
+ class Enum4 {};
+@@ -302,6 +322,57 @@
+ class Exception6 {};
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -400,6 +471,134 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(3)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(2) string emailAddress;
++    optional(1) string secondName;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    optional(1) string secondName;
++    string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++    optional(3) string phoneNumber;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(2) string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(2) string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, string emailAddress,
++             optional(1) string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
+diff -ru Ice-3.5.0.orig/rb/test/Ice/checksum/CTypes.ice Ice-3.5.0/rb/test/Ice/checksum/CTypes.ice
+--- Ice-3.5.0.orig/rb/test/Ice/checksum/CTypes.ice	2013-03-11 08:19:47.000000000 -0700
++++ Ice-3.5.0/rb/test/Ice/checksum/CTypes.ice	2013-08-30 21:28:31.000000000 -0700
+@@ -48,6 +48,26 @@
+ enum Enum4 { Enum41, Enum42, Enum43 };
+ 
+ //
++// TEST: Enum with explicit values.
++//
++enum EnumExplicit0 { EnumExplicit01 = 1, EnumExplicit02 = 2, EnumExplicit03 = 3 };
++
++//
++// TEST: Enum with same explicit values, different order.
++//
++enum EnumExplicit1 { EnumExplicit11 = 1, EnumExplicit12 = 2, EnumExplicit13 = 3 };
++
++//
++// TEST: Enum with different explicit values.
++//
++enum EnumExplicit2 { EnumExplicit21 = 1, EnumExplicit22 = 2, EnumExplicit23 = 3};
++
++//
++// TEST: Enum with explicit values, removed enumerator.
++//
++enum EnumExplicit3 { EnumExplicit31 = 1, EnumExplicit32 = 2, EnumExplicit33 = 3};
++
++//
+ // TEST: Same
+ //
+ sequence<int> Sequence1;
+@@ -306,6 +326,56 @@
+ };
+ 
+ //
++// TEST: Exception with optional members.
++//
++exception OptionalEx0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members, different order, same tags.
++//
++exception OptionalEx1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Exception with different optional members.
++//
++exception OptionalEx3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Exception with optional members using different tags.
++//
++exception OptionalEx4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
+ // TEST: Same
+ //
+ class BaseClass1
+@@ -405,6 +475,133 @@
+ };
+ 
+ //
++// TEST: Class with compact id
++//
++class Compact1(1)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Derived from class with compact id
++//
++class Derived1 extends Compact1
++{
++};
++
++//
++// TEST: Same class names but different compact id
++//
++class Compact2(2)
++{
++    void baseOp();
++    void baseOp2(int i, out string s) throws Exception1;
++};
++
++//
++// TEST: Class with optional members.
++//
++class Optional0
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members, different order, same tags.
++//
++class Optional1
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional2
++{
++    string firstName;
++    string secondName;
++    optional(1) string emailAddress;
++};
++
++//
++// TEST: Class with different optional members.
++//
++class Optional3
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional members using different tags.
++//
++class Optional4
++{
++    string firstName;
++    optional(1) string secondName;
++    optional(2) string emailAddress;
++};
++
++//
++// TEST: Class with optional parameters.
++//
++class OptionalParameters0
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different order.
++//
++class OptionalParameters1
++{
++    void op1(string firstName, optional(1) string secondName,
++             optional(2) string emailAddress);
++};
++
++//
++// TEST: Class with optional parameters, different tags.
++//
++class OptionalParameters2
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             optional(2) string secondName);
++};
++
++//
++// TEST: Class with different optional parameters.
++//
++class OptionalParameters3
++{
++    void op1(string firstName, optional(1) string emailAddress,
++             string secondName);
++};
++
++//
++// TEST: Class with optional return type.
++//
++class OptionalReturn0
++{
++    optional(1) int op();
++};
++
++//
++// TEST: Class that changes optional return type.
++//
++class OptionalReturn2
++{
++    optional(1) int op();
++};
++
++//
+ // TEST: Local
+ //
+ local enum LocalEnum { LocalEnum1, LocalEnum2, LocalEnum3 };
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130830/2fe697a6/attachment-0001.html>


More information about the macports-changes mailing list