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

Side by Side Diff: gpu/command_buffer/client/query_tracker_unittest.cc

Issue 184223003: gpu: Use explicit atomics instead of assuming that 32bit read/writes are atomic. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more s/uint32/base::subtle::Atomic32/ Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Tests for the QueryTracker. 5 // Tests for the QueryTracker.
6 6
7 #include "gpu/command_buffer/client/query_tracker.h" 7 #include "gpu/command_buffer/client/query_tracker.h"
8 8
9 #include <GLES2/gl2ext.h> 9 #include <GLES2/gl2ext.h>
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 }; 47 };
48 48
49 TEST_F(QuerySyncManagerTest, Basic) { 49 TEST_F(QuerySyncManagerTest, Basic) {
50 QuerySyncManager::QueryInfo infos[4]; 50 QuerySyncManager::QueryInfo infos[4];
51 memset(&infos, 0xBD, sizeof(infos)); 51 memset(&infos, 0xBD, sizeof(infos));
52 52
53 for (size_t ii = 0; ii < arraysize(infos); ++ii) { 53 for (size_t ii = 0; ii < arraysize(infos); ++ii) {
54 EXPECT_TRUE(sync_manager_->Alloc(&infos[ii])); 54 EXPECT_TRUE(sync_manager_->Alloc(&infos[ii]));
55 EXPECT_NE(0, infos[ii].shm_id); 55 EXPECT_NE(0, infos[ii].shm_id);
56 ASSERT_TRUE(infos[ii].sync != NULL); 56 ASSERT_TRUE(infos[ii].sync != NULL);
57 EXPECT_EQ(0u, infos[ii].sync->process_count); 57 EXPECT_EQ(0, infos[ii].sync->process_count);
58 EXPECT_EQ(0u, infos[ii].sync->result); 58 EXPECT_EQ(0u, infos[ii].sync->result);
59 } 59 }
60 60
61 for (size_t ii = 0; ii < arraysize(infos); ++ii) { 61 for (size_t ii = 0; ii < arraysize(infos); ++ii) {
62 sync_manager_->Free(infos[ii]); 62 sync_manager_->Free(infos[ii]);
63 } 63 }
64 } 64 }
65 65
66 TEST_F(QuerySyncManagerTest, DontFree) { 66 TEST_F(QuerySyncManagerTest, DontFree) {
67 QuerySyncManager::QueryInfo infos[4]; 67 QuerySyncManager::QueryInfo infos[4];
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 const int32 kToken = 46; 131 const int32 kToken = 46;
132 const uint32 kResult = 456; 132 const uint32 kResult = 456;
133 133
134 // Create a Query. 134 // Create a Query.
135 QueryTracker::Query* query = query_tracker_->CreateQuery( 135 QueryTracker::Query* query = query_tracker_->CreateQuery(
136 kId1, GL_ANY_SAMPLES_PASSED_EXT); 136 kId1, GL_ANY_SAMPLES_PASSED_EXT);
137 ASSERT_TRUE(query != NULL); 137 ASSERT_TRUE(query != NULL);
138 EXPECT_TRUE(query->NeverUsed()); 138 EXPECT_TRUE(query->NeverUsed());
139 EXPECT_FALSE(query->Pending()); 139 EXPECT_FALSE(query->Pending());
140 EXPECT_EQ(0, query->token()); 140 EXPECT_EQ(0, query->token());
141 EXPECT_EQ(0u, query->submit_count()); 141 EXPECT_EQ(0, query->submit_count());
142 142
143 // Check MarkAsActive. 143 // Check MarkAsActive.
144 query->MarkAsActive(); 144 query->MarkAsActive();
145 EXPECT_FALSE(query->NeverUsed()); 145 EXPECT_FALSE(query->NeverUsed());
146 EXPECT_FALSE(query->Pending()); 146 EXPECT_FALSE(query->Pending());
147 EXPECT_EQ(0, query->token()); 147 EXPECT_EQ(0, query->token());
148 EXPECT_EQ(1u, query->submit_count()); 148 EXPECT_EQ(1, query->submit_count());
149 149
150 // Check MarkAsPending. 150 // Check MarkAsPending.
151 query->MarkAsPending(kToken); 151 query->MarkAsPending(kToken);
152 EXPECT_FALSE(query->NeverUsed()); 152 EXPECT_FALSE(query->NeverUsed());
153 EXPECT_TRUE(query->Pending()); 153 EXPECT_TRUE(query->Pending());
154 EXPECT_EQ(kToken, query->token()); 154 EXPECT_EQ(kToken, query->token());
155 EXPECT_EQ(1u, query->submit_count()); 155 EXPECT_EQ(1, query->submit_count());
156 156
157 // Check CheckResultsAvailable. 157 // Check CheckResultsAvailable.
158 EXPECT_FALSE(query->CheckResultsAvailable(helper_.get())); 158 EXPECT_FALSE(query->CheckResultsAvailable(helper_.get()));
159 EXPECT_FALSE(query->NeverUsed()); 159 EXPECT_FALSE(query->NeverUsed());
160 EXPECT_TRUE(query->Pending()); 160 EXPECT_TRUE(query->Pending());
161 161
162 // Simulate GPU process marking it as available. 162 // Simulate GPU process marking it as available.
163 QuerySync* sync = GetSync(query); 163 QuerySync* sync = GetSync(query);
164 sync->process_count = query->submit_count(); 164 sync->process_count = query->submit_count();
165 sync->result = kResult; 165 sync->result = kResult;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 201
202 // Check FreeCompletedQueries. 202 // Check FreeCompletedQueries.
203 query_tracker_->FreeCompletedQueries(); 203 query_tracker_->FreeCompletedQueries();
204 EXPECT_EQ(0u, bucket->used_query_count); 204 EXPECT_EQ(0u, bucket->used_query_count);
205 } 205 }
206 206
207 } // namespace gles2 207 } // namespace gles2
208 } // namespace gpu 208 } // namespace gpu
209 209
210 210
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/query_tracker.cc ('k') | gpu/command_buffer/common/gles2_cmd_format.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698