Skip to content

Commit 39c0356

Browse files
committed
Additional test coverage
1 parent 287479c commit 39c0356

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

test/test_string_array.cpp

+30
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,22 @@ TEST(test_string_array, string_array_resize) {
173173
ret = rcutils_string_array_resize(&sa0, sa0.size);
174174
ASSERT_EQ(RCUTILS_RET_OK, ret);
175175

176+
// Grow to 16 (with allocation failure)
177+
sa0.allocator = failing_allocator;
178+
ret = rcutils_string_array_resize(&sa0, 16);
179+
EXPECT_EQ(RCUTILS_RET_BAD_ALLOC, ret);
180+
EXPECT_EQ(8u, sa0.size);
181+
rcutils_reset_error();
182+
183+
// Grow to 16 (witn invalid allocator)
184+
sa0.allocator = invalid_allocator;
185+
ret = rcutils_string_array_resize(&sa0, 16);
186+
EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, ret);
187+
EXPECT_EQ(8u, sa0.size);
188+
rcutils_reset_error();
189+
176190
// Grow to 16
191+
sa0.allocator = allocator;
177192
ret = rcutils_string_array_resize(&sa0, 16);
178193
ASSERT_EQ(RCUTILS_RET_OK, ret);
179194
ASSERT_EQ(16u, sa0.size);
@@ -191,7 +206,22 @@ TEST(test_string_array, string_array_resize) {
191206
sa0.data[i] = strdup(val);
192207
}
193208

209+
// Shrink to 4 (with allocation failure)
210+
sa0.allocator = failing_allocator;
211+
ret = rcutils_string_array_resize(&sa0, 4);
212+
EXPECT_EQ(RCUTILS_RET_BAD_ALLOC, ret);
213+
EXPECT_EQ(16u, sa0.size);
214+
rcutils_reset_error();
215+
216+
// Shrink to 4 (witn invalid allocator)
217+
sa0.allocator = invalid_allocator;
218+
ret = rcutils_string_array_resize(&sa0, 4);
219+
EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, ret);
220+
EXPECT_EQ(16u, sa0.size);
221+
rcutils_reset_error();
222+
194223
// Shrink to 4
224+
sa0.allocator = allocator;
195225
ret = rcutils_string_array_resize(&sa0, 4);
196226
ASSERT_EQ(RCUTILS_RET_OK, ret);
197227
ASSERT_EQ(4u, sa0.size);

0 commit comments

Comments
 (0)