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

Side by Side Diff: base/stats_table_unittest.cc

Issue 678001: base: string_util.h -> utf_string_conversions.h fix. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 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
« no previous file with comments | « base/json/string_escape_unittest.cc ('k') | base/string_util_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #if defined(OS_WIN)
6 #include <process.h>
7 #include <windows.h>
8 #endif
9
5 #include "base/multiprocess_test.h" 10 #include "base/multiprocess_test.h"
6 #include "base/platform_thread.h" 11 #include "base/platform_thread.h"
7 #include "base/simple_thread.h" 12 #include "base/simple_thread.h"
8 #include "base/shared_memory.h" 13 #include "base/shared_memory.h"
9 #include "base/stats_table.h" 14 #include "base/stats_table.h"
10 #include "base/stats_counters.h" 15 #include "base/stats_counters.h"
11 #include "base/string_util.h" 16 #include "base/utf_string_conversions.h"
12 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
13 #include "testing/multiprocess_func_list.h" 18 #include "testing/multiprocess_func_list.h"
14 19
15 #if defined(OS_WIN)
16 #include <process.h>
17 #include <windows.h>
18 #endif
19
20 namespace base { 20 namespace base {
21 21
22 class StatsTableTest : public MultiProcessTest { 22 class StatsTableTest : public MultiProcessTest {
23 public: 23 public:
24 void DeleteShmem(std::string name) { 24 void DeleteShmem(std::string name) {
25 base::SharedMemory mem; 25 base::SharedMemory mem;
26 mem.Delete(UTF8ToWide(name)); 26 mem.Delete(UTF8ToWide(name));
27 } 27 }
28 }; 28 };
29 29
30 // Open a StatsTable and verify that we can write to each of the 30 // Open a StatsTable and verify that we can write to each of the
31 // locations in the table. 31 // locations in the table.
32 TEST_F(StatsTableTest, VerifySlots) { 32 TEST_F(StatsTableTest, VerifySlots) {
33 const std::string kTableName = "VerifySlotsStatTable"; 33 const std::string kTableName = "VerifySlotsStatTable";
34 const int kMaxThreads = 1; 34 const int kMaxThreads = 1;
35 const int kMaxCounter = 5; 35 const int kMaxCounter = 5;
36 DeleteShmem(kTableName); 36 DeleteShmem(kTableName);
37 StatsTable table(kTableName, kMaxThreads, kMaxCounter); 37 StatsTable table(kTableName, kMaxThreads, kMaxCounter);
38 38
39 // Register a single thread. 39 // Register a single thread.
40 std::string thread_name = "mainThread"; 40 std::string thread_name = "mainThread";
41 int slot_id = table.RegisterThread(thread_name); 41 int slot_id = table.RegisterThread(thread_name);
42 EXPECT_NE(slot_id, 0); 42 EXPECT_NE(slot_id, 0);
43 43
44 // Fill up the table with counters. 44 // Fill up the table with counters.
45 std::string counter_base_name = "counter"; 45 std::string counter_base_name = "counter";
46 for (int index=0; index < kMaxCounter; index++) { 46 for (int index = 0; index < kMaxCounter; index++) {
47 std::string counter_name = counter_base_name; 47 std::string counter_name = counter_base_name;
48 StringAppendF(&counter_name, "counter.ctr%d", index); 48 StringAppendF(&counter_name, "counter.ctr%d", index);
49 int counter_id = table.FindCounter(counter_name); 49 int counter_id = table.FindCounter(counter_name);
50 EXPECT_GT(counter_id, 0); 50 EXPECT_GT(counter_id, 0);
51 } 51 }
52 52
53 // Try to allocate an additional thread. Verify it fails. 53 // Try to allocate an additional thread. Verify it fails.
54 slot_id = table.RegisterThread("too many threads"); 54 slot_id = table.RegisterThread("too many threads");
55 EXPECT_EQ(slot_id, 0); 55 EXPECT_EQ(slot_id, 0);
56 56
(...skipping 12 matching lines...) Expand all
69 const std::string kCounterIncrement = "CounterIncrement"; 69 const std::string kCounterIncrement = "CounterIncrement";
70 // CounterDecrement will be decremented each time. 70 // CounterDecrement will be decremented each time.
71 const std::string kCounterDecrement = "CounterDecrement"; 71 const std::string kCounterDecrement = "CounterDecrement";
72 // CounterMixed will be incremented by odd numbered threads and 72 // CounterMixed will be incremented by odd numbered threads and
73 // decremented by even threads. 73 // decremented by even threads.
74 const std::string kCounterMixed = "CounterMixed"; 74 const std::string kCounterMixed = "CounterMixed";
75 // The number of thread loops that we will do. 75 // The number of thread loops that we will do.
76 const int kThreadLoops = 1000; 76 const int kThreadLoops = 1000;
77 77
78 class StatsTableThread : public base::SimpleThread { 78 class StatsTableThread : public base::SimpleThread {
79 public: 79 public:
80 StatsTableThread(std::string name, int id) 80 StatsTableThread(std::string name, int id)
81 : base::SimpleThread(name), id_(id) { } 81 : base::SimpleThread(name), id_(id) { }
82 virtual void Run(); 82 virtual void Run();
83 private: 83 private:
84 int id_; 84 int id_;
85 }; 85 };
86 86
87 void StatsTableThread::Run() { 87 void StatsTableThread::Run() {
88 // Each thread will open the shared memory and set counters 88 // Each thread will open the shared memory and set counters
89 // concurrently in a loop. We'll use some pauses to 89 // concurrently in a loop. We'll use some pauses to
90 // mixup the thread scheduling. 90 // mixup the thread scheduling.
91 91
92 StatsCounter zero_counter(kCounterZero); 92 StatsCounter zero_counter(kCounterZero);
93 StatsCounter lucky13_counter(kCounter1313); 93 StatsCounter lucky13_counter(kCounter1313);
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 PlatformThread::Sleep(500); 398 PlatformThread::Sleep(500);
399 } 399 }
400 EXPECT_LE(1000, table.GetCounterValue("t:foo")); 400 EXPECT_LE(1000, table.GetCounterValue("t:foo"));
401 EXPECT_LE(1000, table.GetCounterValue("t:bar")); 401 EXPECT_LE(1000, table.GetCounterValue("t:bar"));
402 EXPECT_EQ(2, table.GetCounterValue("c:bar")); 402 EXPECT_EQ(2, table.GetCounterValue("c:bar"));
403 403
404 DeleteShmem(kTableName); 404 DeleteShmem(kTableName);
405 } 405 }
406 406
407 } // namespace base 407 } // namespace base
OLDNEW
« no previous file with comments | « base/json/string_escape_unittest.cc ('k') | base/string_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698