summaryrefslogtreecommitdiff
path: root/tests/check/gst
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check/gst')
-rw-r--r--tests/check/gst/gstbuffer.c33
-rw-r--r--tests/check/gst/gstmemory.c177
-rw-r--r--tests/check/gst/gstminiobject.c4
3 files changed, 65 insertions, 149 deletions
diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c
index 1ac9688e6..02b6142de 100644
--- a/tests/check/gst/gstbuffer.c
+++ b/tests/check/gst/gstbuffer.c
@@ -41,12 +41,14 @@ GST_START_TEST (test_subbuffer)
buffer = gst_buffer_new_and_alloc (4);
/* check sizes, buffer starts out empty */
+ GST_DEBUG ("1");
data = gst_buffer_map (buffer, &size, &maxsize, GST_MAP_WRITE);
fail_unless (size == 4, "buffer has wrong size");
fail_unless (maxsize >= 4, "buffer has wrong size");
memset (data, 0, 4);
gst_buffer_unmap (buffer, data, 4);
+ GST_DEBUG ("2");
data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
/* set some metadata */
GST_BUFFER_TIMESTAMP (buffer) = 1;
@@ -54,9 +56,11 @@ GST_START_TEST (test_subbuffer)
GST_BUFFER_OFFSET (buffer) = 3;
GST_BUFFER_OFFSET_END (buffer) = 4;
+ GST_DEBUG ("3");
sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 1, 2);
fail_if (sub == NULL, "copy region of buffer returned NULL");
+ GST_DEBUG ("4");
sdata = gst_buffer_map (sub, &ssize, NULL, GST_MAP_READ);
fail_unless (ssize == 2, "subbuffer has wrong size");
fail_unless (memcmp (data + 1, sdata, 2) == 0,
@@ -72,14 +76,12 @@ GST_START_TEST (test_subbuffer)
gst_buffer_unref (sub);
/* create a subbuffer of size 0 */
+ GST_DEBUG ("5");
sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 1, 0);
fail_if (sub == NULL, "copy_region of buffer returned NULL");
sdata = gst_buffer_map (sub, &ssize, NULL, GST_MAP_READ);
- fail_unless (ssize == 0, "subbuffer has wrong size");
- fail_unless (memcmp (data + 1, sdata, 0) == 0,
- "subbuffer contains the wrong data");
+ fail_unless (sdata == NULL, "subbuffer has wrong data");
ASSERT_BUFFER_REFCOUNT (sub, "subbuffer", 1);
- gst_buffer_unmap (sub, sdata, ssize);
gst_buffer_unref (sub);
/* test if metadata is coppied, not a complete buffer copy so only the
@@ -270,16 +272,18 @@ GST_START_TEST (test_make_writable)
/* alloc'ed buffer with refcount 1 should be writable */
buf = gst_buffer_new_and_alloc (32);
- buf2 = gst_buffer_make_writable (buf);
+ buf2 = gst_buffer_make_locked (buf, GST_LOCK_WRITE);
fail_unless (buf == buf2,
"_make_writable() should have returned same buffer");
+ gst_buffer_unlock (buf2);
gst_buffer_unref (buf2);
/* alloc'ed buffer with refcount >1 should be copied */
buf = gst_buffer_new_and_alloc (32);
gst_buffer_ref (buf);
- buf2 = gst_buffer_make_writable (buf);
+ buf2 = gst_buffer_make_locked (buf, GST_LOCK_WRITE);
fail_unless (buf != buf2, "_make_writable() should have returned a copy!");
+ gst_buffer_unlock (buf2);
gst_buffer_unref (buf2);
gst_buffer_unref (buf);
}
@@ -316,18 +320,18 @@ GST_START_TEST (test_metadata_writable)
GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
/* Buffer with refcount 1 should have writable metadata */
- fail_unless (gst_buffer_is_writable (buffer) == TRUE);
+ fail_unless (gst_buffer_try_lock (buffer, GST_LOCK_WRITE) == TRUE);
+ gst_buffer_unlock (buffer);
/* Check that a buffer with refcount 2 does not have writable metadata */
gst_buffer_ref (buffer);
ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 2);
- fail_unless (gst_buffer_is_writable (buffer) == FALSE);
+ fail_unless (gst_buffer_try_lock (buffer, GST_LOCK_WRITE) == FALSE);
/* Check that make_metadata_writable produces a new sub-buffer with
* writable metadata. */
- sub1 = gst_buffer_make_writable (buffer);
+ sub1 = gst_buffer_make_locked (buffer, GST_LOCK_WRITE);
fail_if (sub1 == buffer);
- fail_unless (gst_buffer_is_writable (sub1) == TRUE);
/* Check that make_metadata_writable() maintains the buffer flags */
fail_unless (GST_BUFFER_FLAG_IS_SET (sub1, GST_BUFFER_FLAG_DISCONT));
@@ -342,10 +346,12 @@ GST_START_TEST (test_metadata_writable)
/* Drop the subbuffer and check that the metadata is now writable again */
ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
+ gst_buffer_unlock (sub1);
gst_buffer_unref (sub1);
- fail_unless (gst_buffer_is_writable (buffer) == TRUE);
+ fail_unless (gst_buffer_try_lock (buffer, GST_LOCK_WRITE) == TRUE);
ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
+ gst_buffer_unlock (buffer);
gst_buffer_unref (buffer);
}
@@ -382,14 +388,12 @@ GST_START_TEST (test_copy)
buffer = gst_buffer_new_and_alloc (0);
data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
fail_unless (data == NULL);
- gst_buffer_unmap (buffer, data, size);
/* copying a 0-sized buffer should not crash and also set
* the data member NULL. */
copy = gst_buffer_copy (buffer);
data = gst_buffer_map (copy, &size, NULL, GST_MAP_READ);
fail_unless (data == NULL);
- gst_buffer_unmap (copy, data, size);
gst_buffer_unref (copy);
gst_buffer_unref (buffer);
@@ -409,7 +413,6 @@ GST_START_TEST (test_try_new_and_alloc)
fail_unless (GST_IS_BUFFER (buf));
data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
fail_unless (data == NULL);
- gst_buffer_unmap (buf, data, size);
gst_buffer_unref (buf);
/* normal alloc should still work */
@@ -456,7 +459,7 @@ GST_START_TEST (test_size)
fail_unless (offset == 0);
fail_unless (maxalloc >= 100);
- mem = gst_buffer_peek_memory (buf, 0, GST_MAP_WRITE);
+ mem = gst_buffer_peek_memory (buf, 0);
gst_memory_resize (mem, 10, 70);
size = gst_buffer_get_sizes (buf, &offset, &maxsize);
diff --git a/tests/check/gst/gstmemory.c b/tests/check/gst/gstmemory.c
index 02115c751..f50b225e2 100644
--- a/tests/check/gst/gstmemory.c
+++ b/tests/check/gst/gstmemory.c
@@ -45,7 +45,7 @@ GST_START_TEST (test_submemory)
fail_unless (size == 4, "memory has wrong size");
fail_unless (maxsize >= 4, "memory has wrong size");
memset (data, 0, 4);
- gst_memory_unmap (memory, data, 4);
+ gst_memory_unmap (memory);
data = gst_memory_map (memory, &size, NULL, GST_MAP_READ);
@@ -57,7 +57,7 @@ GST_START_TEST (test_submemory)
fail_unless (memcmp (data + 1, sdata, 2) == 0,
"submemory contains the wrong data");
ASSERT_MEMORY_REFCOUNT (sub, "submemory", 1);
- gst_memory_unmap (sub, sdata, ssize);
+ gst_memory_unmap (sub);
gst_memory_unref (sub);
/* create a submemory of size 0 */
@@ -68,7 +68,7 @@ GST_START_TEST (test_submemory)
fail_unless (memcmp (data + 1, sdata, 0) == 0,
"submemory contains the wrong data");
ASSERT_MEMORY_REFCOUNT (sub, "submemory", 1);
- gst_memory_unmap (sub, sdata, ssize);
+ gst_memory_unmap (sub);
gst_memory_unref (sub);
/* test if metadata is coppied, not a complete memory copy so only the
@@ -89,7 +89,7 @@ GST_START_TEST (test_submemory)
/* clean up */
gst_memory_unref (sub);
- gst_memory_unmap (memory, data, size);
+ gst_memory_unmap (memory);
gst_memory_unref (memory);
}
@@ -134,7 +134,6 @@ create_read_only_memory (void)
/* assign some read-only data to the new memory */
mem = gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
(gpointer) ro_memory, NULL, sizeof (ro_memory), 0, sizeof (ro_memory));
- fail_if (gst_memory_is_writable (mem));
return mem;
}
@@ -148,24 +147,21 @@ GST_START_TEST (test_writable)
/* create read-only memory and try to write */
mem = create_read_only_memory ();
- ASSERT_CRITICAL (gst_memory_map (mem, &size, NULL, GST_MAP_WRITE));
- fail_if (gst_memory_is_writable (mem));
+ fail_if (gst_memory_map (mem, &size, NULL, GST_MAP_WRITE));
mem2 = gst_memory_copy (mem, 0, -1);
- fail_if (gst_memory_is_writable (mem));
- fail_unless (gst_memory_is_writable (mem2));
data = gst_memory_map (mem2, &size, NULL, GST_MAP_WRITE);
data[4] = 'a';
- gst_memory_unmap (mem2, data, size);
+ gst_memory_unmap (mem2);
gst_memory_ref (mem2);
- ASSERT_CRITICAL (gst_memory_map (mem, &size, NULL, GST_MAP_WRITE));
+ fail_if (gst_memory_map (mem, &size, NULL, GST_MAP_WRITE));
gst_memory_unref (mem2);
data = gst_memory_map (mem2, &size, NULL, GST_MAP_WRITE);
data[4] = 'a';
- gst_memory_unmap (mem2, data, size);
+ gst_memory_unmap (mem2);
gst_memory_unref (mem2);
@@ -183,10 +179,9 @@ GST_START_TEST (test_submemory_writable)
mem = create_read_only_memory ();
sub_mem = gst_memory_share (mem, 0, 8);
- fail_if (gst_memory_is_writable (sub_mem));
- ASSERT_CRITICAL (gst_memory_map (mem, &size, NULL, GST_MAP_WRITE));
- ASSERT_CRITICAL (gst_memory_map (sub_mem, &size, NULL, GST_MAP_WRITE));
+ fail_if (gst_memory_map (mem, &size, NULL, GST_MAP_WRITE));
+ fail_if (gst_memory_map (sub_mem, &size, NULL, GST_MAP_WRITE));
gst_memory_unref (sub_mem);
gst_memory_unref (mem);
@@ -198,7 +193,6 @@ GST_START_TEST (test_copy)
{
GstMemory *memory, *copy;
gsize size, ssize;
- guint8 *data, *sdata;
memory = gst_allocator_alloc (NULL, 4, 0);
ASSERT_MEMORY_REFCOUNT (memory, "memory", 1);
@@ -209,28 +203,28 @@ GST_START_TEST (test_copy)
/* memorys are copied and must point to different memory */
fail_if (memory == copy);
- data = gst_memory_map (memory, &size, NULL, GST_MAP_READ);
- sdata = gst_memory_map (copy, &ssize, NULL, GST_MAP_READ);
+ gst_memory_map (memory, &size, NULL, GST_MAP_READ);
+ gst_memory_map (copy, &ssize, NULL, GST_MAP_READ);
/* NOTE that data is refcounted */
fail_unless (size == ssize);
- gst_memory_unmap (copy, sdata, ssize);
- gst_memory_unmap (memory, data, size);
+ gst_memory_unmap (copy);
+ gst_memory_unmap (memory);
gst_memory_unref (copy);
gst_memory_unref (memory);
memory = gst_allocator_alloc (NULL, 0, 0);
- data = gst_memory_map (memory, &size, NULL, GST_MAP_READ);
+ gst_memory_map (memory, &size, NULL, GST_MAP_READ);
fail_unless (size == 0);
- gst_memory_unmap (memory, data, size);
+ gst_memory_unmap (memory);
/* copying a 0-sized memory should not crash */
copy = gst_memory_copy (memory, 0, -1);
- data = gst_memory_map (copy, &size, NULL, GST_MAP_READ);
+ gst_memory_map (copy, &size, NULL, GST_MAP_READ);
fail_unless (size == 0);
- gst_memory_unmap (copy, data, size);
+ gst_memory_unmap (copy);
gst_memory_unref (copy);
gst_memory_unref (memory);
@@ -248,7 +242,7 @@ GST_START_TEST (test_try_new_and_alloc)
fail_unless (mem != NULL);
data = gst_memory_map (mem, &size, NULL, GST_MAP_READ);
fail_unless (size == 0);
- gst_memory_unmap (mem, data, size);
+ gst_memory_unmap (mem);
gst_memory_unref (mem);
/* normal alloc should still work */
@@ -258,7 +252,7 @@ GST_START_TEST (test_try_new_and_alloc)
fail_unless (data != NULL);
fail_unless (size == (640 * 480 * 4));
data[640 * 479 * 4 + 479] = 0xff;
- gst_memory_unmap (mem, data, size);
+ gst_memory_unmap (mem);
gst_memory_unref (mem);
@@ -397,51 +391,7 @@ GST_START_TEST (test_map)
fail_unless (data != NULL);
fail_unless (size == 100);
fail_unless (maxsize == maxalloc);
- ASSERT_CRITICAL (gst_memory_unmap (mem, (guint8 *) data - 1, maxsize + 1));
- gst_memory_unmap (mem, data, size);
-
- /* make smaller by unmapping less */
- data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
- fail_unless (data != NULL);
- fail_unless (size == 100);
- fail_unless (maxsize == maxalloc);
- gst_memory_unmap (mem, data, size - 1);
-
- size = gst_memory_get_sizes (mem, &offset, &maxalloc);
- fail_unless (size == 99);
- fail_unless (offset == 0);
- fail_unless (maxalloc >= 100);
-
- /* make bigger by unmapping more */
- data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
- fail_unless (data != NULL);
- fail_unless (size == 99);
- fail_unless (maxsize == maxalloc);
- gst_memory_unmap (mem, data, size + 1);
-
- size = gst_memory_get_sizes (mem, &offset, &maxalloc);
- fail_unless (size == 100);
- fail_unless (offset == 0);
- fail_unless (maxalloc >= 100);
-
- /* resize beyond the maxsize */
- data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
- fail_unless (data != NULL);
- fail_unless (size == 100);
- fail_unless (maxsize == maxalloc);
- ASSERT_CRITICAL (gst_memory_unmap (mem, data, maxsize + 1));
- gst_memory_unmap (mem, data, maxsize);
-
- /* add offset, maxsize should be smaller now */
- gst_memory_resize (mem, 1, 99);
-
- data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
- fail_unless (data != NULL);
- fail_unless (size == 99);
- fail_unless (maxsize == maxalloc - 1);
- ASSERT_CRITICAL (gst_memory_unmap (mem, data, maxsize + 1));
- gst_memory_unmap (mem, data, maxsize);
-
+ gst_memory_unmap (mem);
gst_memory_unref (mem);
}
@@ -464,52 +414,38 @@ GST_START_TEST (test_map_nested)
fail_unless (data2 == data1);
fail_unless (size2 == 100);
- /* unmap in reverse order */
- gst_memory_unmap (mem, data2, size2);
- gst_memory_unmap (mem, data1, size1);
-
- /* nested mapping */
- data1 = gst_memory_map (mem, &size1, &maxsize1, GST_MAP_READ);
- fail_unless (data1 != NULL);
- fail_unless (size1 == 100);
-
- data2 = gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READ);
- fail_unless (data2 == data1);
- fail_unless (size2 == 100);
-
- /* unmap in different order */
- gst_memory_unmap (mem, data1, size1);
- gst_memory_unmap (mem, data2, size2);
+ /* unmap */
+ gst_memory_unmap (mem);
+ gst_memory_unmap (mem);
data1 = gst_memory_map (mem, &size1, &maxsize1, GST_MAP_READ);
/* not allowed */
- ASSERT_CRITICAL (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_WRITE));
- ASSERT_CRITICAL (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READWRITE));
+ fail_if (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_WRITE));
+ fail_if (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READWRITE));
data2 = gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READ);
- gst_memory_unmap (mem, data1, size1);
- gst_memory_unmap (mem, data2, size2);
+ gst_memory_unmap (mem);
+ gst_memory_unmap (mem);
fail_unless (mem->state == 0);
data1 = gst_memory_map (mem, &size1, &maxsize1, GST_MAP_WRITE);
/* not allowed */
- ASSERT_CRITICAL (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READ));
- ASSERT_CRITICAL (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READWRITE));
+ fail_if (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READ));
+ fail_if (gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READWRITE));
data2 = gst_memory_map (mem, &size2, &maxsize2, GST_MAP_WRITE);
- gst_memory_unmap (mem, data1, size1);
- gst_memory_unmap (mem, data2, size2);
+ gst_memory_unmap (mem);
+ gst_memory_unmap (mem);
/* nothing was mapped */
- ASSERT_CRITICAL (gst_memory_unmap (mem, data2, size2));
+ ASSERT_CRITICAL (gst_memory_unmap (mem));
data1 = gst_memory_map (mem, &size1, &maxsize1, GST_MAP_READWRITE);
data2 = gst_memory_map (mem, &size2, &maxsize2, GST_MAP_READ);
- gst_memory_unmap (mem, data2, size2);
+ gst_memory_unmap (mem);
data2 = gst_memory_map (mem, &size2, &maxsize2, GST_MAP_WRITE);
- gst_memory_unmap (mem, data2, size2);
+ gst_memory_unmap (mem);
/* ut of range */
- ASSERT_CRITICAL (gst_memory_unmap (mem, (guint8 *) data1 - 1, size1));
- gst_memory_unmap (mem, data1, size1);
+ gst_memory_unmap (mem);
/* nothing was mapped */
- ASSERT_CRITICAL (gst_memory_unmap (mem, data1, size1));
+ ASSERT_CRITICAL (gst_memory_unmap (mem));
gst_memory_unref (mem);
}
@@ -535,32 +471,23 @@ GST_START_TEST (test_map_resize)
fail_unless (size == 99);
fail_unless (offset == 1);
fail_unless (maxalloc >= 100);
-
- /* unmap the buffer with original pointer and size, should restore the offset
- * and size */
- gst_memory_unmap (mem, data, 100);
+ gst_memory_unmap (mem);
size = gst_memory_get_sizes (mem, &offset, &maxalloc);
- fail_unless (size == 100);
- fail_unless (offset == 0);
+ fail_unless (size == 99);
+ fail_unless (offset == 1);
fail_unless (maxalloc >= 100);
data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
fail_unless (data != NULL);
- fail_unless (size == 100);
- fail_unless (maxsize >= 100);
-
- /* resize the buffer with unmap */
- gst_memory_unmap (mem, (guint8 *) data + 1, 99);
-
- size = gst_memory_get_sizes (mem, &offset, &maxalloc);
fail_unless (size == 99);
- fail_unless (offset == 1);
- fail_unless (maxalloc >= 100);
+ fail_unless (maxsize >= 100);
+ gst_memory_unmap (mem);
/* and larger */
data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
- gst_memory_unmap (mem, (guint8 *) data - 1, 100);
+ gst_memory_resize (mem, -1, 100);
+ gst_memory_unmap (mem);
size = gst_memory_get_sizes (mem, &offset, &maxalloc);
fail_unless (size == 100);
@@ -568,21 +495,7 @@ GST_START_TEST (test_map_resize)
fail_unless (maxalloc >= 100);
data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
- gst_memory_unmap (mem, (guint8 *) data + 1, -1);
-
- size = gst_memory_get_sizes (mem, &offset, &maxalloc);
- fail_unless (size == 99);
- fail_unless (offset == 1);
- fail_unless (maxalloc >= 100);
-
- data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
- gst_memory_unmap (mem, (guint8 *) data - 1, -1);
-
- size = gst_memory_get_sizes (mem, &offset, &maxalloc);
- fail_unless (size == 100);
- fail_unless (offset == 0);
- fail_unless (maxalloc >= 100);
-
+ gst_memory_unmap (mem);
gst_memory_unref (mem);
}
diff --git a/tests/check/gst/gstminiobject.c b/tests/check/gst/gstminiobject.c
index 237f7e40c..794da0024 100644
--- a/tests/check/gst/gstminiobject.c
+++ b/tests/check/gst/gstminiobject.c
@@ -46,12 +46,12 @@ GST_START_TEST (test_is_writable)
buffer = gst_buffer_new_and_alloc (4);
mobj = GST_MINI_OBJECT_CAST (buffer);
- fail_unless (gst_mini_object_is_writable (mobj),
+ fail_unless (gst_mini_object_try_lock (mobj, GST_LOCK_WRITE),
"A buffer with one ref should be writable");
fail_if (gst_mini_object_ref (mobj) == NULL, "Could not ref the mobj");
- fail_if (gst_mini_object_is_writable (mobj),
+ fail_if (gst_mini_object_try_lock (mobj, GST_LOCK_WRITE),
"A buffer with two refs should not be writable");
}