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

Side by Side Diff: mojo/public/cpp/bindings/tests/serialization_warning_unittest.cc

Issue 1535943002: Convert Pass()→std::move() in //mojo/public/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Regenerate correctly Created 4 years, 12 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // Serialization warnings are only recorded in debug build. 5 // Serialization warnings are only recorded in debug build.
6 #ifndef NDEBUG 6 #ifndef NDEBUG
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <utility>
9 10
10 #include "mojo/public/cpp/bindings/array.h" 11 #include "mojo/public/cpp/bindings/array.h"
11 #include "mojo/public/cpp/bindings/lib/array_internal.h" 12 #include "mojo/public/cpp/bindings/lib/array_internal.h"
12 #include "mojo/public/cpp/bindings/lib/array_serialization.h" 13 #include "mojo/public/cpp/bindings/lib/array_serialization.h"
13 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h" 14 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h"
14 #include "mojo/public/cpp/bindings/lib/validation_errors.h" 15 #include "mojo/public/cpp/bindings/lib/validation_errors.h"
15 #include "mojo/public/cpp/bindings/string.h" 16 #include "mojo/public/cpp/bindings/string.h"
16 #include "mojo/public/cpp/system/message_pipe.h" 17 #include "mojo/public/cpp/system/message_pipe.h"
17 #include "mojo/public/interfaces/bindings/tests/serialization_test_structs.mojom .h" 18 #include "mojo/public/interfaces/bindings/tests/serialization_test_structs.mojom .h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 namespace mojo { 21 namespace mojo {
21 namespace test { 22 namespace test {
22 namespace { 23 namespace {
23 24
24 using mojo::internal::ArrayValidateParams; 25 using mojo::internal::ArrayValidateParams;
25 26
26 // Creates an array of arrays of handles (2 X 3) for testing. 27 // Creates an array of arrays of handles (2 X 3) for testing.
27 Array<Array<ScopedHandle>> CreateTestNestedHandleArray() { 28 Array<Array<ScopedHandle>> CreateTestNestedHandleArray() {
28 Array<Array<ScopedHandle>> array(2); 29 Array<Array<ScopedHandle>> array(2);
29 for (size_t i = 0; i < array.size(); ++i) { 30 for (size_t i = 0; i < array.size(); ++i) {
30 Array<ScopedHandle> nested_array(3); 31 Array<ScopedHandle> nested_array(3);
31 for (size_t j = 0; j < nested_array.size(); ++j) { 32 for (size_t j = 0; j < nested_array.size(); ++j) {
32 MessagePipe pipe; 33 MessagePipe pipe;
33 nested_array[j] = ScopedHandle::From(pipe.handle1.Pass()); 34 nested_array[j] = ScopedHandle::From(std::move(pipe.handle1));
34 } 35 }
35 array[i] = nested_array.Pass(); 36 array[i] = std::move(nested_array);
36 } 37 }
37 38
38 return array.Pass(); 39 return array;
39 } 40 }
40 41
41 class SerializationWarningTest : public testing::Test { 42 class SerializationWarningTest : public testing::Test {
42 public: 43 public:
43 ~SerializationWarningTest() override {} 44 ~SerializationWarningTest() override {}
44 45
45 protected: 46 protected:
46 template <typename T> 47 template <typename T>
47 void TestWarning(StructPtr<T> obj, 48 void TestWarning(StructPtr<T> obj,
48 mojo::internal::ValidationError expected_warning) { 49 mojo::internal::ValidationError expected_warning) {
49 TestStructWarningImpl<T>(obj.Pass(), expected_warning); 50 TestStructWarningImpl<T>(std::move(obj), expected_warning);
50 } 51 }
51 52
52 template <typename T> 53 template <typename T>
53 void TestWarning(InlinedStructPtr<T> obj, 54 void TestWarning(InlinedStructPtr<T> obj,
54 mojo::internal::ValidationError expected_warning) { 55 mojo::internal::ValidationError expected_warning) {
55 TestStructWarningImpl<T>(obj.Pass(), expected_warning); 56 TestStructWarningImpl<T>(std::move(obj), expected_warning);
56 } 57 }
57 58
58 template <typename T, typename TPtr> 59 template <typename T, typename TPtr>
59 void TestStructWarningImpl(TPtr obj, 60 void TestStructWarningImpl(TPtr obj,
60 mojo::internal::ValidationError expected_warning) { 61 mojo::internal::ValidationError expected_warning) {
61 warning_observer_.set_last_warning(mojo::internal::VALIDATION_ERROR_NONE); 62 warning_observer_.set_last_warning(mojo::internal::VALIDATION_ERROR_NONE);
62 63
63 mojo::internal::FixedBufferForTesting buf(GetSerializedSize_(obj)); 64 mojo::internal::FixedBufferForTesting buf(GetSerializedSize_(obj));
64 typename T::Data_* data; 65 typename T::Data_* data;
65 Serialize_(obj.Pass(), &buf, &data); 66 Serialize_(std::move(obj), &buf, &data);
66 67
67 EXPECT_EQ(expected_warning, warning_observer_.last_warning()); 68 EXPECT_EQ(expected_warning, warning_observer_.last_warning());
68 } 69 }
69 70
70 template <typename T> 71 template <typename T>
71 void TestArrayWarning(T obj, 72 void TestArrayWarning(T obj,
72 mojo::internal::ValidationError expected_warning, 73 mojo::internal::ValidationError expected_warning,
73 const ArrayValidateParams* validate_params) { 74 const ArrayValidateParams* validate_params) {
74 warning_observer_.set_last_warning(mojo::internal::VALIDATION_ERROR_NONE); 75 warning_observer_.set_last_warning(mojo::internal::VALIDATION_ERROR_NONE);
75 76
76 mojo::internal::FixedBufferForTesting buf(GetSerializedSize_(obj)); 77 mojo::internal::FixedBufferForTesting buf(GetSerializedSize_(obj));
77 typename T::Data_* data; 78 typename T::Data_* data;
78 SerializeArray_(obj.Pass(), &buf, &data, validate_params); 79 SerializeArray_(std::move(obj), &buf, &data, validate_params);
79 80
80 EXPECT_EQ(expected_warning, warning_observer_.last_warning()); 81 EXPECT_EQ(expected_warning, warning_observer_.last_warning());
81 } 82 }
82 83
83 mojo::internal::SerializationWarningObserverForTesting warning_observer_; 84 mojo::internal::SerializationWarningObserverForTesting warning_observer_;
84 }; 85 };
85 86
86 TEST_F(SerializationWarningTest, HandleInStruct) { 87 TEST_F(SerializationWarningTest, HandleInStruct) {
87 Struct2Ptr test_struct(Struct2::New()); 88 Struct2Ptr test_struct(Struct2::New());
88 EXPECT_FALSE(test_struct->hdl.is_valid()); 89 EXPECT_FALSE(test_struct->hdl.is_valid());
89 90
90 TestWarning(test_struct.Pass(), 91 TestWarning(std::move(test_struct),
91 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE); 92 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE);
92 93
93 test_struct = Struct2::New(); 94 test_struct = Struct2::New();
94 MessagePipe pipe; 95 MessagePipe pipe;
95 test_struct->hdl = ScopedHandle::From(pipe.handle1.Pass()); 96 test_struct->hdl = ScopedHandle::From(std::move(pipe.handle1));
96 97
97 TestWarning(test_struct.Pass(), mojo::internal::VALIDATION_ERROR_NONE); 98 TestWarning(std::move(test_struct), mojo::internal::VALIDATION_ERROR_NONE);
98 } 99 }
99 100
100 TEST_F(SerializationWarningTest, StructInStruct) { 101 TEST_F(SerializationWarningTest, StructInStruct) {
101 Struct3Ptr test_struct(Struct3::New()); 102 Struct3Ptr test_struct(Struct3::New());
102 EXPECT_TRUE(!test_struct->struct_1); 103 EXPECT_TRUE(!test_struct->struct_1);
103 104
104 TestWarning(test_struct.Pass(), 105 TestWarning(std::move(test_struct),
105 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); 106 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
106 107
107 test_struct = Struct3::New(); 108 test_struct = Struct3::New();
108 test_struct->struct_1 = Struct1::New(); 109 test_struct->struct_1 = Struct1::New();
109 110
110 TestWarning(test_struct.Pass(), mojo::internal::VALIDATION_ERROR_NONE); 111 TestWarning(std::move(test_struct), mojo::internal::VALIDATION_ERROR_NONE);
111 } 112 }
112 113
113 TEST_F(SerializationWarningTest, ArrayOfStructsInStruct) { 114 TEST_F(SerializationWarningTest, ArrayOfStructsInStruct) {
114 Struct4Ptr test_struct(Struct4::New()); 115 Struct4Ptr test_struct(Struct4::New());
115 EXPECT_TRUE(!test_struct->data); 116 EXPECT_TRUE(!test_struct->data);
116 117
117 TestWarning(test_struct.Pass(), 118 TestWarning(std::move(test_struct),
118 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); 119 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
119 120
120 test_struct = Struct4::New(); 121 test_struct = Struct4::New();
121 test_struct->data.resize(1); 122 test_struct->data.resize(1);
122 123
123 TestWarning(test_struct.Pass(), 124 TestWarning(std::move(test_struct),
124 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); 125 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
125 126
126 test_struct = Struct4::New(); 127 test_struct = Struct4::New();
127 test_struct->data.resize(0); 128 test_struct->data.resize(0);
128 129
129 TestWarning(test_struct.Pass(), mojo::internal::VALIDATION_ERROR_NONE); 130 TestWarning(std::move(test_struct), mojo::internal::VALIDATION_ERROR_NONE);
130 131
131 test_struct = Struct4::New(); 132 test_struct = Struct4::New();
132 test_struct->data.resize(1); 133 test_struct->data.resize(1);
133 test_struct->data[0] = Struct1::New(); 134 test_struct->data[0] = Struct1::New();
134 135
135 TestWarning(test_struct.Pass(), mojo::internal::VALIDATION_ERROR_NONE); 136 TestWarning(std::move(test_struct), mojo::internal::VALIDATION_ERROR_NONE);
136 } 137 }
137 138
138 TEST_F(SerializationWarningTest, FixedArrayOfStructsInStruct) { 139 TEST_F(SerializationWarningTest, FixedArrayOfStructsInStruct) {
139 Struct5Ptr test_struct(Struct5::New()); 140 Struct5Ptr test_struct(Struct5::New());
140 EXPECT_TRUE(!test_struct->pair); 141 EXPECT_TRUE(!test_struct->pair);
141 142
142 TestWarning(test_struct.Pass(), 143 TestWarning(std::move(test_struct),
143 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); 144 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
144 145
145 test_struct = Struct5::New(); 146 test_struct = Struct5::New();
146 test_struct->pair.resize(1); 147 test_struct->pair.resize(1);
147 test_struct->pair[0] = Struct1::New(); 148 test_struct->pair[0] = Struct1::New();
148 149
149 TestWarning(test_struct.Pass(), 150 TestWarning(std::move(test_struct),
150 mojo::internal::VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER); 151 mojo::internal::VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER);
151 152
152 test_struct = Struct5::New(); 153 test_struct = Struct5::New();
153 test_struct->pair.resize(2); 154 test_struct->pair.resize(2);
154 test_struct->pair[0] = Struct1::New(); 155 test_struct->pair[0] = Struct1::New();
155 test_struct->pair[1] = Struct1::New(); 156 test_struct->pair[1] = Struct1::New();
156 157
157 TestWarning(test_struct.Pass(), mojo::internal::VALIDATION_ERROR_NONE); 158 TestWarning(std::move(test_struct), mojo::internal::VALIDATION_ERROR_NONE);
158 } 159 }
159 160
160 TEST_F(SerializationWarningTest, StringInStruct) { 161 TEST_F(SerializationWarningTest, StringInStruct) {
161 Struct6Ptr test_struct(Struct6::New()); 162 Struct6Ptr test_struct(Struct6::New());
162 EXPECT_TRUE(!test_struct->str); 163 EXPECT_TRUE(!test_struct->str);
163 164
164 TestWarning(test_struct.Pass(), 165 TestWarning(std::move(test_struct),
165 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); 166 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
166 167
167 test_struct = Struct6::New(); 168 test_struct = Struct6::New();
168 test_struct->str = "hello world"; 169 test_struct->str = "hello world";
169 170
170 TestWarning(test_struct.Pass(), mojo::internal::VALIDATION_ERROR_NONE); 171 TestWarning(std::move(test_struct), mojo::internal::VALIDATION_ERROR_NONE);
171 } 172 }
172 173
173 TEST_F(SerializationWarningTest, ArrayOfArraysOfHandles) { 174 TEST_F(SerializationWarningTest, ArrayOfArraysOfHandles) {
174 Array<Array<ScopedHandle>> test_array = CreateTestNestedHandleArray(); 175 Array<Array<ScopedHandle>> test_array = CreateTestNestedHandleArray();
175 test_array[0] = Array<ScopedHandle>(); 176 test_array[0] = Array<ScopedHandle>();
176 test_array[1][0] = ScopedHandle(); 177 test_array[1][0] = ScopedHandle();
177 178
178 ArrayValidateParams validate_params_0( 179 ArrayValidateParams validate_params_0(
179 0, true, new ArrayValidateParams(0, true, nullptr)); 180 0, true, new ArrayValidateParams(0, true, nullptr));
180 TestArrayWarning(test_array.Pass(), mojo::internal::VALIDATION_ERROR_NONE, 181 TestArrayWarning(std::move(test_array), mojo::internal::VALIDATION_ERROR_NONE,
181 &validate_params_0); 182 &validate_params_0);
182 183
183 test_array = CreateTestNestedHandleArray(); 184 test_array = CreateTestNestedHandleArray();
184 test_array[0] = Array<ScopedHandle>(); 185 test_array[0] = Array<ScopedHandle>();
185 ArrayValidateParams validate_params_1( 186 ArrayValidateParams validate_params_1(
186 0, false, new ArrayValidateParams(0, true, nullptr)); 187 0, false, new ArrayValidateParams(0, true, nullptr));
187 TestArrayWarning(test_array.Pass(), 188 TestArrayWarning(std::move(test_array),
188 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, 189 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
189 &validate_params_1); 190 &validate_params_1);
190 191
191 test_array = CreateTestNestedHandleArray(); 192 test_array = CreateTestNestedHandleArray();
192 test_array[1][0] = ScopedHandle(); 193 test_array[1][0] = ScopedHandle();
193 ArrayValidateParams validate_params_2( 194 ArrayValidateParams validate_params_2(
194 0, true, new ArrayValidateParams(0, false, nullptr)); 195 0, true, new ArrayValidateParams(0, false, nullptr));
195 TestArrayWarning(test_array.Pass(), 196 TestArrayWarning(std::move(test_array),
196 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE, 197 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE,
197 &validate_params_2); 198 &validate_params_2);
198 } 199 }
199 200
200 TEST_F(SerializationWarningTest, ArrayOfStrings) { 201 TEST_F(SerializationWarningTest, ArrayOfStrings) {
201 Array<String> test_array(3); 202 Array<String> test_array(3);
202 for (size_t i = 0; i < test_array.size(); ++i) 203 for (size_t i = 0; i < test_array.size(); ++i)
203 test_array[i] = "hello"; 204 test_array[i] = "hello";
204 205
205 ArrayValidateParams validate_params_0( 206 ArrayValidateParams validate_params_0(
206 0, true, new ArrayValidateParams(0, false, nullptr)); 207 0, true, new ArrayValidateParams(0, false, nullptr));
207 TestArrayWarning(test_array.Pass(), mojo::internal::VALIDATION_ERROR_NONE, 208 TestArrayWarning(std::move(test_array), mojo::internal::VALIDATION_ERROR_NONE,
208 &validate_params_0); 209 &validate_params_0);
209 210
210 test_array = Array<String>(3); 211 test_array = Array<String>(3);
211 ArrayValidateParams validate_params_1( 212 ArrayValidateParams validate_params_1(
212 0, false, new ArrayValidateParams(0, false, nullptr)); 213 0, false, new ArrayValidateParams(0, false, nullptr));
213 TestArrayWarning(test_array.Pass(), 214 TestArrayWarning(std::move(test_array),
214 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, 215 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
215 &validate_params_1); 216 &validate_params_1);
216 217
217 test_array = Array<String>(2); 218 test_array = Array<String>(2);
218 ArrayValidateParams validate_params_2( 219 ArrayValidateParams validate_params_2(
219 3, true, new ArrayValidateParams(0, false, nullptr)); 220 3, true, new ArrayValidateParams(0, false, nullptr));
220 TestArrayWarning(test_array.Pass(), 221 TestArrayWarning(std::move(test_array),
221 mojo::internal::VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER, 222 mojo::internal::VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER,
222 &validate_params_2); 223 &validate_params_2);
223 } 224 }
224 225
225 } // namespace 226 } // namespace
226 } // namespace test 227 } // namespace test
227 } // namespace mojo 228 } // namespace mojo
228 229
229 #endif 230 #endif
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/tests/sample_service_unittest.cc ('k') | mojo/public/cpp/bindings/tests/struct_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698