--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stdcpp/tsrc/Boost_test/smart_ptr/src/get_deleter_test.cpp Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,119 @@
+//
+// get_deleter_test.cpp
+//
+// Copyright (c) 2002 Peter Dimov
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+/*
+ * © Portions copyright (c) 2006-2007 Nokia Corporation. All rights reserved.
+*/
+
+#include <boost/shared_ptr.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+#ifdef __SYMBIAN32__
+#include "std_log_result.h"
+#define LOG_FILENAME_LINE __FILE__, __LINE__
+#endif
+
+struct deleter
+{
+ int data;
+
+ deleter(): data(0)
+ {
+ }
+
+ void operator()(void *)
+ {
+ BOOST_TEST(data == 17041);
+ }
+};
+
+struct deleter2
+{
+};
+
+struct X
+{
+};
+
+int main()
+{
+ std_log(LOG_FILENAME_LINE,"[Test Case for get_deleter_test]");
+ {
+ boost::shared_ptr<X> p;
+
+ BOOST_TEST(boost::get_deleter<void>(p) == 0);
+ BOOST_TEST(boost::get_deleter<void const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<int>(p) == 0);
+ BOOST_TEST(boost::get_deleter<int const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<X>(p) == 0);
+ BOOST_TEST(boost::get_deleter<X const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
+ }
+
+ {
+ boost::shared_ptr<X> p(new X);
+
+ BOOST_TEST(boost::get_deleter<void>(p) == 0);
+ BOOST_TEST(boost::get_deleter<void const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<int>(p) == 0);
+ BOOST_TEST(boost::get_deleter<int const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<X>(p) == 0);
+ BOOST_TEST(boost::get_deleter<X const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
+ }
+
+ {
+ X x;
+ boost::shared_ptr<X> p(&x, deleter());
+
+ BOOST_TEST(boost::get_deleter<void>(p) == 0);
+ BOOST_TEST(boost::get_deleter<void const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<int>(p) == 0);
+ BOOST_TEST(boost::get_deleter<int const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<X>(p) == 0);
+ BOOST_TEST(boost::get_deleter<X const>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
+ BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
+
+ deleter * q = boost::get_deleter<deleter>(p);
+
+ BOOST_TEST(q != 0);
+ BOOST_TEST(q->data == 0);
+
+ q->data = 17041;
+
+ deleter const * r = boost::get_deleter<deleter const>(p);
+
+ BOOST_TEST(r == q);
+ BOOST_TEST(r->data == 17041);
+ }
+
+#ifdef __SYMBIAN32__
+ int failures = boost::report_errors();
+ if(failures)
+ {
+ std_log(LOG_FILENAME_LINE,"Result : Failed");
+ assert_failed = true;
+ }
+ else
+ {
+ std_log(LOG_FILENAME_LINE,"Result : Passed");
+ }
+ std_log(LOG_FILENAME_LINE,"[End Test Case ]");
+#endif
+ testResultXml("get_deleter_test");
+ close_log_file();
+ return failures;
+}