Remove .gitignore do nothing is ignored.
[synfig.git] / ETL / trunk / test / handle.cpp
index 77be9f5..7d2ca11 100644 (file)
@@ -1,7 +1,7 @@
 /*! ========================================================================
 ** Extended Template and Library Test Suite
 ** Handle Template Class Test
-** $Id: handle.cpp,v 1.1.1.1 2005/01/04 01:31:48 darco Exp $
+** $Id$
 **
 ** Copyright (c) 2002 Robert B. Quattlebaum Jr.
 **
@@ -101,7 +101,7 @@ int handle_basic_test()
        if(my_test_obj::instance_count!=0)
        {
                printf("FAILED!\n");
-               printf(__FILE__":%d: on create/distroy, instance count=%d, should be zero.\n",__LINE__,my_test_obj::instance_count);
+               printf(__FILE__":%d: on create/destroy, instance count=%d, should be zero.\n",__LINE__,my_test_obj::instance_count);
                return 1;
        }
 
@@ -114,7 +114,7 @@ int handle_basic_test()
        if(my_test_obj::instance_count!=0)
        {
                printf("FAILED!\n");
-               printf(__FILE__":%d: on create/distroy, instance count=%d, should be zero.\n",__LINE__,my_test_obj::instance_count);
+               printf(__FILE__":%d: on create/destroy, instance count=%d, should be zero.\n",__LINE__,my_test_obj::instance_count);
                return 1;
        }
 
@@ -167,6 +167,17 @@ int handle_general_use_test(void)
                return 1;
        }
 
+       {
+               obj_handle a(new my_test_obj(27)), b(new my_test_obj(42));
+               a.swap(b);
+               if (a->my_id != 42 || b->my_id != 27)
+               {
+                       printf("FAILED!\n");
+                       printf(__FILE__":%d: On swap (27,42) gave (%d,%d), should be (42,27).\n",__LINE__,a->my_id,b->my_id);
+                       return 1;
+               }
+       }
+
        my_other_list.clear();
        if(my_test_obj::instance_count)
        {
@@ -430,10 +441,21 @@ int loose_handle_test(void)
                }
        }
 
-       if(my_test_obj::instance_count!=1)
+       {
+               etl::loose_handle<my_test_obj> a(new my_test_obj(27)), b(new my_test_obj(42));
+               a.swap(b);
+               if (a->my_id != 42 || b->my_id != 27)
+               {
+                       printf("FAILED!\n");
+                       printf(__FILE__":%d: on loose_handle swap (27,42) gave (%d,%d), should be (42,27).\n",__LINE__,a->my_id,b->my_id);
+                       return 1;
+               }
+       }
+
+       if(my_test_obj::instance_count!=3)
        {
                printf("FAILED!\n");
-               printf(__FILE__":%d: on create/destroy, instance count=%d, should be 1.\n",__LINE__,my_test_obj::instance_count);
+               printf(__FILE__":%d: on create/destroy, instance count=%d, should be 3.\n",__LINE__,my_test_obj::instance_count);
                return 1;
        }