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

Side by Side Diff: mojo/edk/system/waiter_unittest.cc

Issue 1361143004: EDK: Add a mojo::test::SimpleTestThread (and use it). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 2 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 // NOTE(vtl): Some of these tests are inherently flaky (e.g., if run on a 5 // NOTE(vtl): Some of these tests are inherently flaky (e.g., if run on a
6 // heavily-loaded system). Sorry. |test::EpsilonDeadline()| may be increased to 6 // heavily-loaded system). Sorry. |test::EpsilonDeadline()| may be increased to
7 // increase tolerance and reduce observed flakiness (though doing so reduces the 7 // increase tolerance and reduce observed flakiness (though doing so reduces the
8 // meaningfulness of the test). 8 // meaningfulness of the test).
9 9
10 #include "mojo/edk/system/waiter.h" 10 #include "mojo/edk/system/waiter.h"
11 11
12 #include <stdint.h> 12 #include <stdint.h>
13 13
14 #include "base/threading/simple_thread.h"
15 #include "mojo/edk/system/mutex.h" 14 #include "mojo/edk/system/mutex.h"
16 #include "mojo/edk/system/test_utils.h" 15 #include "mojo/edk/system/test_utils.h"
16 #include "mojo/edk/test/simple_test_thread.h"
17 #include "mojo/public/cpp/system/macros.h" 17 #include "mojo/public/cpp/system/macros.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 namespace mojo { 20 namespace mojo {
21 namespace system { 21 namespace system {
22 namespace { 22 namespace {
23 23
24 const unsigned kPollTimeMs = 10; 24 const unsigned kPollTimeMs = 10;
25 25
26 class WaitingThread : public base::SimpleThread { 26 class WaitingThread : public mojo::test::SimpleTestThread {
27 public: 27 public:
28 explicit WaitingThread(MojoDeadline deadline) 28 explicit WaitingThread(MojoDeadline deadline)
29 : base::SimpleThread("waiting_thread"), 29 : deadline_(deadline),
30 deadline_(deadline),
31 done_(false), 30 done_(false),
32 result_(MOJO_RESULT_UNKNOWN), 31 result_(MOJO_RESULT_UNKNOWN),
33 context_(static_cast<uint32_t>(-1)) { 32 context_(static_cast<uint32_t>(-1)) {
34 waiter_.Init(); 33 waiter_.Init();
35 } 34 }
36 35
37 ~WaitingThread() override { Join(); } 36 ~WaitingThread() override { Join(); }
38 37
39 void WaitUntilDone(MojoResult* result, 38 void WaitUntilDone(MojoResult* result,
40 uint32_t* context, 39 uint32_t* context,
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); 288 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result);
290 EXPECT_EQ(7u, context); 289 EXPECT_EQ(7u, context);
291 EXPECT_GT(elapsed, (1 - 1) * test::EpsilonDeadline()); 290 EXPECT_GT(elapsed, (1 - 1) * test::EpsilonDeadline());
292 EXPECT_LT(elapsed, (1 + 1) * test::EpsilonDeadline()); 291 EXPECT_LT(elapsed, (1 + 1) * test::EpsilonDeadline());
293 } 292 }
294 } 293 }
295 294
296 } // namespace 295 } // namespace
297 } // namespace system 296 } // namespace system
298 } // namespace mojo 297 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698