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

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

Issue 1554443003: Stop linking in the old Mojo EDK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge and fix new flaky test Created 4 years, 11 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 | « mojo/edk/system/core_test_base.cc ('k') | mojo/edk/test/BUILD.gn » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 17 matching lines...) Expand all
28 28
29 const uint32_t kSizeOfOptions = 29 const uint32_t kSizeOfOptions =
30 static_cast<uint32_t>(sizeof(MojoCreateDataPipeOptions)); 30 static_cast<uint32_t>(sizeof(MojoCreateDataPipeOptions));
31 31
32 // In various places, we have to poll (since, e.g., we can't yet wait for a 32 // In various places, we have to poll (since, e.g., we can't yet wait for a
33 // certain amount of data to be available). This is the maximum number of 33 // certain amount of data to be available). This is the maximum number of
34 // iterations (separated by a short sleep). 34 // iterations (separated by a short sleep).
35 // TODO(vtl): Get rid of this. 35 // TODO(vtl): Get rid of this.
36 const size_t kMaxPoll = 100; 36 const size_t kMaxPoll = 100;
37 37
38 #if !defined(OS_IOS)
38 // Used in Multiprocess test. 39 // Used in Multiprocess test.
39 const size_t kMultiprocessCapacity = 37; 40 const size_t kMultiprocessCapacity = 37;
40 const char kMultiprocessTestData[] = "hello i'm a string that is 36 bytes"; 41 const char kMultiprocessTestData[] = "hello i'm a string that is 36 bytes";
41 const int kMultiprocessMaxIter = 513; 42 const int kMultiprocessMaxIter = 513;
43 #endif
42 44
43 class DataPipeTest : public testing::Test { 45 class DataPipeTest : public testing::Test {
44 public: 46 public:
45 DataPipeTest() : producer_(MOJO_HANDLE_INVALID), 47 DataPipeTest() : producer_(MOJO_HANDLE_INVALID),
46 consumer_(MOJO_HANDLE_INVALID) {} 48 consumer_(MOJO_HANDLE_INVALID) {}
47 49
48 ~DataPipeTest() override { 50 ~DataPipeTest() override {
49 if (producer_ != MOJO_HANDLE_INVALID) 51 if (producer_ != MOJO_HANDLE_INVALID)
50 CHECK_EQ(MOJO_RESULT_OK, MojoClose(producer_)); 52 CHECK_EQ(MOJO_RESULT_OK, MojoClose(producer_));
51 if (consumer_ != MOJO_HANDLE_INVALID) 53 if (consumer_ != MOJO_HANDLE_INVALID)
(...skipping 1574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1626 1628
1627 int32_t read_data; 1629 int32_t read_data;
1628 ASSERT_EQ(MOJO_RESULT_OK, ReadData(&read_data, &num_bytes)); 1630 ASSERT_EQ(MOJO_RESULT_OK, ReadData(&read_data, &num_bytes));
1629 ASSERT_EQ(sizeof(read_data), num_bytes); 1631 ASSERT_EQ(sizeof(read_data), num_bytes);
1630 ASSERT_EQ(data, read_data); 1632 ASSERT_EQ(data, read_data);
1631 1633
1632 ASSERT_EQ(MOJO_RESULT_OK, MojoClose(pipe0)); 1634 ASSERT_EQ(MOJO_RESULT_OK, MojoClose(pipe0));
1633 ASSERT_EQ(MOJO_RESULT_OK, MojoClose(pipe1)); 1635 ASSERT_EQ(MOJO_RESULT_OK, MojoClose(pipe1));
1634 } 1636 }
1635 1637
1638 #if !defined(OS_IOS)
1639
1636 bool WriteAllData(MojoHandle producer, 1640 bool WriteAllData(MojoHandle producer,
1637 const void* elements, 1641 const void* elements,
1638 uint32_t num_bytes) { 1642 uint32_t num_bytes) {
1639 for (size_t i = 0; i < kMaxPoll; i++) { 1643 for (size_t i = 0; i < kMaxPoll; i++) {
1640 // Write as much data as we can. 1644 // Write as much data as we can.
1641 uint32_t write_bytes = num_bytes; 1645 uint32_t write_bytes = num_bytes;
1642 MojoResult result = MojoWriteData(producer, elements, &write_bytes, 1646 MojoResult result = MojoWriteData(producer, elements, &write_bytes,
1643 MOJO_WRITE_DATA_FLAG_NONE); 1647 MOJO_WRITE_DATA_FLAG_NONE);
1644 if (result == MOJO_RESULT_OK) { 1648 if (result == MOJO_RESULT_OK) {
1645 num_bytes -= write_bytes; 1649 num_bytes -= write_bytes;
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1770 consumer_ = handles[0]; 1774 consumer_ = handles[0];
1771 1775
1772 // Read the test string twice. Once for when we sent it, and once for the 1776 // Read the test string twice. Once for when we sent it, and once for the
1773 // other end sending it. 1777 // other end sending it.
1774 for (int i = 0; i < 2; ++i) { 1778 for (int i = 0; i < 2; ++i) {
1775 EXPECT_TRUE(ReadAllData(consumer_, buffer, kTestDataSize, i == 1)); 1779 EXPECT_TRUE(ReadAllData(consumer_, buffer, kTestDataSize, i == 1));
1776 EXPECT_EQ(0, memcmp(buffer, kMultiprocessTestData, kTestDataSize)); 1780 EXPECT_EQ(0, memcmp(buffer, kMultiprocessTestData, kTestDataSize));
1777 } 1781 }
1778 1782
1779 // Don't have to close the consumer here because it will be done for us. 1783 // Don't have to close the consumer here because it will be done for us.
1784 std::string quitquitquit("quitquitquit");
1785 ASSERT_EQ(MOJO_RESULT_OK,
1786 MojoWriteMessage(server_mp, quitquitquit.data(),
1787 static_cast<uint32_t>(quitquitquit.size()),
1788 nullptr, 0u, MOJO_WRITE_MESSAGE_FLAG_NONE));
1780 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(server_mp)); 1789 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(server_mp));
1781 EXPECT_TRUE(multiprocess_test_helper.WaitForChildTestShutdown()); 1790 EXPECT_TRUE(multiprocess_test_helper.WaitForChildTestShutdown());
1782 } 1791 }
1783 1792
1784 MOJO_MULTIPROCESS_TEST_CHILD_TEST(MultiprocessClient) { 1793 MOJO_MULTIPROCESS_TEST_CHILD_TEST(MultiprocessClient) {
1785 ScopedPlatformHandle client_platform_handle = 1794 ScopedPlatformHandle client_platform_handle =
1786 std::move(test::MultiprocessTestHelper::client_platform_handle); 1795 std::move(test::MultiprocessTestHelper::client_platform_handle);
1787 const uint32_t kTestDataSize = 1796 const uint32_t kTestDataSize =
1788 static_cast<uint32_t>(sizeof(kMultiprocessTestData)); 1797 static_cast<uint32_t>(sizeof(kMultiprocessTestData));
1789 EXPECT_TRUE(client_platform_handle.is_valid()); 1798 EXPECT_TRUE(client_platform_handle.is_valid());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1835 num_handles = MOJO_ARRAYSIZE(handles); 1844 num_handles = MOJO_ARRAYSIZE(handles);
1836 ASSERT_EQ(MOJO_RESULT_OK, 1845 ASSERT_EQ(MOJO_RESULT_OK,
1837 MojoReadMessage(client_mp, nullptr, 0, handles, &num_handles, 1846 MojoReadMessage(client_mp, nullptr, 0, handles, &num_handles,
1838 MOJO_READ_MESSAGE_FLAG_NONE)); 1847 MOJO_READ_MESSAGE_FLAG_NONE));
1839 ASSERT_EQ(1u, num_handles); 1848 ASSERT_EQ(1u, num_handles);
1840 producer = handles[0]; 1849 producer = handles[0];
1841 1850
1842 // Write the test string one more time. 1851 // Write the test string one more time.
1843 EXPECT_TRUE(WriteAllData(producer, kMultiprocessTestData, kTestDataSize)); 1852 EXPECT_TRUE(WriteAllData(producer, kMultiprocessTestData, kTestDataSize));
1844 1853
1854 std::string quitquitquit("quitquitquit");
1855 ASSERT_EQ(MOJO_RESULT_OK, MojoWait(client_mp, MOJO_HANDLE_SIGNAL_READABLE,
1856 MOJO_DEADLINE_INDEFINITE, &hss));
1857 std::string read_buffer(1000, '\0');
1858 uint32_t read_buffer_size = static_cast<uint32_t>(read_buffer.size());
1859 ASSERT_EQ(MOJO_RESULT_OK,
1860 MojoReadMessage(client_mp, &read_buffer[0], &read_buffer_size,
1861 nullptr, 0, MOJO_READ_MESSAGE_FLAG_NONE));
1862 read_buffer.resize(read_buffer_size);
1863 ASSERT_EQ(quitquitquit, read_buffer);
1864
1845 // We swapped ends, so close the producer. 1865 // We swapped ends, so close the producer.
1846 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(producer)); 1866 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(producer));
1847 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(client_mp)); 1867 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(client_mp));
1848 } 1868 }
1849 1869
1870 #endif // !defined(OS_IOS)
1871
1850 } // namespace 1872 } // namespace
1851 } // namespace edk 1873 } // namespace edk
1852 } // namespace mojo 1874 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/core_test_base.cc ('k') | mojo/edk/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698