Chromium Code Reviews

Side by Side Diff: chrome/common/multi_process_lock_unittest.cc

Issue 4721001: Add multi_process_lock to chrome/common (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed long name test as it tripped a NOTREACHED call. Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/basictypes.h"
6 #include "base/scoped_ptr.h"
7 #include "base/test/multiprocess_test.h"
8 #include "chrome/common/multi_process_lock.h"
9 #include "testing/multiprocess_func_list.h"
10
11 static const char kMutexName[] = "shared_mutex_unittest";
12
13 class MultiProcessLockTest : public base::MultiProcessTest {
14 };
15
16 TEST_F(MultiProcessLockTest, BasicCreationTest) {
17 // Test basic creation/destruction with no lock taken
18 scoped_ptr<MultiProcessLock> scoped(MultiProcessLock::Create(kMutexName));
19 scoped.reset(NULL);
20 }
21
22 TEST_F(MultiProcessLockTest, SimpleLock) {
23 scoped_ptr<MultiProcessLock> test_lock(MultiProcessLock::Create(kMutexName));
24 EXPECT_TRUE(test_lock->TryLock());
25 base::ProcessHandle handle = SpawnChild("MultiProcessLockTryFailMain", false);
26 ASSERT_TRUE(handle);
27 int exit_code = 0;
28 EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code));
29 EXPECT_EQ(exit_code, 0);
30 test_lock->Unlock();
31 handle = SpawnChild("MultiProcessLockTrySucceedMain", false);
32 ASSERT_TRUE(handle);
33 EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code));
34 EXPECT_EQ(exit_code, 0);
35 }
36
37 MULTIPROCESS_TEST_MAIN(MultiProcessLockTryFailMain) {
38 scoped_ptr<MultiProcessLock> test_lock(MultiProcessLock::Create(kMutexName));
39 EXPECT_FALSE(test_lock->TryLock());
40 return 0;
41 }
42
43
44 MULTIPROCESS_TEST_MAIN(MultiProcessLockTrySucceedMain) {
45 scoped_ptr<MultiProcessLock> test_lock(MultiProcessLock::Create(kMutexName));
46 EXPECT_TRUE(test_lock->TryLock());
47 return 0;
48 }
OLDNEW

Powered by Google App Engine