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

Side by Side Diff: util/mach/exception_ports_test.cc

Issue 649713002: Use the correct null constants for Mach threads, tasks, and hosts (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 6 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
« no previous file with comments | « util/mach/exception_ports.cc ('k') | util/test/mac/mach_multiprocess.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 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 explicit Child(TestExceptionPorts* test_exception_ports) 205 explicit Child(TestExceptionPorts* test_exception_ports)
206 : test_exception_ports_(test_exception_ports), 206 : test_exception_ports_(test_exception_ports),
207 thread_(), 207 thread_(),
208 init_semaphore_(0), 208 init_semaphore_(0),
209 crash_semaphore_(0) {} 209 crash_semaphore_(0) {}
210 210
211 ~Child() {} 211 ~Child() {}
212 212
213 void Run() { 213 void Run() {
214 ExceptionPorts self_task_ports(ExceptionPorts::kTargetTypeTask, 214 ExceptionPorts self_task_ports(ExceptionPorts::kTargetTypeTask,
215 MACH_PORT_NULL); 215 TASK_NULL);
216 ExceptionPorts self_thread_ports(ExceptionPorts::kTargetTypeThread, 216 ExceptionPorts self_thread_ports(ExceptionPorts::kTargetTypeThread,
217 MACH_PORT_NULL); 217 THREAD_NULL);
218 218
219 mach_port_t remote_port = test_exception_ports_->RemotePort(); 219 mach_port_t remote_port = test_exception_ports_->RemotePort();
220 220
221 // Set the task’s and this thread’s exception ports, if appropriate. 221 // Set the task’s and this thread’s exception ports, if appropriate.
222 if (test_exception_ports_->set_type() == kSetInProcess) { 222 if (test_exception_ports_->set_type() == kSetInProcess) {
223 ASSERT_TRUE(self_task_ports.SetExceptionPort( 223 ASSERT_TRUE(self_task_ports.SetExceptionPort(
224 EXC_MASK_CRASH, remote_port, EXCEPTION_DEFAULT, THREAD_STATE_NONE)); 224 EXC_MASK_CRASH, remote_port, EXCEPTION_DEFAULT, THREAD_STATE_NONE));
225 225
226 if (test_exception_ports_->set_on() == kSetOnTaskAndThreads) { 226 if (test_exception_ports_->set_on() == kSetOnTaskAndThreads) {
227 ASSERT_TRUE(self_thread_ports.SetExceptionPort(EXC_MASK_CRASH, 227 ASSERT_TRUE(self_thread_ports.SetExceptionPort(EXC_MASK_CRASH,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 private: 278 private:
279 // Calls ThreadMain(). 279 // Calls ThreadMain().
280 static void* ThreadMainThunk(void* argument) { 280 static void* ThreadMainThunk(void* argument) {
281 Child* self = reinterpret_cast<Child*>(argument); 281 Child* self = reinterpret_cast<Child*>(argument);
282 return self->ThreadMain(); 282 return self->ThreadMain();
283 } 283 }
284 284
285 // Runs the “other” thread. 285 // Runs the “other” thread.
286 void* ThreadMain() { 286 void* ThreadMain() {
287 ExceptionPorts self_thread_ports(ExceptionPorts::kTargetTypeThread, 287 ExceptionPorts self_thread_ports(ExceptionPorts::kTargetTypeThread,
288 MACH_PORT_NULL); 288 THREAD_NULL);
289 mach_port_t remote_port = test_exception_ports_->RemotePort(); 289 mach_port_t remote_port = test_exception_ports_->RemotePort();
290 290
291 // Set this thread’s exception handler, if appropriate. 291 // Set this thread’s exception handler, if appropriate.
292 if (test_exception_ports_->set_type() == kSetInProcess && 292 if (test_exception_ports_->set_type() == kSetInProcess &&
293 test_exception_ports_->set_on() == kSetOnTaskAndThreads) { 293 test_exception_ports_->set_on() == kSetOnTaskAndThreads) {
294 CHECK(self_thread_ports.SetExceptionPort(EXC_MASK_CRASH, 294 CHECK(self_thread_ports.SetExceptionPort(EXC_MASK_CRASH,
295 remote_port, 295 remote_port,
296 EXCEPTION_STATE_IDENTITY, 296 EXCEPTION_STATE_IDENTITY,
297 MACHINE_THREAD_STATE)); 297 MACHINE_THREAD_STATE));
298 } 298 }
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 std::vector<ExceptionPorts::ExceptionHandler> handlers; 553 std::vector<ExceptionPorts::ExceptionHandler> handlers;
554 bool rv = explicit_host_ports.GetExceptionPorts( 554 bool rv = explicit_host_ports.GetExceptionPorts(
555 ExcMaskAll() | EXC_MASK_CRASH, &handlers); 555 ExcMaskAll() | EXC_MASK_CRASH, &handlers);
556 if (geteuid() == 0) { 556 if (geteuid() == 0) {
557 EXPECT_TRUE(rv); 557 EXPECT_TRUE(rv);
558 } else { 558 } else {
559 EXPECT_FALSE(rv); 559 EXPECT_FALSE(rv);
560 } 560 }
561 561
562 ExceptionPorts implicit_host_ports(ExceptionPorts::kTargetTypeHost, 562 ExceptionPorts implicit_host_ports(ExceptionPorts::kTargetTypeHost,
563 MACH_PORT_NULL); 563 HOST_NULL);
564 EXPECT_EQ("host", implicit_host_ports.TargetTypeName()); 564 EXPECT_EQ("host", implicit_host_ports.TargetTypeName());
565 565
566 rv = implicit_host_ports.GetExceptionPorts( 566 rv = implicit_host_ports.GetExceptionPorts(
567 ExcMaskAll() | EXC_MASK_CRASH, &handlers); 567 ExcMaskAll() | EXC_MASK_CRASH, &handlers);
568 if (geteuid() == 0) { 568 if (geteuid() == 0) {
569 EXPECT_TRUE(rv); 569 EXPECT_TRUE(rv);
570 } else { 570 } else {
571 EXPECT_FALSE(rv); 571 EXPECT_FALSE(rv);
572 } 572 }
573 } 573 }
574 574
575 } // namespace 575 } // namespace
576 } // namespace test 576 } // namespace test
577 } // namespace crashpad 577 } // namespace crashpad
OLDNEW
« no previous file with comments | « util/mach/exception_ports.cc ('k') | util/test/mac/mach_multiprocess.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698