summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/include/Slice/Parser.h2
-rwxr-xr-xcpp/src/Slice/Parser.cpp25
-rwxr-xr-xcpp/src/Slice/PythonUtil.cpp7
-rw-r--r--cpp/src/slice2cpp/Gen.cpp20
-rw-r--r--cpp/test/Ice/slicing/exceptions/.depend4
-rw-r--r--cpp/test/Ice/slicing/exceptions/.depend.mak4
-rw-r--r--cpp/test/Ice/slicing/exceptions/TestAMDI.cpp5
-rw-r--r--cpp/test/Ice/slicing/exceptions/TestI.cpp5
-rw-r--r--cpp/test/Ice/slicing/objects/AllTests.cpp67
-rw-r--r--cpp/test/Ice/slicing/objects/ClientPrivate.ice2
-rw-r--r--py/modules/IcePy/Operation.cpp14
-rw-r--r--py/test/Ice/slicing/exceptions/AllTests.py122
-rw-r--r--py/test/Ice/slicing/exceptions/ClientPrivate.ice32
-rwxr-xr-xpy/test/Ice/slicing/exceptions/Server.py19
-rwxr-xr-xpy/test/Ice/slicing/exceptions/ServerAMD.py35
-rw-r--r--py/test/Ice/slicing/exceptions/Test.ice31
-rw-r--r--py/test/Ice/slicing/exceptions/TestAMD.ice30
-rw-r--r--py/test/Ice/slicing/objects/AllTests.py437
-rw-r--r--py/test/Ice/slicing/objects/ClientPrivate.ice21
-rwxr-xr-xpy/test/Ice/slicing/objects/Server.py94
-rwxr-xr-xpy/test/Ice/slicing/objects/ServerAMD.py97
-rw-r--r--py/test/Ice/slicing/objects/ServerPrivate.ice18
-rw-r--r--py/test/Ice/slicing/objects/ServerPrivateAMD.ice18
-rw-r--r--py/test/Ice/slicing/objects/Test.ice49
-rw-r--r--py/test/Ice/slicing/objects/TestAMD.ice49
25 files changed, 1145 insertions, 62 deletions
diff --git a/cpp/include/Slice/Parser.h b/cpp/include/Slice/Parser.h
index ab0a2ebc929..e65bb3784a4 100644
--- a/cpp/include/Slice/Parser.h
+++ b/cpp/include/Slice/Parser.h
@@ -642,6 +642,7 @@ public:
bool hasDataMembers() const;
bool hasOperations() const;
bool hasDefaultValues() const;
+ bool inheritsMetaData(const std::string&) const;
virtual ContainedType containedType() const;
virtual bool uses(const ContainedPtr&) const;
virtual std::string kindOf() const;
@@ -707,6 +708,7 @@ public:
virtual bool uses(const ContainedPtr&) const;
bool usesClasses() const;
bool hasDefaultValues() const;
+ bool inheritsMetaData(const std::string&) const;
virtual std::string kindOf() const;
virtual void visit(ParserVisitor*, bool);
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 93cbb799fc6..96260809ef8 100755
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -3433,6 +3433,20 @@ Slice::ClassDef::hasDefaultValues() const
return false;
}
+bool
+Slice::ClassDef::inheritsMetaData(const string& meta) const
+{
+ for(ClassList::const_iterator p = _bases.begin(); p != _bases.end(); ++p)
+ {
+ if((*p)->hasMetaData(meta) || (*p)->inheritsMetaData(meta))
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
Contained::ContainedType
Slice::ClassDef::containedType() const
{
@@ -3862,6 +3876,17 @@ Slice::Exception::hasDefaultValues() const
return false;
}
+bool
+Slice::Exception::inheritsMetaData(const string& meta) const
+{
+ if(_base && (_base->hasMetaData(meta) || _base->inheritsMetaData(meta)))
+ {
+ return true;
+ }
+
+ return false;
+}
+
string
Slice::Exception::kindOf() const
{
diff --git a/cpp/src/Slice/PythonUtil.cpp b/cpp/src/Slice/PythonUtil.cpp
index fada4154502..4e363c17d18 100755
--- a/cpp/src/Slice/PythonUtil.cpp
+++ b/cpp/src/Slice/PythonUtil.cpp
@@ -796,8 +796,8 @@ Slice::Python::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
DataMemberList members = p->dataMembers();
_out << sp << nl << "_M_" << type << " = IcePy.defineClass('" << scoped << "', " << name << ", ";
writeMetaData(p->getMetaData());
- _out << ", " << (isAbstract ? "True" : "False") << ", " << (p->hasMetaData("preserve-slice") ? "True" : "False")
- << ", ";
+ const bool preserved = p->hasMetaData("preserve-slice") || p->inheritsMetaData("preserve-slice");
+ _out << ", " << (isAbstract ? "True" : "False") << ", " << (preserved ? "True" : "False") << ", ";
if(!base)
{
_out << "None";
@@ -1106,7 +1106,8 @@ Slice::Python::CodeVisitor::visitExceptionStart(const ExceptionPtr& p)
string type = getAbsolute(p, "_t_");
_out << sp << nl << "_M_" << type << " = IcePy.defineException('" << scoped << "', " << name << ", ";
writeMetaData(p->getMetaData());
- _out << ", " << (p->hasMetaData("preserve-slice") ? "True" : "False") << ", ";
+ const bool preserved = p->hasMetaData("preserve-slice") || p->inheritsMetaData("preserve-slice");
+ _out << ", " << (preserved ? "True" : "False") << ", ";
if(!base)
{
_out << "None";
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index 6062804d5db..ecbc5b215be 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -635,8 +635,8 @@ Slice::Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p)
ExceptionPtr base = p->base();
DataMemberList dataMembers = p->dataMembers();
DataMemberList allDataMembers = p->allDataMembers();
- bool preserved = p->hasMetaData("preserve-slice");
- bool basePreserved = base ? base->hasMetaData("preserve-slice") : false;
+ bool basePreserved = p->inheritsMetaData("preserve-slice");
+ bool preserved = basePreserved || p->hasMetaData("preserve-slice");
bool hasDefaultValues = p->hasDefaultValues();
DataMemberList::const_iterator q;
@@ -881,8 +881,8 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
if(!p->isLocal())
{
ExceptionPtr base = p->base();
- bool preserved = p->hasMetaData("preserve-slice");
- bool basePreserved = base ? base->hasMetaData("preserve-slice") : false;
+ bool basePreserved = p->inheritsMetaData("preserve-slice");
+ bool preserved = basePreserved || p->hasMetaData("preserve-slice");
H << sp << nl << "virtual void __write(::IceInternal::BasicStream*) const;";
H << nl << "virtual void __writeImpl(::IceInternal::BasicStream*) const;";
@@ -3827,8 +3827,8 @@ Slice::Gen::ObjectVisitor::visitClassDefStart(const ClassDefPtr& p)
}
DataMemberList dataMembers = p->dataMembers();
DataMemberList allDataMembers = p->allDataMembers();
- bool preserved = p->hasMetaData("preserve-slice");
- bool basePreserved = base ? base->hasMetaData("preserve-slice") : false;
+ bool basePreserved = p->inheritsMetaData("preserve-slice");
+ bool preserved = basePreserved || p->hasMetaData("preserve-slice");
H << sp << nl << "class " << _dllExport << name << " : ";
H.useCurrentPosAsIndent();
@@ -4165,8 +4165,8 @@ Slice::Gen::ObjectVisitor::visitClassDefEnd(const ClassDefPtr& p)
{
base = bases.front();
}
- bool preserved = p->hasMetaData("preserve-slice");
- bool basePreserved = base ? base->hasMetaData("preserve-slice") : false;
+ bool basePreserved = p->inheritsMetaData("preserve-slice");
+ bool preserved = basePreserved || p->hasMetaData("preserve-slice");
if(!p->isLocal())
{
@@ -5018,8 +5018,8 @@ Slice::Gen::ObjectVisitor::emitGCFunctions(const ClassDefPtr& p)
//
bool canBeCyclic = p->canBeCyclic();
bool override = canBeCyclic && (!base || !base->canBeCyclic());
- bool preserved = p->hasMetaData("preserve-slice");
- bool basePreserved = base ? base->hasMetaData("preserve-slice") : false;
+ bool basePreserved = p->inheritsMetaData("preserve-slice");
+ bool preserved = basePreserved || p->hasMetaData("preserve-slice");
//
// We also override __addObject and __usesGC if this is the initial preserved
diff --git a/cpp/test/Ice/slicing/exceptions/.depend b/cpp/test/Ice/slicing/exceptions/.depend
index 94289cd4839..3f0fa04408d 100644
--- a/cpp/test/Ice/slicing/exceptions/.depend
+++ b/cpp/test/Ice/slicing/exceptions/.depend
@@ -4,11 +4,11 @@ ClientPrivate$(OBJEXT): ClientPrivate.cpp ClientPrivate.h $(includedir)/Ice/Loca
AllTests$(OBJEXT): AllTests.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../../../include/TestCommon.h ClientPrivate.h Test.h
Test$(OBJEXT): Test.cpp Test.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SlicedData.h $(includedir)/IceUtil/Iterator.h
ServerPrivate$(OBJEXT): ServerPrivate.cpp ServerPrivate.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h Test.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SlicedData.h $(includedir)/IceUtil/Iterator.h
-TestI$(OBJEXT): TestI.cpp TestI.h ServerPrivate.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h Test.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h
+TestI$(OBJEXT): TestI.cpp TestI.h ServerPrivate.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h Test.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../../../include/TestCommon.h
Server$(OBJEXT): Server.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h TestI.h ServerPrivate.h Test.h
TestAMD$(OBJEXT): TestAMD.cpp TestAMD.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SlicedData.h $(includedir)/IceUtil/Iterator.h
ServerPrivateAMD$(OBJEXT): ServerPrivateAMD.cpp ServerPrivateAMD.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h TestAMD.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SlicedData.h $(includedir)/IceUtil/Iterator.h
-TestAMDI$(OBJEXT): TestAMDI.cpp TestAMDI.h ServerPrivateAMD.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h TestAMD.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h
+TestAMDI$(OBJEXT): TestAMDI.cpp TestAMDI.h ServerPrivateAMD.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h TestAMD.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../../../include/TestCommon.h
ServerAMD$(OBJEXT): ServerAMD.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h TestAMDI.h ServerPrivateAMD.h TestAMD.h
Test.h Test.cpp: Test.ice $(SLICE2CPP) $(SLICEPARSERLIB)
TestAMD.h TestAMD.cpp: TestAMD.ice $(SLICE2CPP) $(SLICEPARSERLIB)
diff --git a/cpp/test/Ice/slicing/exceptions/.depend.mak b/cpp/test/Ice/slicing/exceptions/.depend.mak
index 21197a227a7..78b56e02ca0 100644
--- a/cpp/test/Ice/slicing/exceptions/.depend.mak
+++ b/cpp/test/Ice/slicing/exceptions/.depend.mak
@@ -4,11 +4,11 @@ ClientPrivate$(OBJEXT): ClientPrivate.cpp ClientPrivate.h "$(includedir)/Ice/Loc
AllTests$(OBJEXT): AllTests.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Stats.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/IconvStringConverter.h" ../../../include/TestCommon.h ClientPrivate.h Test.h
Test$(OBJEXT): Test.cpp Test.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/IceUtil/Iterator.h"
ServerPrivate$(OBJEXT): ServerPrivate.cpp ServerPrivate.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" Test.h "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/IceUtil/Iterator.h"
-TestI$(OBJEXT): TestI.cpp TestI.h ServerPrivate.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" Test.h "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Stats.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/IconvStringConverter.h"
+TestI$(OBJEXT): TestI.cpp TestI.h ServerPrivate.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" Test.h "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Stats.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/IconvStringConverter.h" ../../../include/TestCommon.h
Server$(OBJEXT): Server.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Stats.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/IconvStringConverter.h" TestI.h ServerPrivate.h Test.h
TestAMD$(OBJEXT): TestAMD.cpp TestAMD.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/IceUtil/Iterator.h"
ServerPrivateAMD$(OBJEXT): ServerPrivateAMD.cpp ServerPrivateAMD.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" TestAMD.h "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/IceUtil/Iterator.h"
-TestAMDI$(OBJEXT): TestAMDI.cpp TestAMDI.h ServerPrivateAMD.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" TestAMD.h "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Stats.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/IconvStringConverter.h"
+TestAMDI$(OBJEXT): TestAMDI.cpp TestAMDI.h ServerPrivateAMD.h "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" TestAMD.h "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Stats.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/IconvStringConverter.h" ../../../include/TestCommon.h
ServerAMD$(OBJEXT): ServerAMD.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Stats.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/IconvStringConverter.h" TestAMDI.h ServerPrivateAMD.h TestAMD.h
Test.h Test.cpp: Test.ice "$(SLICE2CPP)" "$(SLICEPARSERLIB)"
TestAMD.h TestAMD.cpp: TestAMD.ice "$(SLICE2CPP)" "$(SLICEPARSERLIB)"
diff --git a/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp b/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp
index c9ce7a80396..f8358484dfb 100644
--- a/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp
+++ b/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp
@@ -9,6 +9,7 @@
#include <TestAMDI.h>
#include <Ice/Ice.h>
+#include <TestCommon.h>
using namespace Test;
@@ -161,6 +162,7 @@ TestI::relayKnownPreservedAsBase_async(const AMD_TestIntf_relayKnownPreservedAsB
try
{
r->knownPreservedAsBase();
+ test(false);
}
catch(const Ice::Exception& ex)
{
@@ -175,6 +177,7 @@ TestI::relayKnownPreservedAsKnownPreserved_async(const AMD_TestIntf_relayKnownPr
try
{
r->knownPreservedAsKnownPreserved();
+ test(false);
}
catch(const Ice::Exception& ex)
{
@@ -189,6 +192,7 @@ TestI::relayUnknownPreservedAsBase_async(const AMD_TestIntf_relayUnknownPreserve
try
{
r->unknownPreservedAsBase();
+ test(false);
}
catch(const Ice::Exception& ex)
{
@@ -203,6 +207,7 @@ TestI::relayUnknownPreservedAsKnownPreserved_async(const AMD_TestIntf_relayUnkno
try
{
r->unknownPreservedAsKnownPreserved();
+ test(false);
}
catch(const Ice::Exception& ex)
{
diff --git a/cpp/test/Ice/slicing/exceptions/TestI.cpp b/cpp/test/Ice/slicing/exceptions/TestI.cpp
index 827908ab9e7..7a982738d21 100644
--- a/cpp/test/Ice/slicing/exceptions/TestI.cpp
+++ b/cpp/test/Ice/slicing/exceptions/TestI.cpp
@@ -9,6 +9,7 @@
#include <TestI.h>
#include <Ice/Ice.h>
+#include <TestCommon.h>
using namespace Test;
@@ -153,24 +154,28 @@ void
TestI::relayKnownPreservedAsBase(const RelayPrx& r, const ::Ice::Current&)
{
r->knownPreservedAsBase();
+ test(false);
}
void
TestI::relayKnownPreservedAsKnownPreserved(const RelayPrx& r, const ::Ice::Current&)
{
r->knownPreservedAsKnownPreserved();
+ test(false);
}
void
TestI::relayUnknownPreservedAsBase(const RelayPrx& r, const ::Ice::Current&)
{
r->unknownPreservedAsBase();
+ test(false);
}
void
TestI::relayUnknownPreservedAsKnownPreserved(const RelayPrx& r, const ::Ice::Current&)
{
r->unknownPreservedAsKnownPreserved();
+ test(false);
}
void
diff --git a/cpp/test/Ice/slicing/objects/AllTests.cpp b/cpp/test/Ice/slicing/objects/AllTests.cpp
index da0a2fce9cb..788e96e5235 100644
--- a/cpp/test/Ice/slicing/objects/AllTests.cpp
+++ b/cpp/test/Ice/slicing/objects/AllTests.cpp
@@ -665,41 +665,40 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
test(false);
}
-
- if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
+ }
+ if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
+ {
+ try
{
- try
- {
- //
- // This test succeeds for the 1.0 encoding.
- //
- sb = test->SBSUnknownDerivedAsSBaseCompact();
- test(sb->sb == "SBSUnknownDerived.sb");
- }
- catch(...)
- {
- test(false);
- }
+ //
+ // This test succeeds for the 1.0 encoding.
+ //
+ SBasePtr sb = test->SBSUnknownDerivedAsSBaseCompact();
+ test(sb->sb == "SBSUnknownDerived.sb");
}
- else
+ catch(...)
{
- try
- {
- //
- // This test fails when using the compact format because the instance cannot
- // be sliced to a known type.
- //
- sb = test->SBSUnknownDerivedAsSBaseCompact();
- test(false);
- }
- catch(const Ice::MarshalException&)
- {
- // Expected.
- }
- catch(...)
- {
- test(false);
- }
+ test(false);
+ }
+ }
+ else
+ {
+ try
+ {
+ //
+ // This test fails when using the compact format because the instance cannot
+ // be sliced to a known type.
+ //
+ SBasePtr sb = test->SBSUnknownDerivedAsSBaseCompact();
+ test(false);
+ }
+ catch(const Ice::MarshalException&)
+ {
+ // Expected.
+ }
+ catch(...)
+ {
+ test(false);
}
}
cout << "ok" << endl;
@@ -1915,7 +1914,6 @@ allTests(const Ice::CommunicatorPtr& communicator)
PDerivedPtr pd = new PDerived;
pd->pi = 3;
pd->ps = "preserved";
- pd->ps = "preserved";
pd->pb = pd;
PBasePtr r = test->exchangePBase(pd);
@@ -2225,6 +2223,9 @@ allTests(const Ice::CommunicatorPtr& communicator)
}
catch(const PreservedException&)
{
+ //
+ // The class instance is only retained when the encoding is > 1.0.
+ //
if(test->ice_getEncodingVersion() != Ice::Encoding_1_0)
{
test(PreservedI::counter == 1);
diff --git a/cpp/test/Ice/slicing/objects/ClientPrivate.ice b/cpp/test/Ice/slicing/objects/ClientPrivate.ice
index 97e89b119b6..f8708d424c3 100644
--- a/cpp/test/Ice/slicing/objects/ClientPrivate.ice
+++ b/cpp/test/Ice/slicing/objects/ClientPrivate.ice
@@ -26,7 +26,7 @@ class PCUnknown extends PBase
string pu;
};
-class PCDerived extends Preserved
+class PCDerived extends PDerived
{
PBaseSeq pbs;
};
diff --git a/py/modules/IcePy/Operation.cpp b/py/modules/IcePy/Operation.cpp
index 5b2d9eea3dc..401109e84b9 100644
--- a/py/modules/IcePy/Operation.cpp
+++ b/py/modules/IcePy/Operation.cpp
@@ -3091,19 +3091,33 @@ IcePy::TypedUpcall::dispatch(PyObject* servant, const pair<const Ice::Byte*, con
if(!_op->inParams.empty())
{
Ice::InputStreamPtr is = Ice::createInputStream(_communicator, inBytes);
+
+ //
+ // Store a pointer to a local SlicedDataUtil object as the stream's closure.
+ // This is necessary to support object unmarshaling (see ObjectReader).
+ //
+ SlicedDataUtil util;
+ assert(!is->closure());
+ is->closure(&util);
+
try
{
is->startEncapsulation();
+
Py_ssize_t i = start;
for(ParamInfoList::iterator p = _op->inParams.begin(); p != _op->inParams.end(); ++p, ++i)
{
void* closure = reinterpret_cast<void*>(i);
(*p)->type->unmarshal(is, *p, args.get(), closure, &(*p)->metaData);
}
+
if(_op->sendsClasses)
{
is->readPendingObjects();
}
+
+ util.update();
+
is->endEncapsulation();
}
catch(const AbortMarshaling&)
diff --git a/py/test/Ice/slicing/exceptions/AllTests.py b/py/test/Ice/slicing/exceptions/AllTests.py
index 320cd195404..079212fe755 100644
--- a/py/test/Ice/slicing/exceptions/AllTests.py
+++ b/py/test/Ice/slicing/exceptions/AllTests.py
@@ -10,7 +10,7 @@
import Ice, threading, sys
-Ice.loadSlice('Test.ice')
+Ice.loadSlice('-I. --all ClientPrivate.ice')
import Test
def test(b):
@@ -183,6 +183,35 @@ class Callback(CallbackBase):
test(False)
self.called()
+class RelayI(Test.Relay):
+ def knownPreservedAsBase(self, current=None):
+ ex = Test.KnownPreserved()
+ ex.b = "base"
+ ex.kp = "preserved"
+ raise ex
+
+ def knownPreservedAsKnownPreserved(self, current=None):
+ ex = Test.KnownPreserved()
+ ex.b = "base"
+ ex.kp = "preserved"
+ raise ex
+
+ def unknownPreservedAsBase(self, current=None):
+ ex = Test.Preserved2()
+ ex.b = "base"
+ ex.kp = "preserved"
+ ex.p1 = Test.PreservedClass("bc", "pc")
+ ex.p2 = ex.p1
+ raise ex
+
+ def unknownPreservedAsKnownPreserved(self, current=None):
+ ex = Test.Preserved2()
+ ex.b = "base"
+ ex.kp = "preserved"
+ ex.p1 = Test.PreservedClass("bc", "pc")
+ ex.p2 = ex.p1
+ raise ex
+
def allTests(communicator):
obj = communicator.stringToProxy("Test:default -p 12010")
t = Test.TestIntfPrx.checkedCast(obj)
@@ -446,4 +475,95 @@ def allTests(communicator):
cb.check()
print("ok")
+ sys.stdout.write("unknown most derived in compact format... ")
+ sys.stdout.flush()
+ try:
+ t.unknownMostDerived2AsBaseCompact()
+ test(False)
+ except Test.Base:
+ #
+ # For the 1.0 encoding, the unknown exception is sliced to Base.
+ #
+ test(t.ice_getEncodingVersion() == Ice.Encoding_1_0)
+ except Ice.MarshalException:
+ #
+ # A MarshalException is raised for the compact format because the
+ # most-derived type is unknown and the exception cannot be sliced.
+ #
+ test(t.ice_getEncodingVersion() != Ice.Encoding_1_0)
+ except:
+ test(False)
+ print("ok")
+
+ sys.stdout.write("preserved exceptions... ")
+ sys.stdout.flush()
+ adapter = communicator.createObjectAdapterWithEndpoints("Relay", "default")
+ relay = Test.RelayPrx.uncheckedCast(adapter.addWithUUID(RelayI()))
+ adapter.activate()
+
+ try:
+ t.relayKnownPreservedAsBase(relay)
+ test(False)
+ except Test.KnownPreserved as ex:
+ test(ex.b == "base")
+ test(ex.kp == "preserved")
+ except:
+ test(False)
+
+ try:
+ t.relayKnownPreservedAsKnownPreserved(relay)
+ test(False)
+ except Test.KnownPreserved as ex:
+ test(ex.b == "base")
+ test(ex.kp == "preserved")
+ except:
+ test(False)
+
+ try:
+ t.relayUnknownPreservedAsBase(relay)
+ test(False)
+ except Test.Preserved2 as ex:
+ test(ex.b == "base")
+ test(ex.kp == "preserved")
+ test(ex.p1.ice_id() == Test.PreservedClass.ice_staticId())
+ pc = ex.p1
+ test(isinstance(pc, Test.PreservedClass))
+ test(pc.bc == "bc")
+ test(pc.pc == "pc")
+ test(ex.p2 == ex.p1)
+ except Test.KnownPreserved as ex:
+ #
+ # For the 1.0 encoding, the unknown exception is sliced to KnownPreserved.
+ #
+ test(t.ice_getEncodingVersion() == Ice.Encoding_1_0)
+ test(ex.b == "base")
+ test(ex.kp == "preserved")
+ except:
+ test(False)
+
+ try:
+ t.relayUnknownPreservedAsKnownPreserved(relay)
+ test(False)
+ except Test.Preserved2 as ex:
+ test(ex.b == "base")
+ test(ex.kp == "preserved")
+ test(ex.p1.ice_id() == Test.PreservedClass.ice_staticId())
+ pc = ex.p1
+ test(isinstance(pc, Test.PreservedClass))
+ test(pc.bc == "bc")
+ test(pc.pc == "pc")
+ test(ex.p2 == ex.p1)
+ except Test.KnownPreserved as ex:
+ #
+ # For the 1.0 encoding, the unknown exception is sliced to KnownPreserved.
+ #
+ test(t.ice_getEncodingVersion() == Ice.Encoding_1_0)
+ test(ex.b == "base")
+ test(ex.kp == "preserved")
+ except:
+ test(False)
+
+ adapter.destroy()
+ print("ok")
+
return t
diff --git a/py/test/Ice/slicing/exceptions/ClientPrivate.ice b/py/test/Ice/slicing/exceptions/ClientPrivate.ice
new file mode 100644
index 00000000000..9b2e381798a
--- /dev/null
+++ b/py/test/Ice/slicing/exceptions/ClientPrivate.ice
@@ -0,0 +1,32 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#pragma once
+
+#include <Test.ice>
+
+module Test
+{
+
+class PreservedClass extends BaseClass
+{
+ string pc;
+};
+
+exception Preserved1 extends KnownPreserved
+{
+ BaseClass p1;
+};
+
+exception Preserved2 extends Preserved1
+{
+ BaseClass p2;
+};
+
+};
diff --git a/py/test/Ice/slicing/exceptions/Server.py b/py/test/Ice/slicing/exceptions/Server.py
index ff397e4f192..eb0c585a9b6 100755
--- a/py/test/Ice/slicing/exceptions/Server.py
+++ b/py/test/Ice/slicing/exceptions/Server.py
@@ -100,6 +100,25 @@ class TestI(Test.TestIntf):
umd2.umd2 = "UnknownMostDerived2.umd2"
raise umd2
+ def unknownMostDerived2AsBaseCompact(self, current=None):
+ umd2 = Test.UnknownMostDerived2()
+ umd2.b = "UnknownMostDerived2.b"
+ umd2.ui = "UnknownMostDerived2.ui"
+ umd2.umd2 = "UnknownMostDerived2.umd2"
+ raise umd2
+
+ def relayKnownPreservedAsBase(self, r, current=None):
+ r.knownPreservedAsBase()
+
+ def relayKnownPreservedAsKnownPreserved(self, r, current=None):
+ r.knownPreservedAsKnownPreserved()
+
+ def relayUnknownPreservedAsBase(self, r, current=None):
+ r.unknownPreservedAsBase()
+
+ def relayUnknownPreservedAsKnownPreserved(self, r, current=None):
+ r.unknownPreservedAsKnownPreserved()
+
def run(args, communicator):
properties = communicator.getProperties()
properties.setProperty("Ice.Warn.Dispatch", "0")
diff --git a/py/test/Ice/slicing/exceptions/ServerAMD.py b/py/test/Ice/slicing/exceptions/ServerAMD.py
index 8137633df6c..426550025dd 100755
--- a/py/test/Ice/slicing/exceptions/ServerAMD.py
+++ b/py/test/Ice/slicing/exceptions/ServerAMD.py
@@ -102,6 +102,41 @@ class TestI(Test.TestIntf):
umd2.umd2 = "UnknownMostDerived2.umd2"
cb.ice_exception(umd2)
+ def unknownMostDerived2AsBaseCompact_async(self, cb, current=None):
+ umd2 = Test.UnknownMostDerived2()
+ umd2.b = "UnknownMostDerived2.b"
+ umd2.ui = "UnknownMostDerived2.ui"
+ umd2.umd2 = "UnknownMostDerived2.umd2"
+ cb.ice_exception(umd2)
+
+ def relayKnownPreservedAsBase_async(self, cb, r, current=None):
+ try:
+ r.knownPreservedAsBase()
+ test(False)
+ except Ice.Exception as ex:
+ cb.ice_exception(ex)
+
+ def relayKnownPreservedAsKnownPreserved_async(self, cb, r, current=None):
+ try:
+ r.knownPreservedAsKnownPreserved()
+ test(False)
+ except Ice.Exception as ex:
+ cb.ice_exception(ex)
+
+ def relayUnknownPreservedAsBase_async(self, cb, r, current=None):
+ try:
+ r.unknownPreservedAsBase()
+ test(False)
+ except Ice.Exception as ex:
+ cb.ice_exception(ex)
+
+ def relayUnknownPreservedAsKnownPreserved_async(self, cb, r, current=None):
+ try:
+ r.unknownPreservedAsKnownPreserved()
+ test(False)
+ except Ice.Exception as ex:
+ cb.ice_exception(ex)
+
def run(args, communicator):
properties = communicator.getProperties()
properties.setProperty("Ice.Warn.Dispatch", "0")
diff --git a/py/test/Ice/slicing/exceptions/Test.ice b/py/test/Ice/slicing/exceptions/Test.ice
index 7ce7c185440..be67cb391e6 100644
--- a/py/test/Ice/slicing/exceptions/Test.ice
+++ b/py/test/Ice/slicing/exceptions/Test.ice
@@ -32,6 +32,28 @@ exception KnownMostDerived extends KnownIntermediate
string kmd;
};
+["preserve-slice"]
+exception KnownPreserved extends Base
+{
+ string kp;
+};
+
+["preserve-slice"]
+class BaseClass
+{
+ string bc;
+};
+
+["format:sliced"]
+interface Relay
+{
+ void knownPreservedAsBase() throws Base;
+ void knownPreservedAsKnownPreserved() throws KnownPreserved;
+
+ void unknownPreservedAsBase() throws Base;
+ void unknownPreservedAsKnownPreserved() throws KnownPreserved;
+};
+
["format:sliced"]
interface TestIntf
{
@@ -51,8 +73,15 @@ interface TestIntf
void unknownMostDerived1AsKnownIntermediate() throws KnownIntermediate;
void unknownMostDerived2AsBase() throws Base;
+ ["format:compact"] void unknownMostDerived2AsBaseCompact() throws Base;
+
+ void relayKnownPreservedAsBase(Relay* r) throws Base;
+ void relayKnownPreservedAsKnownPreserved(Relay* r) throws KnownPreserved;
+
+ void relayUnknownPreservedAsBase(Relay* r) throws Base;
+ void relayUnknownPreservedAsKnownPreserved(Relay* r) throws KnownPreserved;
+
void shutdown();
};
};
-
diff --git a/py/test/Ice/slicing/exceptions/TestAMD.ice b/py/test/Ice/slicing/exceptions/TestAMD.ice
index 258adef8d9b..fbf94f29a56 100644
--- a/py/test/Ice/slicing/exceptions/TestAMD.ice
+++ b/py/test/Ice/slicing/exceptions/TestAMD.ice
@@ -32,6 +32,28 @@ exception KnownMostDerived extends KnownIntermediate
string kmd;
};
+["preserve-slice"]
+exception KnownPreserved extends Base
+{
+ string kp;
+};
+
+["preserve-slice"]
+class BaseClass
+{
+ string bc;
+};
+
+["format:sliced"]
+interface Relay
+{
+ void knownPreservedAsBase() throws Base;
+ void knownPreservedAsKnownPreserved() throws KnownPreserved;
+
+ void unknownPreservedAsBase() throws Base;
+ void unknownPreservedAsKnownPreserved() throws KnownPreserved;
+};
+
["amd", "format:sliced"]
interface TestIntf
{
@@ -51,6 +73,14 @@ interface TestIntf
void unknownMostDerived1AsKnownIntermediate() throws KnownIntermediate;
void unknownMostDerived2AsBase() throws Base;
+ ["format:compact"] void unknownMostDerived2AsBaseCompact() throws Base;
+
+ void relayKnownPreservedAsBase(Relay* r) throws Base;
+ void relayKnownPreservedAsKnownPreserved(Relay* r) throws KnownPreserved;
+
+ void relayUnknownPreservedAsBase(Relay* r) throws Base;
+ void relayUnknownPreservedAsKnownPreserved(Relay* r) throws KnownPreserved;
+
void shutdown();
};
diff --git a/py/test/Ice/slicing/objects/AllTests.py b/py/test/Ice/slicing/objects/AllTests.py
index d81934d0a60..f13cd7c6d8f 100644
--- a/py/test/Ice/slicing/objects/AllTests.py
+++ b/py/test/Ice/slicing/objects/AllTests.py
@@ -8,7 +8,7 @@
#
# **********************************************************************
-import Ice, sys, threading
+import Ice, gc, sys, threading
Ice.loadSlice('-I. --all Forward.ice ClientPrivate.ice')
import Test
@@ -64,6 +64,13 @@ class Callback(CallbackBase):
test(sb.sb == "SBSUnknownDerived.sb")
self.called()
+ def response_SBSUnknownDerivedAsSBaseCompact(self, sb):
+ test(False)
+
+ def exception_SBSUnknownDerivedAsSBaseCompact(self, ex):
+ test(isinstance(ex, Ice.MarshalException))
+ self.called()
+
def response_SUnknownAsObject(self, o):
test(False)
@@ -264,12 +271,93 @@ class Callback(CallbackBase):
test(f)
self.called()
+ def response_preserved1(self, r):
+ test(r)
+ test(isinstance(r, Test.PDerived))
+ test(r.pi == 3)
+ test(r.ps == "preserved")
+ test(r.pb == r)
+ self.called()
+
+ def response_preserved2(self, r):
+ test(r)
+ test(not isinstance(r, Test.PCUnknown))
+ test(r.pi == 3)
+ self.called()
+
+ def response_preserved3(self, r):
+ #
+ # Encoding 1.0
+ #
+ test(not isinstance(r, Test.PCDerived))
+ test(r.pi == 3)
+ self.called()
+
+ def response_preserved4(self, r):
+ #
+ # Encoding > 1.0
+ #
+ test(isinstance(r, Test.PCDerived))
+ test(r.pi == 3)
+ test(r.pbs[0] == r)
+ self.called()
+
+ def response_preserved5(self, r):
+ test(isinstance(r, Test.PCDerived3))
+ test(r.pi == 3)
+ for i in range(0, 300):
+ p2 = r.pbs[i]
+ test(isinstance(p2, Test.PCDerived2))
+ test(p2.pi == i)
+ test(len(p2.pbs) == 1)
+ test(not p2.pbs[0])
+ test(p2.pcd2 == i)
+ test(r.pcd2 == r.pi)
+ test(r.pcd3 == r.pbs[10])
+ self.called()
+
def response(self):
test(False)
def exception(self, exc):
test(False)
+class PNodeI(Test.PNode):
+ counter = 0
+
+ def __init__(self):
+ PNodeI.counter = PNodeI.counter + 1
+
+ def __del__(self):
+ PNodeI.counter = PNodeI.counter - 1
+
+class NodeFactoryI(Ice.ObjectFactory):
+ def create(self, id):
+ if id == Test.PNode.ice_staticId():
+ return PNodeI()
+ return None
+
+ def destroy(self):
+ pass
+
+class PreservedI(Test.Preserved):
+ counter = 0
+
+ def __init__(self):
+ PreservedI.counter = PreservedI.counter + 1
+
+ def __del__(self):
+ PreservedI.counter = PreservedI.counter - 1
+
+class PreservedFactoryI(Ice.ObjectFactory):
+ def create(self, id):
+ if id == Test.Preserved.ice_staticId():
+ return PreservedI()
+ return None
+
+ def destroy(self):
+ pass
+
def allTests(communicator):
obj = communicator.stringToProxy("Test:default -p 12010")
t = Test.TestIntfPrx.checkedCast(obj)
@@ -355,6 +443,28 @@ def allTests(communicator):
test(sb.sb == "SBSUnknownDerived.sb")
except Ice.Exception:
test(False)
+ if t.ice_getEncodingVersion() == Ice.Encoding_1_0:
+ try:
+ #
+ # This test succeeds for the 1.0 encoding.
+ #
+ sb = t.SBSUnknownDerivedAsSBaseCompact()
+ test(sb.sb == "SBSUnknownDerived.sb")
+ except:
+ test(False)
+ else:
+ try:
+ #
+ # This test fails when using the compact format because the instance cannot
+ # be sliced to a known type.
+ #
+ sb = t.SBSUnknownDerivedAsSBaseCompact()
+ test(False)
+ except Ice.MarshalException:
+ # Expected.
+ pass
+ except:
+ test(False)
print("ok")
sys.stdout.write("base with unknown derived as base (AMI)... ")
@@ -362,6 +472,22 @@ def allTests(communicator):
cb = Callback()
t.begin_SBSUnknownDerivedAsSBase(cb.response_SBSUnknownDerivedAsSBase, cb.exception)
cb.check()
+ if t.ice_getEncodingVersion() == Ice.Encoding_1_0:
+ #
+ # This test succeeds for the 1.0 encoding.
+ #
+ cb = Callback()
+ t.begin_SBSUnknownDerivedAsSBaseCompact(cb.response_SBSUnknownDerivedAsSBase, cb.exception)
+ cb.check()
+ else:
+ #
+ # This test fails when using the compact format because the instance cannot
+ # be sliced to a known type.
+ #
+ cb = Callback()
+ t.begin_SBSUnknownDerivedAsSBaseCompact(cb.response_SBSUnknownDerivedAsSBaseCompact,
+ cb.exception_SBSUnknownDerivedAsSBaseCompact)
+ cb.check()
print("ok")
sys.stdout.write("unknown with Object as Object... ")
@@ -946,7 +1072,7 @@ def allTests(communicator):
sys.stdout.write("sequence slicing... ")
sys.stdout.flush()
try:
- ss = Test.SS()
+ ss = Test.SS3()
ss1b = Test.B()
ss1b.sb = "B.sb"
ss1b.pb = ss1b
@@ -1022,7 +1148,7 @@ def allTests(communicator):
sys.stdout.write("sequence slicing (AMI)... ")
sys.stdout.flush()
try:
- ss = Test.SS()
+ ss = Test.SS3()
ss1b = Test.B()
ss1b.sb = "B.sb"
ss1b.pb = ss1b
@@ -1306,4 +1432,309 @@ def allTests(communicator):
cb.check()
print("ok")
+ sys.stdout.write("preserved classes... ")
+ sys.stdout.flush()
+
+ #
+ # Server knows the most-derived class PDerived.
+ #
+ pd = Test.PDerived()
+ pd.pi = 3
+ pd.ps = "preserved"
+ pd.pb = pd
+
+ r = t.exchangePBase(pd)
+ test(isinstance(r, Test.PDerived))
+ test(r.pi == 3)
+ test(r.ps == "preserved")
+ test(r.pb == r)
+
+ #
+ # Server only knows the base (non-preserved) type, so the object is sliced.
+ #
+ pu = Test.PCUnknown()
+ pu.pi = 3
+ pu.pu = "preserved"
+
+ r = t.exchangePBase(pu)
+ test(not isinstance(r, Test.PCUnknown))
+ test(r.pi == 3)
+
+ #
+ # Server only knows the intermediate type Preserved. The object will be sliced to
+ # Preserved for the 1.0 encoding; otherwise it should be returned intact.
+ #
+ pcd = Test.PCDerived()
+ pcd.pi = 3
+ pcd.pbs = [ pcd ]
+
+ r = t.exchangePBase(pcd)
+ if t.ice_getEncodingVersion() == Ice.Encoding_1_0:
+ test(not isinstance(r, Test.PCDerived))
+ test(r.pi == 3)
+ else:
+ test(isinstance(r, Test.PCDerived))
+ test(r.pi == 3)
+ test(r.pbs[0] == r)
+
+ #
+ # Send an object that will have multiple preserved slices in the server.
+ # The object will be sliced to Preserved for the 1.0 encoding.
+ #
+ pcd = Test.PCDerived3()
+ pcd.pi = 3;
+ #
+ # Sending more than 254 objects exercises the encoding for object ids.
+ #
+ pcd.pbs = []
+ for i in range(0, 300):
+ p2 = Test.PCDerived2()
+ p2.pi = i
+ p2.pbs = [ None ] # Nil reference. This slice should not have an indirection table.
+ p2.pcd2 = i
+ pcd.pbs.append(p2)
+ pcd.pcd2 = pcd.pi
+ pcd.pcd3 = pcd.pbs[10]
+
+ r = t.exchangePBase(pcd)
+ if t.ice_getEncodingVersion() == Ice.Encoding_1_0:
+ test(not isinstance(r, Test.PCDerived3))
+ test(isinstance(r, Test.Preserved))
+ test(r.pi == 3)
+ else:
+ test(isinstance(r, Test.PCDerived3))
+ test(r.pi == 3)
+ for i in range(0, 300):
+ p2 = r.pbs[i]
+ test(isinstance(p2, Test.PCDerived2))
+ test(p2.pi == i)
+ test(len(p2.pbs) == 1)
+ test(not p2.pbs[0])
+ test(p2.pcd2 == i)
+ test(r.pcd2 == r.pi)
+ test(r.pcd3 == r.pbs[10])
+
+ #
+ # Obtain an object with preserved slices and send it back to the server.
+ # The preserved slices should be excluded for the 1.0 encoding, otherwise
+ # they should be included.
+ #
+ p = t.PBSUnknownAsPreserved()
+ t.checkPBSUnknown(p)
+ if t.ice_getEncodingVersion() != Ice.Encoding_1_0:
+ t.ice_encodingVersion(Ice.Encoding_1_0).checkPBSUnknown(p)
+
+ print("ok")
+
+ sys.stdout.write("preserved classes (AMI)... ")
+ sys.stdout.flush()
+
+ #
+ # Server knows the most-derived class PDerived.
+ #
+ pd = Test.PDerived()
+ pd.pi = 3
+ pd.ps = "preserved"
+ pd.pb = pd
+
+ cb = Callback()
+ t.begin_exchangePBase(pd, cb.response_preserved1, cb.exception)
+ cb.check()
+
+ #
+ # Server only knows the base (non-preserved) type, so the object is sliced.
+ #
+ pu = Test.PCUnknown()
+ pu.pi = 3
+ pu.pu = "preserved"
+
+ cb = Callback()
+ t.begin_exchangePBase(pu, cb.response_preserved2, cb.exception)
+ cb.check()
+
+ #
+ # Server only knows the intermediate type Preserved. The object will be sliced to
+ # Preserved for the 1.0 encoding; otherwise it should be returned intact.
+ #
+ pcd = Test.PCDerived()
+ pcd.pi = 3
+ pcd.pbs = [ pcd ]
+
+ cb = Callback()
+ if t.ice_getEncodingVersion() == Ice.Encoding_1_0:
+ t.begin_exchangePBase(pcd, cb.response_preserved3, cb.exception)
+ else:
+ t.begin_exchangePBase(pcd, cb.response_preserved4, cb.exception)
+ cb.check()
+
+ #
+ # Send an object that will have multiple preserved slices in the server.
+ # The object will be sliced to Preserved for the 1.0 encoding.
+ #
+ pcd = Test.PCDerived3()
+ pcd.pi = 3;
+ #
+ # Sending more than 254 objects exercises the encoding for object ids.
+ #
+ pcd.pbs = []
+ for i in range(0, 300):
+ p2 = Test.PCDerived2()
+ p2.pi = i
+ p2.pbs = [ None ] # Nil reference. This slice should not have an indirection table.
+ p2.pcd2 = i
+ pcd.pbs.append(p2)
+ pcd.pcd2 = pcd.pi
+ pcd.pcd3 = pcd.pbs[10]
+
+ cb = Callback()
+ if t.ice_getEncodingVersion() == Ice.Encoding_1_0:
+ t.begin_exchangePBase(pcd, cb.response_preserved3, cb.exception)
+ else:
+ t.begin_exchangePBase(pcd, cb.response_preserved5, cb.exception)
+ cb.check()
+
+ print("ok")
+
+ sys.stdout.write("garbage collection of preserved classes... ")
+ sys.stdout.flush()
+
+ #
+ # Register a factory in order to substitute our own subclass of
+ # UCNode. This provides an easy way to determine how many
+ # unmarshaled instances currently exist.
+ #
+ communicator.addObjectFactory(NodeFactoryI(), Test.PNode.ice_staticId())
+
+ #
+ # Relay a graph through the server. This test uses a preserved class
+ # with a class member.
+ #
+ c = Test.PNode()
+ c.next = Test.PNode()
+ c.next.next = Test.PNode()
+ c.next.next.next = c # Create a cyclic graph.
+
+ test(PNodeI.counter == 0)
+ n = t.exchangePNode(c)
+ test(PNodeI.counter == 3)
+ test(n.next != None)
+ test(n.next != n.next.next)
+ test(n.next.next != n.next.next.next)
+ test(n.next.next.next == n)
+ n = None # Release reference.
+ #
+ # The PNodeI class declares a __del__ method, which means the Python
+ # garbage collector will NOT collect a cycle of PNodeI objects.
+ #
+ gc.collect() # No effect.
+ test(PNodeI.counter == 3)
+ #
+ # The uncollectable objects are stored in gc.garbage. We have to
+ # manually break the cycle and then remove the objects from the
+ # gc.garbage list.
+ #
+ test(len(gc.garbage) > 0)
+ for o in gc.garbage:
+ if isinstance(o, PNodeI):
+ o.next = None
+ o = None # Remove last reference.
+ del gc.garbage[:]
+ test(PNodeI.counter == 0)
+
+ #
+ # Obtain a preserved object from the server where the most-derived
+ # type is unknown. The preserved slice refers to a graph of PNode
+ # objects.
+ #
+ test(PNodeI.counter == 0)
+ p = t.PBSUnknownAsPreservedWithGraph()
+ test(p)
+ test(PNodeI.counter == 3)
+ t.checkPBSUnknownWithGraph(p)
+ p = None # Release reference.
+ #
+ # The PNodeI class declares a __del__ method, which means the Python
+ # garbage collector will NOT collect a cycle of PNodeI objects.
+ #
+ gc.collect() # No effect.
+ test(PNodeI.counter == 3)
+ #
+ # The uncollectable objects are stored in gc.garbage. We have to
+ # manually break the cycle and then remove the objects from the
+ # gc.garbage list.
+ #
+ test(len(gc.garbage) > 0)
+ for o in gc.garbage:
+ if isinstance(o, PNodeI):
+ o.next = None
+ o = None # Remove last reference.
+ del gc.garbage[:]
+ test(PNodeI.counter == 0)
+
+ #
+ # Register a factory in order to substitute our own subclass of
+ # Preserved. This provides an easy way to determine how many
+ # unmarshaled instances currently exist.
+ #
+ communicator.addObjectFactory(PreservedFactoryI(), Test.Preserved.ice_staticId())
+
+ #
+ # Obtain a preserved object from the server where the most-derived
+ # type is unknown. A data member in the preserved slice refers to the
+ # outer object, so the chain of references looks like this:
+ #
+ # outer->slicedData->outer
+ #
+ test(PreservedI.counter == 0)
+ p = t.PBSUnknown2AsPreservedWithGraph()
+ test(p != None)
+ test(PreservedI.counter == 1)
+ t.checkPBSUnknown2WithGraph(p)
+ p._ice_slicedData = None # Break the cycle.
+ p = None # Release reference.
+ test(PreservedI.counter == 0)
+
+ #
+ # Throw a preserved exception where the most-derived type is unknown.
+ # The preserved exception slice contains a class data member. This
+ # object is also preserved, and its most-derived type is also unknown.
+ # The preserved slice of the object contains a class data member that
+ # refers to itself.
+ #
+ # The chain of references looks like this:
+ #
+ # ex->slicedData->obj->slicedData->obj
+ #
+ try:
+ test(PreservedI.counter == 0)
+
+ try:
+ t.throwPreservedException()
+ except Test.PreservedException as ex:
+ #
+ # The class instance is only retained when the encoding is > 1.0.
+ #
+ if t.ice_getEncodingVersion() != Ice.Encoding_1_0:
+ test(PreservedI.counter == 1)
+ gc.collect() # No effect.
+ test(PreservedI.counter == 1)
+ ex._ice_slicedData = None # Break the cycle.
+
+ #
+ # Exception has gone out of scope.
+ #
+ if t.ice_getEncodingVersion() != Ice.Encoding_1_0:
+ gc.collect()
+ test(len(gc.garbage) > 0)
+ for o in gc.garbage:
+ if isinstance(o, PreservedI):
+ o._ice_slicedData = None
+ o = None # Remove last reference.
+ del gc.garbage[:]
+ test(PreservedI.counter == 0)
+ except Ice.Exception:
+ test(False)
+
+ print("ok")
+
return t
diff --git a/py/test/Ice/slicing/objects/ClientPrivate.ice b/py/test/Ice/slicing/objects/ClientPrivate.ice
index b4e22a0d495..f8708d424c3 100644
--- a/py/test/Ice/slicing/objects/ClientPrivate.ice
+++ b/py/test/Ice/slicing/objects/ClientPrivate.ice
@@ -20,4 +20,25 @@ class D3 extends B
B pd3;
};
+["preserve-slice"]
+class PCUnknown extends PBase
+{
+ string pu;
+};
+
+class PCDerived extends PDerived
+{
+ PBaseSeq pbs;
+};
+
+class PCDerived2 extends PCDerived
+{
+ int pcd2;
+};
+
+class PCDerived3 extends PCDerived2
+{
+ Object pcd3;
+};
+
};
diff --git a/py/test/Ice/slicing/objects/Server.py b/py/test/Ice/slicing/objects/Server.py
index e6c3a520a06..181912cc2c4 100755
--- a/py/test/Ice/slicing/objects/Server.py
+++ b/py/test/Ice/slicing/objects/Server.py
@@ -14,6 +14,10 @@ import Ice
Ice.loadSlice('-I. --all ServerPrivate.ice Forward.ice')
import Test
+def test(b):
+ if not b:
+ raise RuntimeError('test assertion failed')
+
class TestI(Test.TestIntf):
def SBaseAsObject(self, current=None):
sb = Test.SBase()
@@ -43,6 +47,12 @@ class TestI(Test.TestIntf):
sbsud.sbsud = "SBSUnknownDerived.sbsud"
return sbsud
+ def SBSUnknownDerivedAsSBaseCompact(self, current=None):
+ sbsud = Test.SBSUnknownDerived()
+ sbsud.sb = "SBSUnknownDerived.sb"
+ sbsud.sbsud = "SBSUnknownDerived.sbsud"
+ return sbsud
+
def SUnknownAsObject(self, current=None):
su = Test.SUnknown()
su.su = "SUnknown.su"
@@ -173,7 +183,7 @@ class TestI(Test.TestIntf):
return p1
def sequenceTest(self, p1, p2, current=None):
- ss = Test.SS()
+ ss = Test.SS3()
ss.c1 = p1
ss.c2 = p2
return ss
@@ -204,6 +214,79 @@ class TestI(Test.TestIntf):
return (r, bout)
+ def exchangePBase(self, pb, current=None):
+ return pb
+
+ def PBSUnknownAsPreserved(self, current=None):
+ r = Test.PSUnknown()
+ r.pi = 5
+ r.ps = "preserved"
+ r.psu = "unknown"
+ r.graph = None
+ return r
+
+ def checkPBSUnknown(self, p, current=None):
+ if current.encoding == Ice.Encoding_1_0:
+ test(not isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ else:
+ test(isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ test(p.psu == "unknown")
+ test(not p.graph)
+
+ def PBSUnknownAsPreservedWithGraph_async(self, cb, current=None):
+ r = Test.PSUnknown()
+ r.pi = 5
+ r.ps = "preserved"
+ r.psu = "unknown"
+ r.graph = Test.PNode()
+ r.graph.next = Test.PNode()
+ r.graph.next.next = Test.PNode()
+ r.graph.next.next.next = r.graph
+ cb.ice_response(r)
+ r.graph.next.next.next = None # Break the cycle.
+
+ def checkPBSUnknownWithGraph(self, p, current=None):
+ if current.encoding == Ice.Encoding_1_0:
+ test(not isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ else:
+ test(isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ test(p.psu == "unknown")
+ test(p.graph != p.graph.next)
+ test(p.graph.next != p.graph.next.next)
+ test(p.graph.next.next.next == p.graph)
+ p.graph.next.next.next = None # Break the cycle.
+
+ def PBSUnknown2AsPreservedWithGraph_async(self, cb, current=None):
+ r = Test.PSUnknown2()
+ r.pi = 5
+ r.ps = "preserved"
+ r.pb = r
+ cb.ice_response(r)
+ r.pb = None # Break the cycle.
+
+ def checkPBSUnknown2WithGraph(self, p, current=None):
+ if current.encoding == Ice.Encoding_1_0:
+ test(not isinstance(p, Test.PSUnknown2))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ else:
+ test(isinstance(p, Test.PSUnknown2))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ test(p.pb == p)
+ p.pb = None # Break the cycle.
+
+ def exchangePNode(self, pn, current=None):
+ return pn
+
def throwBaseAsBase(self, current=None):
be = Test.BaseException()
be.sbe = "sbe"
@@ -254,6 +337,15 @@ class TestI(Test.TestIntf):
ude.pd2 = d2
raise ude
+ def throwPreservedException_async(self, cb, current=None):
+ ue = Test.PSUnknownException()
+ ue.p = Test.PSUnknown2()
+ ue.p.pi = 5
+ ue.p.ps = "preserved"
+ ue.p.pb = ue.p
+ cb.ice_exception(ue)
+ ue.p.pb = None # Break the cycle.
+
def useForward(self, current=None):
f = Test.Forward()
f.h = Test.Hidden()
diff --git a/py/test/Ice/slicing/objects/ServerAMD.py b/py/test/Ice/slicing/objects/ServerAMD.py
index bed2375b7b5..defd04f96c8 100755
--- a/py/test/Ice/slicing/objects/ServerAMD.py
+++ b/py/test/Ice/slicing/objects/ServerAMD.py
@@ -14,6 +14,10 @@ import Ice
Ice.loadSlice('-I. --all ServerPrivateAMD.ice Forward.ice')
import Test
+def test(b):
+ if not b:
+ raise RuntimeError('test assertion failed')
+
class TestI(Test.TestIntf):
def SBaseAsObject_async(self, cb, current=None):
sb = Test.SBase()
@@ -43,6 +47,12 @@ class TestI(Test.TestIntf):
sbsud.sbsud = "SBSUnknownDerived.sbsud"
cb.ice_response(sbsud)
+ def SBSUnknownDerivedAsSBaseCompact_async(self, cb, current=None):
+ sbsud = Test.SBSUnknownDerived()
+ sbsud.sb = "SBSUnknownDerived.sb"
+ sbsud.sbsud = "SBSUnknownDerived.sbsud"
+ cb.ice_response(sbsud)
+
def SUnknownAsObject_async(self, cb, current=None):
su = Test.SUnknown()
su.su = "SUnknown.su"
@@ -197,7 +207,7 @@ class TestI(Test.TestIntf):
cb.ice_response(p1)
def sequenceTest_async(self, cb, p1, p2, current=None):
- ss = Test.SS()
+ ss = Test.SS3()
ss.c1 = p1
ss.c2 = p2
cb.ice_response(ss)
@@ -228,6 +238,82 @@ class TestI(Test.TestIntf):
cb.ice_response(r, bout)
+ def exchangePBase_async(self, cb, pb, current=None):
+ cb.ice_response(pb)
+
+ def PBSUnknownAsPreserved_async(self, cb, current=None):
+ r = Test.PSUnknown()
+ r.pi = 5
+ r.ps = "preserved"
+ r.psu = "unknown"
+ r.graph = None
+ cb.ice_response(r)
+
+ def checkPBSUnknown_async(self, cb, p, current=None):
+ if current.encoding == Ice.Encoding_1_0:
+ test(not isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ else:
+ test(isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ test(p.psu == "unknown")
+ test(not p.graph)
+ cb.ice_response()
+
+ def PBSUnknownAsPreservedWithGraph_async(self, cb, current=None):
+ r = Test.PSUnknown()
+ r.pi = 5
+ r.ps = "preserved"
+ r.psu = "unknown"
+ r.graph = Test.PNode()
+ r.graph.next = Test.PNode()
+ r.graph.next.next = Test.PNode()
+ r.graph.next.next.next = r.graph
+ cb.ice_response(r)
+ r.graph.next.next.next = None # Break the cycle.
+
+ def checkPBSUnknownWithGraph_async(self, cb, p, current=None):
+ if current.encoding == Ice.Encoding_1_0:
+ test(not isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ else:
+ test(isinstance(p, Test.PSUnknown))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ test(p.psu == "unknown")
+ test(p.graph != p.graph.next)
+ test(p.graph.next != p.graph.next.next)
+ test(p.graph.next.next.next == p.graph)
+ p.graph.next.next.next = None # Break the cycle.
+ cb.ice_response()
+
+ def PBSUnknown2AsPreservedWithGraph_async(self, cb, current=None):
+ r = Test.PSUnknown2()
+ r.pi = 5
+ r.ps = "preserved"
+ r.pb = r
+ cb.ice_response(r)
+ r.pb = None # Break the cycle.
+
+ def checkPBSUnknown2WithGraph_async(self, cb, p, current=None):
+ if current.encoding == Ice.Encoding_1_0:
+ test(not isinstance(p, Test.PSUnknown2))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ else:
+ test(isinstance(p, Test.PSUnknown2))
+ test(p.pi == 5)
+ test(p.ps == "preserved")
+ test(p.pb == p)
+ p.pb = None # Break the cycle.
+ cb.ice_response()
+
+ def exchangePNode_async(self, cb, pn, current=None):
+ cb.ice_response(pn)
+
def throwBaseAsBase_async(self, cb, current=None):
be = Test.BaseException()
be.sbe = "sbe"
@@ -278,6 +364,15 @@ class TestI(Test.TestIntf):
ude.pd2 = d2
cb.ice_exception(ude)
+ def throwPreservedException_async(self, cb, current=None):
+ ue = Test.PSUnknownException()
+ ue.p = Test.PSUnknown2()
+ ue.p.pi = 5
+ ue.p.ps = "preserved"
+ ue.p.pb = ue.p
+ cb.ice_exception(ue)
+ ue.p.pb = None # Break the cycle.
+
def useForward_async(self, cb, current=None):
f = Test.Forward()
f.h = Test.Hidden()
diff --git a/py/test/Ice/slicing/objects/ServerPrivate.ice b/py/test/Ice/slicing/objects/ServerPrivate.ice
index 7a1da786d48..6e8f9557888 100644
--- a/py/test/Ice/slicing/objects/ServerPrivate.ice
+++ b/py/test/Ice/slicing/objects/ServerPrivate.ice
@@ -42,4 +42,22 @@ exception UnknownDerivedException extends BaseException
D2 pd2;
};
+["preserve-slice"]
+class PSUnknown extends Preserved
+{
+ string psu;
+ PNode graph;
+};
+
+["preserve-slice"]
+class PSUnknown2 extends Preserved
+{
+ PBase pb;
+};
+
+exception PSUnknownException extends PreservedException
+{
+ PSUnknown2 p;
+};
+
};
diff --git a/py/test/Ice/slicing/objects/ServerPrivateAMD.ice b/py/test/Ice/slicing/objects/ServerPrivateAMD.ice
index 41a00ae682a..24d370a13e1 100644
--- a/py/test/Ice/slicing/objects/ServerPrivateAMD.ice
+++ b/py/test/Ice/slicing/objects/ServerPrivateAMD.ice
@@ -42,4 +42,22 @@ exception UnknownDerivedException extends BaseException
D2 pd2;
};
+["preserve-slice"]
+class PSUnknown extends Preserved
+{
+ string psu;
+ PNode graph;
+};
+
+["preserve-slice"]
+class PSUnknown2 extends Preserved
+{
+ PBase pb;
+};
+
+exception PSUnknownException extends PreservedException
+{
+ PSUnknown2 p;
+};
+
};
diff --git a/py/test/Ice/slicing/objects/Test.ice b/py/test/Ice/slicing/objects/Test.ice
index 55a725b7853..8e20db55def 100644
--- a/py/test/Ice/slicing/objects/Test.ice
+++ b/py/test/Ice/slicing/objects/Test.ice
@@ -46,7 +46,7 @@ class SS2
BSeq s;
};
-struct SS
+struct SS3
{
SS1 c1;
SS2 c2;
@@ -68,6 +68,35 @@ exception DerivedException extends BaseException
class Forward; /* Forward-declared class defined in another compilation unit */
+class PBase
+{
+ int pi;
+};
+
+sequence<PBase> PBaseSeq;
+
+["preserve-slice"]
+class Preserved extends PBase
+{
+ string ps;
+};
+
+class PDerived extends Preserved
+{
+ PBase pb;
+};
+
+["preserve-slice"]
+class PNode
+{
+ PNode next;
+};
+
+["preserve-slice"]
+exception PreservedException
+{
+};
+
["format:sliced"]
interface TestIntf
{
@@ -78,6 +107,8 @@ interface TestIntf
SBase SBSUnknownDerivedAsSBase();
+ ["format:compact"] SBase SBSUnknownDerivedAsSBaseCompact();
+
Object SUnknownAsObject();
B oneElementCycle();
@@ -95,14 +126,28 @@ interface TestIntf
B returnTest2(out B p2, out B p1);
B returnTest3(B p1, B p2);
- SS sequenceTest(SS1 p1, SS2 p2);
+ SS3 sequenceTest(SS1 p1, SS2 p2);
BDict dictionaryTest(BDict bin, out BDict bout);
+ PBase exchangePBase(PBase pb);
+
+ Preserved PBSUnknownAsPreserved();
+ void checkPBSUnknown(Preserved p);
+
+ ["amd"] Preserved PBSUnknownAsPreservedWithGraph();
+ void checkPBSUnknownWithGraph(Preserved p);
+
+ ["amd"] Preserved PBSUnknown2AsPreservedWithGraph();
+ void checkPBSUnknown2WithGraph(Preserved p);
+
+ PNode exchangePNode(PNode pn);
+
void throwBaseAsBase() throws BaseException;
void throwDerivedAsBase() throws BaseException;
void throwDerivedAsDerived() throws DerivedException;
void throwUnknownDerivedAsBase() throws BaseException;
+ ["amd"] void throwPreservedException() throws PreservedException;
void useForward(out Forward f); /* Use of forward-declared class to verify that code is generated correctly. */
diff --git a/py/test/Ice/slicing/objects/TestAMD.ice b/py/test/Ice/slicing/objects/TestAMD.ice
index dd02e2dad8c..ccc239f69f4 100644
--- a/py/test/Ice/slicing/objects/TestAMD.ice
+++ b/py/test/Ice/slicing/objects/TestAMD.ice
@@ -46,7 +46,7 @@ class SS2
BSeq s;
};
-struct SS
+struct SS3
{
SS1 c1;
SS2 c2;
@@ -68,6 +68,35 @@ exception DerivedException extends BaseException
class Forward; /* Forward-declared class defined in another compilation unit */
+class PBase
+{
+ int pi;
+};
+
+sequence<PBase> PBaseSeq;
+
+["preserve-slice"]
+class Preserved extends PBase
+{
+ string ps;
+};
+
+class PDerived extends Preserved
+{
+ PBase pb;
+};
+
+["preserve-slice"]
+class PNode
+{
+ PNode next;
+};
+
+["preserve-slice"]
+exception PreservedException
+{
+};
+
["amd", "format:sliced"]
interface TestIntf
{
@@ -78,6 +107,8 @@ interface TestIntf
SBase SBSUnknownDerivedAsSBase();
+ ["format:compact"] SBase SBSUnknownDerivedAsSBaseCompact();
+
Object SUnknownAsObject();
B oneElementCycle();
@@ -95,14 +126,28 @@ interface TestIntf
B returnTest2(out B p2, out B p1);
B returnTest3(B p1, B p2);
- SS sequenceTest(SS1 p1, SS2 p2);
+ SS3 sequenceTest(SS1 p1, SS2 p2);
BDict dictionaryTest(BDict bin, out BDict bout);
+ PBase exchangePBase(PBase pb);
+
+ Preserved PBSUnknownAsPreserved();
+ void checkPBSUnknown(Preserved p);
+
+ Preserved PBSUnknownAsPreservedWithGraph();
+ void checkPBSUnknownWithGraph(Preserved p);
+
+ Preserved PBSUnknown2AsPreservedWithGraph();
+ void checkPBSUnknown2WithGraph(Preserved p);
+
+ PNode exchangePNode(PNode pn);
+
void throwBaseAsBase() throws BaseException;
void throwDerivedAsBase() throws BaseException;
void throwDerivedAsDerived() throws DerivedException;
void throwUnknownDerivedAsBase() throws BaseException;
+ void throwPreservedException() throws PreservedException;
void useForward(out Forward f); /* Use of forward-declared class to verify that code is generated correctly. */