blob: 0aacdf53ee3daec61ff7145ea5925916c6377266 [file] [log] [blame]
reed959a2932016-05-05 01:36:43 -07001/*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "Test.h"
9#include "SkOncePtr.h"
10#include "SkTaskGroup.h"
11
12SK_DECLARE_STATIC_ONCE_PTR(int, once);
13
14DEF_TEST(OncePtr, r) {
15 static SkAtomic<int> calls(0);
16 auto create = [&] {
17 calls.fetch_add(1);
18 return new int(5);
19 };
20
21 SkTaskGroup().batch(sk_num_cores()*4, [&](size_t) {
22 int* n = once.get(create);
23 REPORTER_ASSERT(r, *n == 5);
24 });
25 REPORTER_ASSERT(r, calls.load() == 1);
26}