This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/v4l-utils.git tree:
Subject: v4l2-compliance: add first simple QUERYBUF tests. Author: Hans Verkuil <[email protected]> Date: Wed Sep 12 17:04:28 2012 +0200 These test just check whether QUERYBUF can be called after REQBUFS or CREATE_BUFS. Signed-off-by: Hans Verkuil <[email protected]> (cherry picked from commit 3d894d9ddfc09dcec38f6e5106c9b263482c3ddb) Signed-off-by: Gregor Jasny <[email protected]> utils/v4l2-compliance/v4l2-compliance.cpp | 2 +- utils/v4l2-compliance/v4l2-test-buffers.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletions(-) --- http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=7b7b6103bb9e7861e86139724474e50438890f7e diff --git a/utils/v4l2-compliance/v4l2-compliance.cpp b/utils/v4l2-compliance/v4l2-compliance.cpp index 301837b..57a1f0d 100644 --- a/utils/v4l2-compliance/v4l2-compliance.cpp +++ b/utils/v4l2-compliance/v4l2-compliance.cpp @@ -677,7 +677,7 @@ int main(int argc, char **argv) /* Buffer ioctls */ printf("Buffer ioctls:\n"); - printf("\ttest VIDIOC_REQBUFS/CREATE_BUFS: %s\n", ok(testReqBufs(&node))); + printf("\ttest VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: %s\n", ok(testReqBufs(&node))); printf("\ttest read/write: %s\n", ok(testReadWrite(&node))); printf("\n"); diff --git a/utils/v4l2-compliance/v4l2-test-buffers.cpp b/utils/v4l2-compliance/v4l2-test-buffers.cpp index fec18a8..c52f06c 100644 --- a/utils/v4l2-compliance/v4l2-test-buffers.cpp +++ b/utils/v4l2-compliance/v4l2-test-buffers.cpp @@ -31,6 +31,29 @@ #include <sys/ioctl.h> #include "v4l2-compliance.h" +static int testQueryBuf(struct node *node, unsigned type, unsigned count) +{ + struct v4l2_buffer buf; + int ret; + unsigned i; + + memset(&buf, 0, sizeof(buf)); + buf.type = type; + for (i = 0; i < count; i++) { + buf.index = i; + fail_on_test(doioctl(node, VIDIOC_QUERYBUF, &buf)); + fail_on_test(buf.index != i); + fail_on_test(buf.type != type); + fail_on_test(buf.flags & (V4L2_BUF_FLAG_QUEUED | + V4L2_BUF_FLAG_DONE | + V4L2_BUF_FLAG_ERROR)); + } + buf.index = count; + ret = doioctl(node, VIDIOC_QUERYBUF, &buf); + fail_on_test(ret != EINVAL); + return 0; +} + int testReqBufs(struct node *node) { struct v4l2_requestbuffers bufs; @@ -86,6 +109,7 @@ int testReqBufs(struct node *node) fail_on_test(bufs.memory != V4L2_MEMORY_MMAP); fail_on_test(bufs.type != i); fail_on_test(doioctl(node, VIDIOC_REQBUFS, &bufs)); + testQueryBuf(node, i, bufs.count); } if (userptr_valid) { bufs.count = 1; @@ -95,6 +119,7 @@ int testReqBufs(struct node *node) fail_on_test(bufs.memory != V4L2_MEMORY_USERPTR); fail_on_test(bufs.type != i); fail_on_test(doioctl(node, VIDIOC_REQBUFS, &bufs)); + testQueryBuf(node, i, bufs.count); } if (can_rw) { @@ -129,6 +154,7 @@ int testReqBufs(struct node *node) fail_on_test(cbufs.count == 0); fail_on_test(cbufs.memory != bufs.memory); fail_on_test(cbufs.format.type != i); + testQueryBuf(node, i, cbufs.count); cbufs.count = 1; fail_on_test(doioctl(node, VIDIOC_CREATE_BUFS, &cbufs)); if (!node->is_m2m) { _______________________________________________ linuxtv-commits mailing list [email protected] http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits
