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

Side by Side Diff: sandbox/mac/xpc_message_server_unittest.cc

Issue 1853713004: mac: Remove some 10.6-SDK-only sandbox code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "sandbox/mac/xpc_message_server.h" 5 #include "sandbox/mac/xpc_message_server.h"
6 6
7 #include <Block.h> 7 #include <Block.h>
8 #include <mach/mach.h> 8 #include <mach/mach.h>
9 #include <servers/bootstrap.h> 9 #include <servers/bootstrap.h>
10 #include <stdint.h> 10 #include <stdint.h>
11 11
12 #include "base/command_line.h" 12 #include "base/command_line.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/mac/mac_util.h" 14 #include "base/mac/mac_util.h"
15 #include "base/mac/scoped_mach_port.h" 15 #include "base/mac/scoped_mach_port.h"
16 #include "base/process/kill.h" 16 #include "base/process/kill.h"
17 #include "base/test/multiprocess_test.h" 17 #include "base/test/multiprocess_test.h"
18 #include "sandbox/mac/xpc.h" 18 #include "sandbox/mac/xpc.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 #include "testing/multiprocess_func_list.h" 20 #include "testing/multiprocess_func_list.h"
21 21
22 namespace sandbox { 22 namespace sandbox {
23 23
24 class XPCMessageServerTest : public testing::Test { 24 class XPCMessageServerTest : public testing::Test {
25 public: 25 public:
26 void SetUp() override { 26 void SetUp() override {
27 if (!RunXPCTest()) 27 if (!RunXPCTest())
28 return; 28 return;
29 ASSERT_TRUE(InitializeXPC());
30 } 29 }
31 30
32 bool RunXPCTest() { 31 bool RunXPCTest() {
33 return base::mac::IsOSMountainLionOrLater(); 32 return base::mac::IsOSMountainLionOrLater();
34 } 33 }
35 }; 34 };
36 35
37 // A MessageDemuxer that manages a test server and executes a block for every 36 // A MessageDemuxer that manages a test server and executes a block for every
38 // message. 37 // message.
39 class BlockDemuxer : public MessageDemuxer { 38 class BlockDemuxer : public MessageDemuxer {
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 int exit_code = -1; 172 int exit_code = -1;
174 ASSERT_TRUE(child.WaitForExit(&exit_code)); 173 ASSERT_TRUE(child.WaitForExit(&exit_code));
175 EXPECT_EQ(0, exit_code); 174 EXPECT_EQ(0, exit_code);
176 175
177 EXPECT_EQ(child.Pid(), sender_pid); 176 EXPECT_EQ(child.Pid(), sender_pid);
178 EXPECT_EQ(child.Pid(), child_pid); 177 EXPECT_EQ(child.Pid(), child_pid);
179 EXPECT_EQ(sender_pid, child_pid); 178 EXPECT_EQ(sender_pid, child_pid);
180 } 179 }
181 180
182 MULTIPROCESS_TEST_MAIN(GetSenderPID) { 181 MULTIPROCESS_TEST_MAIN(GetSenderPID) {
183 CHECK(sandbox::InitializeXPC());
184
185 mach_port_t port = MACH_PORT_NULL; 182 mach_port_t port = MACH_PORT_NULL;
186 CHECK_EQ(KERN_SUCCESS, bootstrap_look_up(bootstrap_port, kGetSenderPID, 183 CHECK_EQ(KERN_SUCCESS, bootstrap_look_up(bootstrap_port, kGetSenderPID,
187 &port)); 184 &port));
188 base::mac::ScopedMachSendRight scoped_port(port); 185 base::mac::ScopedMachSendRight scoped_port(port);
189 186
190 xpc_pipe_t pipe = xpc_pipe_create_from_port(port, 0); 187 xpc_pipe_t pipe = xpc_pipe_create_from_port(port, 0);
191 188
192 xpc_object_t message = xpc_dictionary_create(NULL, NULL, 0); 189 xpc_object_t message = xpc_dictionary_create(NULL, NULL, 0);
193 xpc_dictionary_set_int64(message, "child_pid", getpid()); 190 xpc_dictionary_set_int64(message, "child_pid", getpid());
194 CHECK_EQ(0, xpc_pipe_simpleroutine(pipe, message)); 191 CHECK_EQ(0, xpc_pipe_simpleroutine(pipe, message));
(...skipping 28 matching lines...) Expand all
223 ASSERT_EQ(0, xpc_pipe_routine(first.pipe(), request, &reply)); 220 ASSERT_EQ(0, xpc_pipe_routine(first.pipe(), request, &reply));
224 221
225 EXPECT_EQ(1, xpc_dictionary_get_int64(reply, "seen_by_first")); 222 EXPECT_EQ(1, xpc_dictionary_get_int64(reply, "seen_by_first"));
226 EXPECT_EQ(2, xpc_dictionary_get_int64(reply, "seen_by_second")); 223 EXPECT_EQ(2, xpc_dictionary_get_int64(reply, "seen_by_second"));
227 224
228 xpc_release(request); 225 xpc_release(request);
229 xpc_release(reply); 226 xpc_release(reply);
230 } 227 }
231 228
232 } // namespace sandbox 229 } // namespace sandbox
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698