Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 792 TEST_F(DataPipeTest, AllOrNone) { | 792 TEST_F(DataPipeTest, AllOrNone) { |
| 793 const MojoCreateDataPipeOptions options = { | 793 const MojoCreateDataPipeOptions options = { |
| 794 kSizeOfOptions, // |struct_size|. | 794 kSizeOfOptions, // |struct_size|. |
| 795 MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE, // |flags|. | 795 MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE, // |flags|. |
| 796 static_cast<uint32_t>(sizeof(int32_t)), // |element_num_bytes|. | 796 static_cast<uint32_t>(sizeof(int32_t)), // |element_num_bytes|. |
| 797 10 * sizeof(int32_t) // |capacity_num_bytes|. | 797 10 * sizeof(int32_t) // |capacity_num_bytes|. |
| 798 }; | 798 }; |
| 799 ASSERT_EQ(MOJO_RESULT_OK, Create(&options)); | 799 ASSERT_EQ(MOJO_RESULT_OK, Create(&options)); |
| 800 MojoHandleSignalsState hss; | 800 MojoHandleSignalsState hss; |
| 801 | 801 |
| 802 // Try writing way too much. | 802 // Try writing more than the total capacity of the pipe. |
| 803 uint32_t num_bytes = 20u * sizeof(int32_t); | 803 uint32_t num_bytes = 20u * sizeof(int32_t); |
| 804 int32_t buffer[100]; | 804 int32_t buffer[100]; |
| 805 Seq(0, arraysize(buffer), buffer); | 805 Seq(0, arraysize(buffer), buffer); |
| 806 ASSERT_EQ(MOJO_RESULT_OUT_OF_RANGE, WriteData(buffer, &num_bytes, true)); | 806 ASSERT_EQ(MOJO_RESULT_OUT_OF_RANGE, WriteData(buffer, &num_bytes, true)); |
| 807 | 807 |
| 808 // Should still be empty. | 808 // Should still be empty. |
| 809 num_bytes = ~0u; | 809 num_bytes = ~0u; |
| 810 ASSERT_EQ(MOJO_RESULT_OK, QueryData(&num_bytes)); | 810 ASSERT_EQ(MOJO_RESULT_OK, QueryData(&num_bytes)); |
| 811 ASSERT_EQ(0u, num_bytes); | 811 ASSERT_EQ(0u, num_bytes); |
| 812 | 812 |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 827 MOJO_DEADLINE_INDEFINITE, &hss)); | 827 MOJO_DEADLINE_INDEFINITE, &hss)); |
| 828 ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals); | 828 ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals); |
| 829 ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, | 829 ASSERT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
| 830 hss.satisfiable_signals); | 830 hss.satisfiable_signals); |
| 831 | 831 |
| 832 // Half full. | 832 // Half full. |
| 833 num_bytes = 0u; | 833 num_bytes = 0u; |
| 834 ASSERT_EQ(MOJO_RESULT_OK, QueryData(&num_bytes)); | 834 ASSERT_EQ(MOJO_RESULT_OK, QueryData(&num_bytes)); |
| 835 ASSERT_EQ(5u * sizeof(int32_t), num_bytes); | 835 ASSERT_EQ(5u * sizeof(int32_t), num_bytes); |
| 836 | 836 |
| 837 /* TODO(jam): enable if we end up observing max capacity | 837 // Try writing more than the available capacity of the pipe, but less than the |
|
miu
2016/09/14 22:40:23
Not sure what the TODO comment was talking about h
| |
| 838 // Too much. | 838 // total capacity. |
| 839 num_bytes = 6u * sizeof(int32_t); | 839 num_bytes = 6u * sizeof(int32_t); |
| 840 Seq(200, arraysize(buffer), buffer); | 840 Seq(200, arraysize(buffer), buffer); |
| 841 ASSERT_EQ(MOJO_RESULT_OUT_OF_RANGE, WriteData(buffer, &num_bytes, true)); | 841 ASSERT_EQ(MOJO_RESULT_OUT_OF_RANGE, WriteData(buffer, &num_bytes, true)); |
| 842 */ | |
| 843 | 842 |
| 844 // Try reading too much. | 843 // Try reading too much. |
| 845 num_bytes = 11u * sizeof(int32_t); | 844 num_bytes = 11u * sizeof(int32_t); |
| 846 memset(buffer, 0xab, sizeof(buffer)); | 845 memset(buffer, 0xab, sizeof(buffer)); |
| 847 ASSERT_EQ(MOJO_RESULT_OUT_OF_RANGE, ReadData(buffer, &num_bytes, true)); | 846 ASSERT_EQ(MOJO_RESULT_OUT_OF_RANGE, ReadData(buffer, &num_bytes, true)); |
| 848 int32_t expected_buffer[100]; | 847 int32_t expected_buffer[100]; |
| 849 memset(expected_buffer, 0xab, sizeof(expected_buffer)); | 848 memset(expected_buffer, 0xab, sizeof(expected_buffer)); |
| 850 ASSERT_EQ(0, memcmp(buffer, expected_buffer, sizeof(buffer))); | 849 ASSERT_EQ(0, memcmp(buffer, expected_buffer, sizeof(buffer))); |
| 851 | 850 |
| 852 // Try discarding too much. | 851 // Try discarding too much. |
| (...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1982 for (size_t i = 3; i < 6; ++i) | 1981 for (size_t i = 3; i < 6; ++i) |
| 1983 CloseHandle(producers[i]); | 1982 CloseHandle(producers[i]); |
| 1984 END_CHILD() | 1983 END_CHILD() |
| 1985 } | 1984 } |
| 1986 | 1985 |
| 1987 #endif // !defined(OS_IOS) | 1986 #endif // !defined(OS_IOS) |
| 1988 | 1987 |
| 1989 } // namespace | 1988 } // namespace |
| 1990 } // namespace edk | 1989 } // namespace edk |
| 1991 } // namespace mojo | 1990 } // namespace mojo |
| OLD | NEW |