tests: gstbuffer: extend buffer copy test

... to check for independence of copied buffer.
This commit is contained in:
Mark Nauwelaerts 2012-06-29 16:37:05 +02:00 committed by Wim Taymans
parent 36b051f02e
commit 0f69f9e44a

View file

@ -335,6 +335,33 @@ GST_START_TEST (test_copy)
gst_buffer_unref (copy);
gst_buffer_unref (buffer);
/* check if copy is an independent copy when written to */
buffer = gst_buffer_new_and_alloc (4);
gst_buffer_memset (buffer, 0, 0, 4);
copy = gst_buffer_copy (buffer);
fail_unless (gst_buffer_is_writable (copy));
gst_buffer_memset (copy, 0, 0x80, 4);
gst_buffer_map (buffer, &info, GST_MAP_READ);
fail_if (gst_buffer_memcmp (copy, 0, info.data, info.size) == 0);
gst_buffer_unmap (buffer, &info);
gst_buffer_unref (copy);
gst_buffer_unref (buffer);
/* check if a writable clone of a buffer is independent when written to */
buffer = gst_buffer_new_and_alloc (4);
gst_buffer_memset (buffer, 0, 0, 4);
copy = gst_buffer_ref (buffer);
copy = gst_buffer_make_writable (copy);
fail_unless (gst_buffer_is_writable (copy));
gst_buffer_memset (copy, 0, 0x80, 4);
gst_buffer_map (buffer, &info, GST_MAP_READ);
fail_if (gst_buffer_memcmp (copy, 0, info.data, info.size) == 0);
gst_buffer_unmap (buffer, &info);
gst_buffer_unref (copy);
gst_buffer_unref (buffer);
}
GST_END_TEST;