1 2 v4l-test: Test environment for Video For Linux Two API 3 4Release History 5--------------- 623 Jul 2009 0.17 Test cases added for VIDIOC_ENUM_FRAMESIZES and 7 VIDIOC_G_JPEGCOMP. New V4L2_PIX_FMT_* formats also 8 used in test cases. 9 6 Jul 2009 0.16 Iterate through all available inputs in VIDIOC_G_STD and 10 VIDIOC_S_STD test cases 1125 May 2009 0.15 Test cases added for VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS 12 and VIDIOC_TRY_EXT_CTRLS 13 7 May 2009 0.14 Test cases added for VIDIOC_QUERYBUF; 14 Debug functions separated 1529 Apr 2009 0.13 Added string content validation; 16 Test cases added for VIDIOC_REQBUFS 1719 Apr 2009 0.12 Test cases added for VIDIOC_S_FMT; 18 NULL parameter test suite split to read only, write only 19 and write/read ioctl suite; 20 More verbose debug output in VIDIOC_S_FREQUENCY and in some 21 other test cases; 22 More strict check added for strings in different test cases 23 9 Apr 2009 0.11 Test cases added for VIDIOC_G_OUTPUT, VIDIOC_S_OUTPUT, 24 VIDIOC_G_FMT, VIDIOC_G_SLICED_VBI_CAP, VIDIOC_QUERYMENU; 25 Cleaned up ret and errno variable names; 26 Separated the NULL parameter test cases to a spearated testsuite 27 and reworked most of the NULL parameter test cases; 28 Added camera enabling through /sys/devices/platform/eeepc/camera; 29 Added results page to documentation; 30 Follow kernel API changes in video_dummy.ko 3118 Mar 2009 0.10 Test cases added for VIDIOC_G_PARM; 32 Duplicated test for V4L2_BUF_TYPE_VIDEO_CAPTURE removed in 33 VIDIOC_ENUM_FMT test 3414 Mar 2009 0.9 Test cases added for VIDIOC_S_CROP; 35 Test steps added for VIDIOC_S_CTRL 3622 Feb 2009 0.8 Test cases added for VIDIOC_G_CROP, VIDIOC_G_CTRL and VIDIOC_S_CTRL 37 9 Feb 2009 0.7 Test cases added for VIDIOC_G_AUDIO, VIDIOC_G_AUDOUT, 38 VIDIOC_S_AUDIO and VIDIOC_G_CROP; 39 Added video_dummy kernel driver to verify the test 40 environment; 41 Some cleanup 42 4 Feb 2009 0.6 Test cases added for VIDIOC_G_AUDIO, VIDIOC_G_AUDOUT, 43 VIDIOC_G_MODULATOR, VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY 44 and VIDIOC_S_FREQUENCY 4531 Jan 2009 0.5 Test cases added for VIDIOC_QUERYSTD, VIDIOC_G_FREQUENCY 46 and VIDIOC_G_TUNER 4724 Jan 2009 0.4 Test cases for MAX_EM28XX_INPUT, MAX_EM28XX_TVNORMS removed; 48 some typos fixed 49 4 Jan 2008 0.3 Test cases for VIDIOC_ENUMOUTPUT, VIDIOC_ENUMAUDOUT, 50 VIDIOC_QUERYCTRL added; 51 New test cases for VIDIOC_ENUMAUDIO, VIDIOC_ENUM_FMT, 52 VIDIOC_ENUM_STD 5322 Dec 2008 0.2 Test cases with NULL parameter added; 54 Test cases for VIDIOC_CROPCAP added 5518 Dec 2008 0.1 First release 56 57Written by M�rton N�meth <nm127@freemail.hu> 58Released under GPL 59 60What is this? 61------------- 62v4l-test is a test environment for V4L2 drivers. The V4L2 drivers 63are running under Linux in kernel space. This test environment is running 64in userspace and tries what normal video application would do. It also 65tries some things which are supposed to test the error handling mechanisms 66of a V4L2 driver. These are the "invalid test cases". 67 68The V4L2 API only covers webcams and analog tuner cards, the digital broadcast 69is out of the scope of V4L2 API so it is also out of the scope of this test 70environment. See Linux DVB API at http://linuxtv.org/docs/dvbapi/dvbapi.html 71for digital broadcast and Chapter 6.3 "Relation of V4L2 to other Linux multimedia APIs" 72in V4L2 specification. 73 74How to build? 75------------- 76To build the test environment you will need a C compiler, "make" and the 77CUnit development files installed. Just type "make" and the test environment 78is ready. 79 80How to run? 81----------- 82You need to have a video device (i.e. webcam, tuner card, etc.) connected 83to your system and available under /dev/video0. If you don't have any 84hardware device available, you can still test the "Virtual Video Driver". 85To compile this you need to compile your kernel with CONFIG_VIDEO_VIVI=m 86under: 87 88 -> Device Drivers 89 -> Multimedia devices 90 -> Video For Linux 91 -> Video capture adapters 92 -> Virtual Video Driver 93 94At this point you can execute v4l-test. 95 96Video for Linux Two Specification 97--------------------------------- 98The V4L2 API specification can be found at http://v4l2spec.bytesex.org/spec/ . 99Revision 0.42 of V4L2 is the base for this test environment. 100 101Code Coverage 102------------- 103The code coverage shows which lines of the code were executed and how many 104times. The measurement results gives you a feedback about the quality of 105the test cases. 106You can measure the code coverage of a kernel module with the gocv and lcov 107softwares. See http://ltp.sourceforge.net/coverage/gcov.php and 108http://ltp.sourceforge.net/coverage/lcov.php for details. 109 110Current status 111-------------- 112Currently all test are running and evaluated automatically. This might 113change in future if we want to test for example plugging and unplugging 114a USB video device or ask the user if a received picture make sense or not. 115 116See doc/index.html about how much of the specification is covered by the 117different test cases. 118 119See also 120-------- 121See also doc/index.html for further references and recommended readings. 122 123Feedbacks 124--------- 125Any feedbacks, comments, ideas, etc. are welcome at the author's 126email address: M�rton N�meth <nm127@freemail.hu>. 127