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

Reply via email to