+ gst_buffer_unref (netbuf);
+ gst_buffer_unref (copy);
+
+ netbuf = gst_buffer_new ();
+ fail_unless (netbuf != NULL, "failed to create net buffer");
+ meta = gst_buffer_add_meta_net_address (netbuf);
+
+ gst_netaddress_set_ip6_address (&meta->naddr, ipv6_addr, ipv6_port);
+
+ len = strlen (DATA_STRING);
+ gst_buffer_take_memory (netbuf,
+ gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
+ (gpointer) DATA_STRING, NULL, len, 0, len));
+
+ GST_BUFFER_FLAG_SET (netbuf, GST_BUFFER_FLAG_DISCONT);
+
+ copy = gst_buffer_copy (netbuf);
+ fail_unless (copy != NULL, "failed to copy net buffer");
+
+ cmeta = gst_buffer_get_meta_net_address (copy);
+ fail_unless (cmeta != NULL, "copied buffer is not a GstNetBuffer!");
+
+ fail_unless_equals_int (GST_MINI_OBJECT_REFCOUNT_VALUE (copy), 1);
+
+ data1 = gst_buffer_map (netbuf, &size1, NULL, GST_MAP_READ);
+ data2 = gst_buffer_map (copy, &size2, NULL, GST_MAP_READ);
+ fail_unless_equals_int (size1, size2);
+ fail_unless (memcmp (data1, data2, size1) == 0);
+ gst_buffer_unmap (copy, data2, size2);
+ gst_buffer_unmap (netbuf, data1, size1);
+
+ fail_unless (GST_BUFFER_FLAG_IS_SET (copy, GST_BUFFER_FLAG_DISCONT));