diff options
Diffstat (limited to 'ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp')
-rw-r--r-- | ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp b/ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp new file mode 100644 index 00000000000..4cd14da8627 --- /dev/null +++ b/ACE/contrib/utility/Test/ExH/System/DescriptiveException/descriptive_exception.cpp @@ -0,0 +1,107 @@ +// file : Test/ExH/System/DescriptiveException/descriptive_exception.cpp +// author : Boris Kolpackov <boris@kolpackov.net> +// copyright : Copyright (c) 2002-2003 Boris Kolpackov +// license : http://kolpackov.net/license.html + +#include "Utility/ExH/System/DescriptiveException.hpp" + +#include <string> + +using std::string; +using namespace Utility::ExH::System; + +struct E {}; + +void postcondition (bool p) throw (E) +{ + if (!p) throw E (); +} + +struct StringHolder +{ + StringHolder (char const* s) + : str_ (s) + { + } + + operator std::string () const + { + return str_; + } + + string str_; +}; + +int +main () +{ + try + { + // DescriptiveException (char const*) + // + { + DescriptiveException a ("hello"); + + postcondition (a.what () == string ("hello")); + } + + // DescriptiveException (std::string const&) + // + { + DescriptiveException a (string ("hello")); + + postcondition (a.what () == string ("hello")); + } + + // DescriptiveException (T const&) + // + { + StringHolder a ("hello"); + + DescriptiveException b (a); + + postcondition (b.what () == string ("hello")); + } + + // DescriptiveException (DescriptiveException const&) + // + { + DescriptiveException a ("hello"); + DescriptiveException b (a); + + postcondition (b.what () == string ("hello")); + } + + // ~DescriptiveException + // + + // operator= (DescriptiveException const&) + // + { + DescriptiveException a ("hello"); + DescriptiveException b ("foo"); + b = a; + + postcondition (b.what () == string ("hello")); + } + + // DescriptiveException () + // + + // init (char const*) + // + + // what () + // + { + DescriptiveException a ("hello"); + + postcondition (a.what () == string ("hello")); + } + } + catch (...) + { + return -1; + } +} +//$Id$ |