aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/RefCntTest.cpp
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2016-03-03 07:50:49 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-03 07:50:49 -0800
commitbeab9e7ba06ea8bd01fcbfd44f2ca2ed69c8a1d9 (patch)
tree149ae269dc91baac346deeba5ec4362c19062b55 /tests/RefCntTest.cpp
parentf655e9330e3e3cc3d56f19017c89d8309f2ddc36 (diff)
Add operator* and operator safe-bool to sk_sp.
This greatly reduces the need to use '.get()' in conditionals. Review URL: https://codereview.chromium.org/1760453004
Diffstat (limited to 'tests/RefCntTest.cpp')
-rw-r--r--tests/RefCntTest.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/RefCntTest.cpp b/tests/RefCntTest.cpp
index bda45317bc..60a34ecf88 100644
--- a/tests/RefCntTest.cpp
+++ b/tests/RefCntTest.cpp
@@ -164,9 +164,31 @@ DEF_TEST(sk_sp, reporter) {
check(reporter, 0, 0, 1, 0);
REPORTER_ASSERT(reporter, paint.fEffect.get()->fRefCnt == 1);
+ if (paint.get()) {
+ REPORTER_ASSERT(reporter, true);
+ } else {
+ REPORTER_ASSERT(reporter, false);
+ }
+ if (!paint.get()) {
+ REPORTER_ASSERT(reporter, false);
+ } else {
+ REPORTER_ASSERT(reporter, true);
+ }
+
paint.set(nullptr);
check(reporter, 0, 1, 1, 1);
+ if (paint.get()) {
+ REPORTER_ASSERT(reporter, false);
+ } else {
+ REPORTER_ASSERT(reporter, true);
+ }
+ if (!paint.get()) {
+ REPORTER_ASSERT(reporter, true);
+ } else {
+ REPORTER_ASSERT(reporter, false);
+ }
+
auto e = Create();
REPORTER_ASSERT(reporter, sizeof(e) == sizeof(void*));
@@ -180,9 +202,14 @@ DEF_TEST(sk_sp, reporter) {
check(reporter, 2, 1, 2, 1);
REPORTER_ASSERT(reporter, paint.fEffect.get()->fRefCnt == 3);
+ // Test sk_sp::operator->
delete paint.get()->method();
check(reporter, 2, 1, 2, 1);
+ // Test sk_sp::operator*
+ delete (*paint.get()).method();
+ check(reporter, 2, 1, 2, 1);
+
paint.set(nullptr);
e = nullptr;
paint2.set(nullptr);