Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: Source/modules/fetch/CompositeDataConsumerHandleTest.cpp

Issue 1198443002: Fetch DataConsumerHandle test cleanup (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@tee
Patch Set: rebase Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "modules/fetch/CompositeDataConsumerHandle.h" 6 #include "modules/fetch/CompositeDataConsumerHandle.h"
7 7
8 #include "modules/fetch/DataConsumerHandleTestUtil.h" 8 #include "modules/fetch/DataConsumerHandleTestUtil.h"
9 #include "platform/Task.h" 9 #include "platform/Task.h"
10 #include "platform/ThreadSafeFunctional.h" 10 #include "platform/ThreadSafeFunctional.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 MOCK_METHOD1(obtainReaderInternal, Reader*(Client*)); 49 MOCK_METHOD1(obtainReaderInternal, Reader*(Client*));
50 }; 50 };
51 51
52 class ThreadingRegistrationTest : public DataConsumerHandleTestUtil::ThreadingTe stBase { 52 class ThreadingRegistrationTest : public DataConsumerHandleTestUtil::ThreadingTe stBase {
53 public: 53 public:
54 using Self = ThreadingRegistrationTest; 54 using Self = ThreadingRegistrationTest;
55 void run() 55 void run()
56 { 56 {
57 m_context = Context::create(); 57 m_context = Context::create();
58 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent()); 58 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
59 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
60 59
61 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::obta inReader, this))); 60 postTaskAndWait(updatingThread(), FROM_HERE, new Task(threadSafeBind(&Se lf::createHandle, this)));
62 61 postTaskAndWait(readingThread(), FROM_HERE, new Task(threadSafeBind(&Sel f::obtainReader, this)));
63 m_waitableEvent->wait();
64 } 62 }
65 63
66 private: 64 private:
65 void createHandle()
66 {
67 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
68 m_waitableEvent->signal();
69 }
67 void obtainReader() 70 void obtainReader()
68 { 71 {
69 m_reader = m_handle->obtainReader(&m_client); 72 m_reader = m_handle->obtainReader(&m_client);
70 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this))); 73 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this)));
71 } 74 }
72 void update() 75 void update()
73 { 76 {
74 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ; 77 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ;
75 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this))); 78 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this)));
76 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::sign alDone, this))); 79 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::sign alDone, this)));
77 } 80 }
78 81
79 OwnPtr<CompositeDataConsumerHandle> m_handle; 82 OwnPtr<CompositeDataConsumerHandle> m_handle;
80 }; 83 };
81 84
82 class ThreadingRegistrationDeleteHandleTest : public DataConsumerHandleTestUtil: :ThreadingTestBase { 85 class ThreadingRegistrationDeleteHandleTest : public DataConsumerHandleTestUtil: :ThreadingTestBase {
83 public: 86 public:
84 using Self = ThreadingRegistrationDeleteHandleTest; 87 using Self = ThreadingRegistrationDeleteHandleTest;
85 void run() 88 void run()
86 { 89 {
87 m_context = Context::create(); 90 m_context = Context::create();
88 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent()); 91 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
89 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
90 92
91 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::obta inReader, this))); 93 postTaskAndWait(updatingThread(), FROM_HERE, new Task(threadSafeBind(&Se lf::createHandle, this)));
92 94 postTaskAndWait(readingThread(), FROM_HERE, new Task(threadSafeBind(&Sel f::obtainReader, this)));
93 m_waitableEvent->wait();
94 } 95 }
95 96
96 private: 97 private:
98 void createHandle()
99 {
100 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
101 m_waitableEvent->signal();
102 }
103
97 void obtainReader() 104 void obtainReader()
98 { 105 {
99 m_reader = m_handle->obtainReader(&m_client); 106 m_reader = m_handle->obtainReader(&m_client);
100 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this))); 107 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this)));
101 } 108 }
102 void update() 109 void update()
103 { 110 {
104 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ; 111 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ;
105 m_handle = nullptr; 112 m_handle = nullptr;
106 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this))); 113 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this)));
107 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::sign alDone, this))); 114 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::sign alDone, this)));
108 } 115 }
109 116
110 OwnPtr<CompositeDataConsumerHandle> m_handle; 117 OwnPtr<CompositeDataConsumerHandle> m_handle;
111 }; 118 };
112 119
113 class ThreadingRegistrationDeleteReaderTest : public DataConsumerHandleTestUtil: :ThreadingTestBase { 120 class ThreadingRegistrationDeleteReaderTest : public DataConsumerHandleTestUtil: :ThreadingTestBase {
114 public: 121 public:
115 using Self = ThreadingRegistrationDeleteReaderTest; 122 using Self = ThreadingRegistrationDeleteReaderTest;
116 void run() 123 void run()
117 { 124 {
118 m_context = Context::create(); 125 m_context = Context::create();
119 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent()); 126 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
120 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
121 127
122 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::obta inReader, this))); 128 postTaskAndWait(updatingThread(), FROM_HERE, new Task(threadSafeBind(&Se lf::createHandle, this)));
123 129 postTaskAndWait(readingThread(), FROM_HERE, new Task(threadSafeBind(&Sel f::obtainReader, this)));
124 m_waitableEvent->wait();
125 } 130 }
126 131
127 private: 132 private:
133 void createHandle()
134 {
135 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
136 m_waitableEvent->signal();
137 }
138
128 void obtainReader() 139 void obtainReader()
129 { 140 {
130 m_reader = m_handle->obtainReader(&m_client); 141 m_reader = m_handle->obtainReader(&m_client);
131 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this))); 142 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this)));
132 } 143 }
133 void update() 144 void update()
134 { 145 {
135 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this))); 146 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this)));
136 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ; 147 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ;
137 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this))); 148 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this)));
138 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::sign alDone, this))); 149 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::sign alDone, this)));
139 } 150 }
140 151
141 OwnPtr<CompositeDataConsumerHandle> m_handle; 152 OwnPtr<CompositeDataConsumerHandle> m_handle;
142 }; 153 };
143 154
144 class ThreadingUpdatingReaderWhileUpdatingTest : public DataConsumerHandleTestUt il::ThreadingTestBase { 155 class ThreadingUpdatingReaderWhileUpdatingTest : public DataConsumerHandleTestUt il::ThreadingTestBase {
145 public: 156 public:
146 using Self = ThreadingUpdatingReaderWhileUpdatingTest; 157 using Self = ThreadingUpdatingReaderWhileUpdatingTest;
147 void run() 158 void run()
148 { 159 {
149 m_context = Context::create(); 160 m_context = Context::create();
150 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent()); 161 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
151 m_updateEvent = adoptPtr(Platform::current()->createWaitableEvent()); 162 m_updateEvent = adoptPtr(Platform::current()->createWaitableEvent());
152 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
153 163
154 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::obta inReader, this))); 164 postTaskAndWait(updatingThread(), FROM_HERE, new Task(threadSafeBind(&Se lf::createHandle, this)));
155 165 postTaskAndWait(readingThread(), FROM_HERE, new Task(threadSafeBind(&Sel f::obtainReader, this)));
156 m_waitableEvent->wait();
157 } 166 }
158 167
159 private: 168 private:
169 void createHandle()
170 {
171 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
172 m_waitableEvent->signal();
173 }
174
160 void obtainReader() 175 void obtainReader()
161 { 176 {
162 m_reader = m_handle->obtainReader(&m_client); 177 m_reader = m_handle->obtainReader(&m_client);
163 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this))); 178 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this)));
164 m_updateEvent->wait(); 179 m_updateEvent->wait();
165 } 180 }
166 181
167 void update() 182 void update()
168 { 183 {
169 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::reob tainReader, this))); 184 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::reob tainReader, this)));
(...skipping 13 matching lines...) Expand all
183 OwnPtr<WebWaitableEvent> m_updateEvent; 198 OwnPtr<WebWaitableEvent> m_updateEvent;
184 }; 199 };
185 200
186 class ThreadingRegistrationUpdateTwiceAtOneTimeTest : public DataConsumerHandleT estUtil::ThreadingTestBase { 201 class ThreadingRegistrationUpdateTwiceAtOneTimeTest : public DataConsumerHandleT estUtil::ThreadingTestBase {
187 public: 202 public:
188 using Self = ThreadingRegistrationUpdateTwiceAtOneTimeTest; 203 using Self = ThreadingRegistrationUpdateTwiceAtOneTimeTest;
189 void run() 204 void run()
190 { 205 {
191 m_context = Context::create(); 206 m_context = Context::create();
192 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent()); 207 m_waitableEvent = adoptPtr(Platform::current()->createWaitableEvent());
193 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
194 208
195 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::obta inReader, this))); 209 postTaskAndWait(updatingThread(), FROM_HERE, new Task(threadSafeBind(&Se lf::createHandle, this)));
196 210 postTaskAndWait(readingThread(), FROM_HERE, new Task(threadSafeBind(&Sel f::obtainReader, this)));
197 m_waitableEvent->wait();
198 } 211 }
199 212
200 private: 213 private:
214 void createHandle()
215 {
216 m_handle = CompositeDataConsumerHandle::create(adoptPtr(new DataConsumer Handle("handle1", m_context)));
217 m_waitableEvent->signal();
218 }
219
201 void obtainReader() 220 void obtainReader()
202 { 221 {
203 m_reader = m_handle->obtainReader(&m_client); 222 m_reader = m_handle->obtainReader(&m_client);
204 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this))); 223 updatingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::upd ate, this)));
205 } 224 }
206 void update() 225 void update()
207 { 226 {
208 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ; 227 m_handle->update(adoptPtr(new DataConsumerHandle("handle2", m_context))) ;
209 m_handle->update(adoptPtr(new DataConsumerHandle("handle3", m_context))) ; 228 m_handle->update(adoptPtr(new DataConsumerHandle("handle3", m_context))) ;
210 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this))); 229 readingThread()->postTask(FROM_HERE, new Task(threadSafeBind(&Self::rese tReader, this)));
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 TEST(CompositeDataConsumerHandleTest, DoneHandleNoNotification) 448 TEST(CompositeDataConsumerHandleTest, DoneHandleNoNotification)
430 { 449 {
431 DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest test; 450 DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest test;
432 // Test this function doesn't crash. 451 // Test this function doesn't crash.
433 test.run(CompositeDataConsumerHandle::create(createDoneDataConsumerHandle()) ); 452 test.run(CompositeDataConsumerHandle::create(createDoneDataConsumerHandle()) );
434 } 453 }
435 454
436 } // namespace 455 } // namespace
437 456
438 } // namespace blink 457 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | Source/modules/fetch/DataConsumerHandleTestUtil.h » ('j') | Source/modules/fetch/DataConsumerHandleTestUtil.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698