Commit 9fb48c09 authored by rsesek's avatar rsesek Committed by Commit bot

Fix Valgrind issues in dispatch_source_mach_unittest.cc.

BUG=487674
R=thakis@chromium.org

Review URL: https://codereview.chromium.org/1132783005

Cr-Commit-Position: refs/heads/master@{#329790}
parent fa6a64ed
...@@ -27,7 +27,7 @@ class DispatchSourceMachTest : public testing::Test { ...@@ -27,7 +27,7 @@ class DispatchSourceMachTest : public testing::Test {
send_right_.reset(port); send_right_.reset(port);
} }
mach_port_t port() { return receive_right_.get(); } mach_port_t GetPort() { return receive_right_.get(); }
void WaitForSemaphore(dispatch_semaphore_t semaphore) { void WaitForSemaphore(dispatch_semaphore_t semaphore) {
dispatch_semaphore_wait(semaphore, dispatch_time( dispatch_semaphore_wait(semaphore, dispatch_time(
...@@ -42,13 +42,14 @@ class DispatchSourceMachTest : public testing::Test { ...@@ -42,13 +42,14 @@ class DispatchSourceMachTest : public testing::Test {
TEST_F(DispatchSourceMachTest, ReceiveAfterResume) { TEST_F(DispatchSourceMachTest, ReceiveAfterResume) {
dispatch_semaphore_t signal = dispatch_semaphore_create(0); dispatch_semaphore_t signal = dispatch_semaphore_create(0);
mach_port_t port = GetPort();
bool __block did_receive = false; bool __block did_receive = false;
DispatchSourceMach source("org.chromium.base.test.ReceiveAfterResume", DispatchSourceMach source("org.chromium.base.test.ReceiveAfterResume",
port(), ^{ port, ^{
mach_msg_empty_rcv_t msg = {{0}}; mach_msg_empty_rcv_t msg = {{0}};
msg.header.msgh_size = sizeof(msg); msg.header.msgh_size = sizeof(msg);
msg.header.msgh_local_port = port(); msg.header.msgh_local_port = port;
mach_msg_receive(&msg.header); mach_msg_receive(&msg.header);
did_receive = true; did_receive = true;
...@@ -57,7 +58,7 @@ TEST_F(DispatchSourceMachTest, ReceiveAfterResume) { ...@@ -57,7 +58,7 @@ TEST_F(DispatchSourceMachTest, ReceiveAfterResume) {
mach_msg_empty_send_t msg = {{0}}; mach_msg_empty_send_t msg = {{0}};
msg.header.msgh_size = sizeof(msg); msg.header.msgh_size = sizeof(msg);
msg.header.msgh_remote_port = port(); msg.header.msgh_remote_port = port;
msg.header.msgh_bits = MACH_MSGH_BITS_REMOTE(MACH_MSG_TYPE_COPY_SEND); msg.header.msgh_bits = MACH_MSGH_BITS_REMOTE(MACH_MSG_TYPE_COPY_SEND);
ASSERT_EQ(KERN_SUCCESS, mach_msg_send(&msg.header)); ASSERT_EQ(KERN_SUCCESS, mach_msg_send(&msg.header));
...@@ -66,20 +67,23 @@ TEST_F(DispatchSourceMachTest, ReceiveAfterResume) { ...@@ -66,20 +67,23 @@ TEST_F(DispatchSourceMachTest, ReceiveAfterResume) {
source.Resume(); source.Resume();
WaitForSemaphore(signal); WaitForSemaphore(signal);
dispatch_release(signal);
EXPECT_TRUE(did_receive); EXPECT_TRUE(did_receive);
} }
TEST_F(DispatchSourceMachTest, NoMessagesAfterDestruction) { TEST_F(DispatchSourceMachTest, NoMessagesAfterDestruction) {
mach_port_t port = GetPort();
scoped_ptr<int> count(new int(0)); scoped_ptr<int> count(new int(0));
int* __block count_ptr = count.get(); int* __block count_ptr = count.get();
scoped_ptr<DispatchSourceMach> source(new DispatchSourceMach( scoped_ptr<DispatchSourceMach> source(new DispatchSourceMach(
"org.chromium.base.test.NoMessagesAfterDestruction", "org.chromium.base.test.NoMessagesAfterDestruction",
port(), ^{ port, ^{
mach_msg_empty_rcv_t msg = {{0}}; mach_msg_empty_rcv_t msg = {{0}};
msg.header.msgh_size = sizeof(msg); msg.header.msgh_size = sizeof(msg);
msg.header.msgh_local_port = port(); msg.header.msgh_local_port = port;
mach_msg_receive(&msg.header); mach_msg_receive(&msg.header);
LOG(INFO) << "Receieve " << *count_ptr; LOG(INFO) << "Receieve " << *count_ptr;
++(*count_ptr); ++(*count_ptr);
...@@ -93,7 +97,7 @@ TEST_F(DispatchSourceMachTest, NoMessagesAfterDestruction) { ...@@ -93,7 +97,7 @@ TEST_F(DispatchSourceMachTest, NoMessagesAfterDestruction) {
dispatch_async(queue, ^{ dispatch_async(queue, ^{
mach_msg_empty_send_t msg = {{0}}; mach_msg_empty_send_t msg = {{0}};
msg.header.msgh_size = sizeof(msg); msg.header.msgh_size = sizeof(msg);
msg.header.msgh_remote_port = port(); msg.header.msgh_remote_port = port;
msg.header.msgh_bits = msg.header.msgh_bits =
MACH_MSGH_BITS_REMOTE(MACH_MSG_TYPE_COPY_SEND); MACH_MSGH_BITS_REMOTE(MACH_MSG_TYPE_COPY_SEND);
mach_msg_send(&msg.header); mach_msg_send(&msg.header);
...@@ -113,6 +117,8 @@ TEST_F(DispatchSourceMachTest, NoMessagesAfterDestruction) { ...@@ -113,6 +117,8 @@ TEST_F(DispatchSourceMachTest, NoMessagesAfterDestruction) {
} }
WaitForSemaphore(signal); WaitForSemaphore(signal);
dispatch_release(signal);
dispatch_release(queue); dispatch_release(queue);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment