From 5e73dce0e71791b87e5b096a890578eefcc26639 Mon Sep 17 00:00:00 2001 From: KUDr Date: Sat, 27 May 2006 16:12:16 +0000 Subject: (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing. --- yapf/unittest/test_autocopyptr.h | 43 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 yapf/unittest/test_autocopyptr.h (limited to 'yapf/unittest/test_autocopyptr.h') diff --git a/yapf/unittest/test_autocopyptr.h b/yapf/unittest/test_autocopyptr.h new file mode 100644 index 000000000..a08d84a59 --- /dev/null +++ b/yapf/unittest/test_autocopyptr.h @@ -0,0 +1,43 @@ +/* $Id$ */ + +struct CData +{ + int val; + + FORCEINLINE CData() : val(0) {NumInstances()++; /*DBG("DCata::ctor()\n");*/} + FORCEINLINE CData(const CData& src) : val(src.val) {NumInstances()++; /*DBG("DCata::ctor(%d)\n", val);*/} + FORCEINLINE ~CData() {NumInstances()--; /*DBG("DCata::dtor(%d)\n", val);*/} + + FORCEINLINE bool operator < (const CData& other) const {return (val < other.val);} + + FORCEINLINE static int& NumInstances() { static int num_instances = 0; return num_instances; }; + +}; + +typedef CAutoCopyPtrT PData; + +static int TestAutoCopyPtr(bool silent) +{ + int res = 0; + { + PData p1, p3; + p1->val = 4; + PData p2; p2 = p1; + p2->val = 6; + DBG("\n%d, %d", p1->val, p2->val); + CHECK_INT(0, p1->val, 4); + CHECK_INT(1, p2->val, 6); + + p2 = p1; + p3 = p1; + p2->val = 7; + DBG("\n%d, %d", p1->val, p2->val); + CHECK_INT(2, p3->val, 4); + CHECK_INT(3, p2->val, 7); + + CHECK_INT(4, CData::NumInstances(), 3); + } + CHECK_INT(5, CData::NumInstances(), 0); + return res; +} + -- cgit v1.2.3-70-g09d2