buffer: Add unit test for map_range()

https://bugzilla.gnome.org/show_bug.cgi?id=702617
This commit is contained in:
Sebastian Dröge 2013-06-19 10:45:45 +02:00 committed by Tim-Philipp Müller
parent 53e3b87fcb
commit 25c2e54518

View file

@ -659,6 +659,55 @@ GST_START_TEST (test_map)
GST_END_TEST;
GST_START_TEST (test_map_range)
{
GstBuffer *buf;
GstMapInfo map;
gsize maxalloc;
gsize size, offset;
buf = gst_buffer_new ();
gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL));
gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL));
gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL));
size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
fail_unless (size == 150);
fail_unless (offset == 0);
fail_unless (maxalloc >= 150);
fail_unless (gst_buffer_n_memory (buf) == 3);
gst_buffer_ref (buf);
/* map should merge */
gst_buffer_map_range (buf, 1, 2, &map, GST_MAP_READ);
/* merged memory is not stored */
fail_unless (gst_buffer_n_memory (buf) == 3);
fail_unless (map.size == 100);
gst_buffer_unmap (buf, &map);
fail_unless (gst_buffer_n_memory (buf) == 3);
gst_buffer_unref (buf);
/* map should merge */
gst_buffer_map_range (buf, 1, 2, &map, GST_MAP_READ);
/* merged memory is stored */
fail_unless (gst_buffer_n_memory (buf) == 2);
fail_unless (map.size == 100);
gst_buffer_unmap (buf, &map);
fail_unless (gst_buffer_n_memory (buf) == 2);
/* should merge and store */
gst_buffer_map (buf, &map, GST_MAP_READ);
fail_unless (gst_buffer_n_memory (buf) == 1);
gst_buffer_unmap (buf, &map);
gst_buffer_unref (buf);
}
GST_END_TEST;
GST_START_TEST (test_find)
{
GstBuffer *buf;
@ -760,6 +809,7 @@ gst_buffer_suite (void)
tcase_add_test (tc_chain, test_size);
tcase_add_test (tc_chain, test_resize);
tcase_add_test (tc_chain, test_map);
tcase_add_test (tc_chain, test_map_range);
tcase_add_test (tc_chain, test_find);
return s;