diff options
Diffstat (limited to 'tests/check/gst')
-rw-r--r-- | tests/check/gst/gstbuffer.c | 33 | ||||
-rw-r--r-- | tests/check/gst/gstmemory.c | 177 | ||||
-rw-r--r-- | tests/check/gst/gstminiobject.c | 4 |
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"); } |