summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2007-01-10 09:57:05 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2007-01-10 09:57:05 +0000
commit55186517cbf7ecdbf8ca9f944eed28c947901296 (patch)
treeecad7b4f10e6f9bf346766b6daaa0f6652417165
parentdab126c0eb13c4868b476ce8f61a07dd542bbce9 (diff)
downloadATCD-55186517cbf7ecdbf8ca9f944eed28c947901296.tar.gz
Wed Jan 10 09:56:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r--TAO/tests/Compression/server.cpp81
1 files changed, 78 insertions, 3 deletions
diff --git a/TAO/tests/Compression/server.cpp b/TAO/tests/Compression/server.cpp
index ee820eeca2d..d4bf6f8eb18 100644
--- a/TAO/tests/Compression/server.cpp
+++ b/TAO/tests/Compression/server.cpp
@@ -17,7 +17,7 @@ test_invalid_compression_factory (Compression::CompressionManager_ptr cm)
ACE_TRY_NEW_ENV
{
// Get an invalid compression factory
- Compression::CompressorFactory_var factory =
+ Compression::CompressorFactory_var factory =
cm->get_factory (100);
ACE_TRY_CHECK;
}
@@ -41,6 +41,70 @@ test_invalid_compression_factory (Compression::CompressionManager_ptr cm)
}
+bool
+test_duplicate_compression_factory (
+ Compression::CompressionManager_ptr cm,
+ Compression::CompressorFactory_ptr cf)
+{
+ bool succeed = false;
+ ACE_TRY_NEW_ENV
+ {
+ // Register duplicate
+ cm->register_factory (cf);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (Compression::FactoryAlreadyRegistered, ex)
+ {
+ ACE_UNUSED_ARG (ex);
+ succeed = true;
+ }
+ ACE_CATCHANY
+ {
+ }
+ ACE_ENDTRY;
+
+ if (!succeed)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "(%t) ERROR, register duplicate factory failed\n"));
+ }
+
+ return succeed;
+}
+
+bool
+test_register_nil_compression_factory (
+ Compression::CompressionManager_ptr cm)
+{
+ bool succeed = false;
+ ACE_TRY_NEW_ENV
+ {
+ // Register nil factory
+ cm->register_factory (Compression::CompressorFactory::_nil());
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (CORBA::BAD_PARAM, ex)
+ {
+ if ((ex.minor() & 0xFFFU) == 44)
+ {
+ succeed = true;
+ }
+ }
+ ACE_CATCHANY
+ {
+ }
+ ACE_ENDTRY;
+
+ if (!succeed)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "(%t) ERROR, register nill factory failed\n"));
+ }
+
+ return succeed;
+}
+
+
int
main (int argc, char *argv[])
{
@@ -62,7 +126,18 @@ main (int argc, char *argv[])
" (%P|%t) Panic: nil compression manager\n"),
1);
- manager->register_factory(new TAO::Zlib_CompressorFactory ());
+ Compression::CompressorFactory_ptr compressor_factory;
+
+ ACE_NEW_RETURN (compressor_factory, TAO::Zlib_CompressorFactory (), 1);
+
+ Compression::CompressorFactory_var compr_fact = compressor_factory;
+ manager->register_factory(compr_fact.in ());
+
+ if (!test_duplicate_compression_factory (manager.in (), compr_fact.in ()))
+ retval = 1;
+
+ if (!test_register_nil_compression_factory (manager.in ()))
+ retval = 1;
CORBA::ULong const nelements = 1024;
CORBA::OctetSeq mytest;
@@ -92,7 +167,7 @@ main (int argc, char *argv[])
{
ACE_DEBUG ((LM_DEBUG, "Compression worked, original size %d, compressed size %d\n", mytest.length(), myout.length ()));
}
-
+
if (!test_invalid_compression_factory (manager.in ()))
retval = 1;