|
@@ -167,5 +167,54 @@ TEST(SimpleStringTest, WideCharTransferTest)
|
|
|
ASSERT_TRUE(wstr.Compare(L"testString") == 0);
|
|
|
}
|
|
|
|
|
|
+#endif //_WIN32
|
|
|
|
|
|
-#endif //_WIN32
|
|
|
+#include "Blob.h"
|
|
|
+TEST(CommonTest, CBlobTest)
|
|
|
+{
|
|
|
+ uint64_t* t = new uint64_t;
|
|
|
+ ASSERT_TRUE(t != NULL);
|
|
|
+ *t = 1024;
|
|
|
+ CBlob blob;
|
|
|
+ ASSERT_TRUE(blob.m_pData == NULL);
|
|
|
+ ASSERT_TRUE(blob.m_iLength == 0);
|
|
|
+ ASSERT_TRUE(blob.m_bManaged == false);
|
|
|
+
|
|
|
+ blob.Attach(t, sizeof(uint64_t));
|
|
|
+ ASSERT_TRUE(blob.m_pData == t);
|
|
|
+ ASSERT_TRUE(blob.m_iLength == sizeof(uint64_t));
|
|
|
+ ASSERT_TRUE(blob.m_bManaged);
|
|
|
+
|
|
|
+ CBlob blob2;
|
|
|
+ blob2 = blob;
|
|
|
+ ASSERT_FALSE(blob2.m_pData == NULL);
|
|
|
+ ASSERT_FALSE(blob2.m_iLength == 0);
|
|
|
+ ASSERT_FALSE(blob2.m_bManaged == false);
|
|
|
+ ASSERT_TRUE((*(uint64_t*)(blob2.m_pData)) == 1024);
|
|
|
+
|
|
|
+ blob2.Clear();
|
|
|
+ ASSERT_TRUE(blob2.m_pData == NULL);
|
|
|
+ ASSERT_TRUE(blob2.m_iLength == 0);
|
|
|
+ ASSERT_TRUE(blob2.m_bManaged == false);
|
|
|
+ ASSERT_TRUE((*(uint64_t*)(blob.m_pData)) == 1024);
|
|
|
+
|
|
|
+ blob2 = blob;
|
|
|
+ blob2.Refer(t, sizeof(uint64_t));
|
|
|
+ ASSERT_TRUE(blob2.m_bManaged == false);
|
|
|
+ ASSERT_TRUE((*(uint64_t*)(blob2.m_pData)) == 1024);
|
|
|
+
|
|
|
+ blob2.Clear();
|
|
|
+ ASSERT_TRUE(*t == 1024);
|
|
|
+
|
|
|
+ //convey blob to blob2
|
|
|
+ blob.AssignAndClear(blob2);
|
|
|
+ ASSERT_TRUE(blob2.m_pData == t);
|
|
|
+ ASSERT_TRUE(blob2.m_iLength == sizeof(uint64_t));
|
|
|
+ ASSERT_TRUE(blob2.m_bManaged);
|
|
|
+
|
|
|
+ //Clear, t would be destroy by blob2
|
|
|
+ blob2.Resize(0);
|
|
|
+ ASSERT_TRUE(blob2.m_pData == NULL);
|
|
|
+ ASSERT_TRUE(blob2.m_iLength == 0);
|
|
|
+ ASSERT_TRUE(blob2.m_bManaged == false);
|
|
|
+}
|