| OLD | NEW |
| (Empty) |
| 1 #include "Test.h" | |
| 2 #include "SkLazyPtr.h" | |
| 3 #include "SkTaskGroup.h" | |
| 4 | |
| 5 DEF_TEST(LazyPtr, r) { | |
| 6 SkLazyPtr<int> lazy; | |
| 7 int* ptr = lazy.get(); | |
| 8 | |
| 9 REPORTER_ASSERT(r, ptr); | |
| 10 REPORTER_ASSERT(r, lazy.get() == ptr); | |
| 11 | |
| 12 SkLazyPtr<double> neverRead; | |
| 13 } | |
| 14 | |
| 15 namespace { | |
| 16 | |
| 17 struct Racer : public SkRunnable { | |
| 18 Racer() : fLazy(NULL), fSeen(NULL) {} | |
| 19 | |
| 20 virtual void run() SK_OVERRIDE { fSeen = fLazy->get(); } | |
| 21 | |
| 22 SkLazyPtr<int>* fLazy; | |
| 23 int* fSeen; | |
| 24 }; | |
| 25 | |
| 26 } // namespace | |
| 27 | |
| 28 DEF_TEST(LazyPtr_Threaded, r) { | |
| 29 static const int kRacers = 321; | |
| 30 | |
| 31 SkLazyPtr<int> lazy; | |
| 32 | |
| 33 Racer racers[kRacers]; | |
| 34 for (int i = 0; i < kRacers; i++) { | |
| 35 racers[i].fLazy = &lazy; | |
| 36 } | |
| 37 | |
| 38 SkTaskGroup tg; | |
| 39 for (int i = 0; i < kRacers; i++) { | |
| 40 tg.add(racers + i); | |
| 41 } | |
| 42 tg.wait(); | |
| 43 | |
| 44 for (int i = 1; i < kRacers; i++) { | |
| 45 REPORTER_ASSERT(r, racers[i].fSeen); | |
| 46 REPORTER_ASSERT(r, racers[i].fSeen == racers[0].fSeen); | |
| 47 } | |
| 48 } | |
| OLD | NEW |