diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2007-01-10 09:57:05 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2007-01-10 09:57:05 +0000 |
commit | 55186517cbf7ecdbf8ca9f944eed28c947901296 (patch) | |
tree | ecad7b4f10e6f9bf346766b6daaa0f6652417165 | |
parent | dab126c0eb13c4868b476ce8f61a07dd542bbce9 (diff) | |
download | ATCD-55186517cbf7ecdbf8ca9f944eed28c947901296.tar.gz |
Wed Jan 10 09:56:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r-- | TAO/tests/Compression/server.cpp | 81 |
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; |