tests: gstbuffer: extend buffer copy test
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Wed, 18 Jul 2012 13:21:33 +0000 (15:21 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 19 Jul 2012 11:13:33 +0000 (13:13 +0200)
tests/check/gst/gstbuffer.c

index 404d3cd..f667f1a 100644 (file)
@@ -349,6 +349,21 @@ GST_START_TEST (test_copy)
   gst_buffer_unref (copy);
   gst_buffer_unref (buffer);
 
+  /* copy should still be independent if copied when mapped */
+  buffer = gst_buffer_new_and_alloc (4);
+  gst_buffer_memset (buffer, 0, 0, 4);
+  gst_buffer_map (buffer, &info, GST_MAP_WRITE);
+  copy = gst_buffer_copy (buffer);
+  fail_unless (gst_buffer_is_writable (copy));
+  gst_buffer_memset (copy, 0, 0x80, 4);
+  gst_buffer_unmap (buffer, &info);
+  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);