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

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

Issue 1910233003: Implement a new child test helper for Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 7 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/embedder/embedder_unittest.cc ('k') | mojo/edk/system/message_pipe_unittest.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 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 <memory> 8 #include <memory>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 1640 matching lines...) Expand 10 before | Expand all | Expand 10 after
1651 EXPECT_TRUE(MOJO_HANDLE_SIGNAL_READABLE & hss.satisfied_signals); 1651 EXPECT_TRUE(MOJO_HANDLE_SIGNAL_READABLE & hss.satisfied_signals);
1652 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, 1652 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
1653 hss.satisfiable_signals); 1653 hss.satisfiable_signals);
1654 } 1654 }
1655 1655
1656 return num_bytes == 0; 1656 return num_bytes == 0;
1657 } 1657 }
1658 1658
1659 #if !defined(OS_IOS) 1659 #if !defined(OS_IOS)
1660 1660
1661 #if defined(OS_ANDROID) 1661 TEST_F(DataPipeTest, Multiprocess) {
1662 // Android multi-process tests are not executing the new process. This is flaky.
1663 #define MAYBE_Multiprocess DISABLED_Multiprocess
1664 #else
1665 #define MAYBE_Multiprocess Multiprocess
1666 #endif // defined(OS_ANDROID)
1667 TEST_F(DataPipeTest, MAYBE_Multiprocess) {
1668 const uint32_t kTestDataSize = 1662 const uint32_t kTestDataSize =
1669 static_cast<uint32_t>(sizeof(kMultiprocessTestData)); 1663 static_cast<uint32_t>(sizeof(kMultiprocessTestData));
1670 const MojoCreateDataPipeOptions options = { 1664 const MojoCreateDataPipeOptions options = {
1671 kSizeOfOptions, // |struct_size|. 1665 kSizeOfOptions, // |struct_size|.
1672 MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE, // |flags|. 1666 MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE, // |flags|.
1673 1, // |element_num_bytes|. 1667 1, // |element_num_bytes|.
1674 kMultiprocessCapacity // |capacity_num_bytes|. 1668 kMultiprocessCapacity // |capacity_num_bytes|.
1675 }; 1669 };
1676 ASSERT_EQ(MOJO_RESULT_OK, Create(&options)); 1670 ASSERT_EQ(MOJO_RESULT_OK, Create(&options));
1677 1671
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1830 1824
1831 std::string message(bytes.data(), bytes.size()); 1825 std::string message(bytes.data(), bytes.size());
1832 EXPECT_EQ(expected_message, message); 1826 EXPECT_EQ(expected_message, message);
1833 1827
1834 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(c)); 1828 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(c));
1835 1829
1836 // Wait for a quit message. 1830 // Wait for a quit message.
1837 EXPECT_EQ("quit", ReadMessage(h)); 1831 EXPECT_EQ("quit", ReadMessage(h));
1838 } 1832 }
1839 1833
1840 #if defined(OS_ANDROID) 1834 TEST_F(DataPipeTest, SendConsumerAndCloseProducer) {
1841 // Android multi-process tests are not executing the new process. This is flaky.
1842 #define MAYBE_SendConsumerAndCloseProducer DISABLED_SendConsumerAndCloseProducer
1843 #else
1844 #define MAYBE_SendConsumerAndCloseProducer SendConsumerAndCloseProducer
1845 #endif // defined(OS_ANDROID)
1846 TEST_F(DataPipeTest, MAYBE_SendConsumerAndCloseProducer) {
1847 // Create a new data pipe. 1835 // Create a new data pipe.
1848 MojoHandle p, c; 1836 MojoHandle p, c;
1849 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(nullptr, &p ,&c)); 1837 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(nullptr, &p ,&c));
1850 1838
1851 RUN_CHILD_ON_PIPE(WriteAndCloseProducer, producer_client) 1839 RUN_CHILD_ON_PIPE(WriteAndCloseProducer, producer_client)
1852 RUN_CHILD_ON_PIPE(ReadAndCloseConsumer, consumer_client) 1840 RUN_CHILD_ON_PIPE(ReadAndCloseConsumer, consumer_client)
1853 const std::string kMessage = "Hello, world!"; 1841 const std::string kMessage = "Hello, world!";
1854 WriteMessageWithHandles(producer_client, kMessage, &p, 1); 1842 WriteMessageWithHandles(producer_client, kMessage, &p, 1);
1855 WriteMessageWithHandles(consumer_client, kMessage, &c, 1); 1843 WriteMessageWithHandles(consumer_client, kMessage, &c, 1);
1856 1844
(...skipping 22 matching lines...) Expand all
1879 uint32_t num_bytes = static_cast<uint32_t>(kMessage.size()); 1867 uint32_t num_bytes = static_cast<uint32_t>(kMessage.size());
1880 EXPECT_EQ(MOJO_RESULT_OK, MojoWriteData(p, kMessage.data(), &num_bytes, 1868 EXPECT_EQ(MOJO_RESULT_OK, MojoWriteData(p, kMessage.data(), &num_bytes,
1881 MOJO_WRITE_DATA_FLAG_NONE)); 1869 MOJO_WRITE_DATA_FLAG_NONE));
1882 EXPECT_EQ(num_bytes, static_cast<uint32_t>(kMessage.size())); 1870 EXPECT_EQ(num_bytes, static_cast<uint32_t>(kMessage.size()));
1883 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(p)); 1871 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(p));
1884 1872
1885 // Wait for a quit message. 1873 // Wait for a quit message.
1886 EXPECT_EQ("quit", ReadMessage(h)); 1874 EXPECT_EQ("quit", ReadMessage(h));
1887 } 1875 }
1888 1876
1889 #if defined(OS_ANDROID) 1877 TEST_F(DataPipeTest, CreateInChild) {
1890 // Android multi-process tests are not executing the new process. This is flaky.
1891 #define MAYBE_CreateInChild DISABLED_CreateInChild
1892 #else
1893 #define MAYBE_CreateInChild CreateInChild
1894 #endif // defined(OS_ANDROID)
1895 TEST_F(DataPipeTest, MAYBE_CreateInChild) {
1896 RUN_CHILD_ON_PIPE(CreateAndWrite, child) 1878 RUN_CHILD_ON_PIPE(CreateAndWrite, child)
1897 MojoHandle c; 1879 MojoHandle c;
1898 std::string expected_message = ReadMessageWithHandles(child, &c, 1); 1880 std::string expected_message = ReadMessageWithHandles(child, &c, 1);
1899 1881
1900 // Wait for the consumer to become readable. 1882 // Wait for the consumer to become readable.
1901 EXPECT_EQ(MOJO_RESULT_OK, MojoWait(c, MOJO_HANDLE_SIGNAL_READABLE, 1883 EXPECT_EQ(MOJO_RESULT_OK, MojoWait(c, MOJO_HANDLE_SIGNAL_READABLE,
1902 MOJO_DEADLINE_INDEFINITE, nullptr)); 1884 MOJO_DEADLINE_INDEFINITE, nullptr));
1903 1885
1904 // Drain the consumer and expect to find the given message. 1886 // Drain the consumer and expect to find the given message.
1905 uint32_t num_bytes = static_cast<uint32_t>(expected_message.size()); 1887 uint32_t num_bytes = static_cast<uint32_t>(expected_message.size());
1906 std::vector<char> bytes(expected_message.size()); 1888 std::vector<char> bytes(expected_message.size());
1907 EXPECT_EQ(MOJO_RESULT_OK, MojoReadData(c, bytes.data(), &num_bytes, 1889 EXPECT_EQ(MOJO_RESULT_OK, MojoReadData(c, bytes.data(), &num_bytes,
1908 MOJO_READ_DATA_FLAG_NONE)); 1890 MOJO_READ_DATA_FLAG_NONE));
1909 EXPECT_EQ(num_bytes, static_cast<uint32_t>(bytes.size())); 1891 EXPECT_EQ(num_bytes, static_cast<uint32_t>(bytes.size()));
1910 1892
1911 std::string message(bytes.data(), bytes.size()); 1893 std::string message(bytes.data(), bytes.size());
1912 EXPECT_EQ(expected_message, message); 1894 EXPECT_EQ(expected_message, message);
1913 1895
1914 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(c)); 1896 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(c));
1915 WriteMessage(child, "quit"); 1897 WriteMessage(child, "quit");
1916 END_CHILD() 1898 END_CHILD()
1917 } 1899 }
1918 1900
1919 #endif // !defined(OS_IOS) 1901 #endif // !defined(OS_IOS)
1920 1902
1921 } // namespace 1903 } // namespace
1922 } // namespace edk 1904 } // namespace edk
1923 } // namespace mojo 1905 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/embedder/embedder_unittest.cc ('k') | mojo/edk/system/message_pipe_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698