[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