From b00cd7258c5ccf856c0dc72840e082306251b278 Mon Sep 17 00:00:00 2001 From: "reed@android.com" Date: Fri, 16 Apr 2010 20:35:47 +0000 Subject: add SkRefPtr class (for testing at the moment) git-svn-id: http://skia.googlecode.com/svn/trunk@555 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/UtilsTest.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'tests/UtilsTest.cpp') diff --git a/tests/UtilsTest.cpp b/tests/UtilsTest.cpp index 8a8319c74b..8ec063e77d 100644 --- a/tests/UtilsTest.cpp +++ b/tests/UtilsTest.cpp @@ -1,9 +1,50 @@ #include "Test.h" #include "SkRandom.h" +#include "SkRefCnt.h" #include "SkTSearch.h" #include "SkTSort.h" #include "SkUtils.h" +class RefClass : public SkRefCnt { +public: + RefClass(int n) : fN(n) {} + int get() const { return fN; } + +private: + int fN; +}; + +static void test_refptr(skiatest::Reporter* reporter) { + RefClass* r0 = new RefClass(0); + + SkRefPtr rc0; + REPORTER_ASSERT(reporter, rc0.get() == NULL); + REPORTER_ASSERT(reporter, !rc0); + + SkRefPtr rc1; + REPORTER_ASSERT(reporter, rc0 == rc1); + REPORTER_ASSERT(reporter, rc0 != r0); + + rc0 = r0; + REPORTER_ASSERT(reporter, rc0); + REPORTER_ASSERT(reporter, rc0 != rc1); + REPORTER_ASSERT(reporter, rc0 == r0); + + rc1 = rc0; + REPORTER_ASSERT(reporter, rc1); + REPORTER_ASSERT(reporter, rc0 == rc1); + REPORTER_ASSERT(reporter, rc0 == r0); + + rc0 = NULL; + REPORTER_ASSERT(reporter, rc0.get() == NULL); + REPORTER_ASSERT(reporter, !rc0); + REPORTER_ASSERT(reporter, rc0 != rc1); + + r0->unref(); +} + +/////////////////////////////////////////////////////////////////////////////// + #define kSEARCH_COUNT 91 static void test_search(skiatest::Reporter* reporter) { @@ -103,6 +144,7 @@ static void TestUTF(skiatest::Reporter* reporter) { test_utf16(reporter); test_search(reporter); + test_refptr(reporter); } #include "TestClassDef.h" -- cgit v1.2.3