Meego Wiki
Views

Quality/TestSuite/Video Playback Driver Test Specification

From MeeGo wiki
< Quality | TestSuite(Difference between revisions)
Jump to: navigation, search
m
 
(4 intermediate revisions not shown)
Line 2: Line 2:
The X Window System (commonly X or X11) is a computer software system and network protocol that provides a graphical user interface (GUI). Base X Window System is extended by X Extension libraries (mainly from freedesktop.org and XFree86 projects).
The X Window System (commonly X or X11) is a computer software system and network protocol that provides a graphical user interface (GUI). Base X Window System is extended by X Extension libraries (mainly from freedesktop.org and XFree86 projects).
-
The blts-xvideo test driver (0.0.7) includes functional and performance tests specifically for XVideo extension.
+
The blts-xvideo test driver (0.0.9) includes functional and performance tests specifically for XVideo extension.
== Test Coverage ==
== Test Coverage ==
Line 19: Line 19:
===  Hardware Coverage ===  
===  Hardware Coverage ===  
-
Mainly display devices (and GPU).  
+
Mainly display devices and GPU.
== Running the tests ==
== Running the tests ==
Line 26: Line 26:
The test environment must have following packages installed:
The test environment must have following packages installed:
-
;*libbltscommon1  
+
;*[[../BLTS Common Library | libbltscommon1]]
-
;*libbltspixelformat1
+
;*[[../Pixel Format Library‎ | libbltspixelformat1]]
;*libX11  
;*libX11  
;*libXv
;*libXv
Line 33: Line 33:
=== Building packages ===
=== Building packages ===
-
The xvideo test package comes with a packaging script that can be used to build tarball out of the sources, RPM package or Debian package. To build RPM package, in the root directory execute command:
+
The build environment must have the following packages installed:
-
<pre>
+
;*[[../BLTS Common Library | libbltscommon-devel]]
-
./pack.sh -r
+
;*[[../Pixel Format Library‎ | libbltspixelformat-devel]]
-
</pre>
+
-
 
+
-
To get packaging script help, execute command:
+
-
 
+
-
<pre>
+
-
./pack.sh -h
+
-
</pre>
+
-
 
+
-
The building environment requires the following RPM packages installed:
+
-
;*libbltscommon-devel  
+
-
;*libbltspixelformat-devel
+
;*libX11-devel
;*libX11-devel
;*libXv-devel
;*libXv-devel
 +
 +
{{:Quality/TestSuite/Building_BLTS_Packages}}
=== Configuration package ===
=== Configuration package ===
Line 72: Line 63:
<u>Arguments: </u>
<u>Arguments: </u>
-
 
+
{{:Quality/TestSuite/Common_General_Switch}}
-
{|cellspacing="0" border="1"
+
-
!|Switch
+
-
!|Function
+
-
 
+
-
|-
+
-
|| -l  || Used log file, Used log file, default blts_v4l2_log.txt
+
-
|-
+
-
|| -e || Execute single or multiple selected tests, for example -e 1,4,5.
+
-
|-
+
-
|| -en || Execute test by name, for example -en "My test X" 
+
-
|-
+
-
|| -s || Show list of all tests
+
-
|-
+
-
|| -C || Used configuration file and path, for example /etc/blts/blts-bluetooth-tests.cnf
+
-
|-
+
-
|| -? || Help message 
+
-
|-
+
-
|| -xml, -axml || Create result XML. -axml appends results to an existing XML file.
+
-
|-
+
-
|| -auto || Silent logging for test automation. Only the results are printed to stdout.
+
-
|-
+
-
|| -v || Verbose logging (default)
+
-
|-
+
-
|| -vv || Even more verbose logging
+
-
|}
+
Test cases must be run with root privileges.  
Test cases must be run with root privileges.  
Line 152: Line 118:
===  Configuration file examples ===  
===  Configuration file examples ===  
-
Configuration file contains used parameters for benchmarks. To run test case with variable data you need to specify where configuration file is located or if no configuration file is given, test driver tries to use default /etc/blts/blts-xvideo-tests.cnf
 
-
To run "X11-XVideo PutImage with QueryBestSize" case you can use:  
+
Configuration file contains used parameters for the test cases, such as used xvideo adaptor, port attributes etc (see below). blts-xvideo-tests-config-example package contains an example configuration file. Modify the example configuration to match with the platform/drivers being tested if needed. To run test cases you need to specify where configuration file is located or if no configuration file is given, test driver tries to use default /etc/blts/blts-xvideo-tests.cnf
-
<code>blts-xvideo-tests -l /var/log/tests/X11-XVideo_PutImage_with_QueryBestSize.log -en "X11-XVideo PutImage with QueryBestSize" -C example-blts-xvideo.cnf</code>
+
 
 +
For example, to run "X11-XVideo PutImage with QueryBestSize" case with your own configuration file you can use:  
 +
 
 +
<code>blts-xvideo-tests -l /var/log/tests/X11-XVideo_PutImage_with_QueryBestSize.log -en "X11-XVideo PutImage with QueryBestSize" -C my-example-blts-xvideo.cnf</code>
 +
 
 +
Example of configuration file parameters;
<pre>
<pre>

Latest revision as of 10:25, 21 January 2011

Contents

Introduction

The X Window System (commonly X or X11) is a computer software system and network protocol that provides a graphical user interface (GUI). Base X Window System is extended by X Extension libraries (mainly from freedesktop.org and XFree86 projects).

The blts-xvideo test driver (0.0.9) includes functional and performance tests specifically for XVideo extension.

Test Coverage

The test driver currently covers X11 XVideo extension:

  • XVideo - Presence check: Simple XVideo extension presence check
  • XVideo - Enumerate adapters: List all information from all XVideo adapters
  • XVideo - XvPutImage benchmark: Tests XvPutImage performance and functionality. Uses various resolutions, pixel formats and port attributes depending on configuration file.
  • XVideo - XvShmPutImage benchmark: Tests XvShmPutImage performance and functionality. Uses various resolutions, pixel formats and port attributes depending on configuration file.
  • XVideo - PutImage with QueryBestSize: Functional test for QueryBestImage. Queries best size with different input and output resolutions and tries to display images with the returned size.
  • XVideo - Notify events: Functional test for XvPortNotify/XvVideoNotify. Requests events and tries to trigger events from a different process

Software Coverage

Current coverage for tests:

Hardware Coverage

Mainly display devices and GPU.

Running the tests

Hardware setup and test environment

The test environment must have following packages installed:

Building packages

The build environment must have the following packages installed:

The source package includes the pack.sh script, which is used for building RPM and Debian packages and source tar packages. To build an RPM package with the script, execute this command in the top level source directory of asset:

./pack.sh -r

To get help about the packaging script, execute

./pack.sh -h

The asset can also be built manually by executing:

./autogen.sh
./configure
make

Configuration package

The blts-xvideo-tests package is dependent on blts-xvideo-tests-config configuration file package. The packaging script pack.sh creates RPM package blts-xvideo-tests-config-example_{version}.rpm and it must be installed first. The configuration file /etc/blts/blts-xvideo-tests.cnf is copied in the test device during RPM installation.

The configuration file package can be installed in the device by executing the command:

rpm -ivh blts-xvideo-tests-config-example_{version}.rpm

Test asset specific instructions

The test package can be installed in the device by executing the command:

rpm -ivh blts-xvideo-tests_{version}.rpm 

Test case arguments

Arguments:

General Switch Function
-l Used log file
-e Execute single or multiple selected tests, for example -e 1,4,5.
-en Execute test by name, for example -en "My test X"
-s Show list of all tests
-C Used configuration file
-? Help message
-xml, -axml Create result XML. -axml appends results to an existing XML file.
-auto Silent logging for test automation. Only the results are printed to stdout.
-v Verbose logging (default)
-vv Even more verbose logging

Test cases must be run with root privileges.

Test cases

Test case execution notices:

Case name Notice
XVideo - Presence check verified components are listed in file blts-xvideo-req-files.cfg
XVideo - Enumerate adapters
XVideo - XvPutImage benchmark
XVideo - XvShmPutImage benchmark
XVideo - PutImage with QueryBestSize
XVideo - Notify events


Test case descriptions and execution commands:

  • XVideo - Presence check
* Simple XVideo extension presence check
* $ blts-xvideo-tests -en "XVideo - Presence check"
  • XVideo - Enumerate adapters
* List all information from all XVideo adapters
* $ blts-xvideo-tests -en "XVideo - Enumerate adapters"
  • XVideo - XvPutImage benchmark
* Tests XvPutImage performance and functionality.
* Uses various resolutions, pixel formats and port attributes depending on configuration file.
* $ blts-xvideo-tests -en "XVideo - XvPutImage benchmark"
  • XVideo - XvShmPutImage benchmark
* Tests XvShmPutImage performance and functionality.
* Uses various resolutions, pixel formats and port attributes depending on configuration file.
* $ blts-xvideo-tests -en "XVideo - XvShmPutImage benchmark"
  • XVideo - PutImage with QueryBestSize
* Functional test for QueryBestImage.
* Queries best size with different input and output resolutions and tries to display images with the returned size.
* $ blts-xvideo-tests -en "XVideo - PutImage with QueryBestSize"
  • XVideo - Notify events
* Functional test for XvPortNotify/XvVideoNotify. Requests events and tries to trigger events from a different process.
* $ blts-xvideo-tests -en "XVideo - Notify events"


Configuration file examples

Configuration file contains used parameters for the test cases, such as used xvideo adaptor, port attributes etc (see below). blts-xvideo-tests-config-example package contains an example configuration file. Modify the example configuration to match with the platform/drivers being tested if needed. To run test cases you need to specify where configuration file is located or if no configuration file is given, test driver tries to use default /etc/blts/blts-xvideo-tests.cnf

For example, to run "X11-XVideo PutImage with QueryBestSize" case with your own configuration file you can use:

blts-xvideo-tests -l /var/log/tests/X11-XVideo_PutImage_with_QueryBestSize.log -en "X11-XVideo PutImage with QueryBestSize" -C my-example-blts-xvideo.cnf

Example of configuration file parameters;

######################
# General parameters #
######################

# defines generated video material resolution
[parameter]
   name input_resolution
   const "800x600" "1600x1200"
[end_parameter]

# if output resolution is 0x0, resolution will be root window's size
[parameter]
   name output_resolution
   const "0x0" "1600x1200"
[end_parameter]

# duration of tests
[parameter]
   name duration
   const 5
[end_parameter]

# used X screen(s)
[parameter]
   name screen
   const 0
[end_parameter]

# used XVideo adaptor(s)
[parameter]
   name adaptor
   const 0
[end_parameter]

# Possible choices for test images:
# random: three frames of random pixels
# vh_lines: two frames, horizontal and vertical lines
# checkerboard: two frames, b/w checkerboard
# moving_arrow: white arrow moving from left to right and pointing up
# fps_check: two frames, blocks change between black and white
# colorgradient: red, green and blue gradients
# graygradient: full screen grayscale, from black (left) to right
# colorgradient_scroll: red, green and blue gradients, moves from left to right
# graygradient_scroll: full screen grayscale, moves from left to right
[parameter]
   name test_images
   const "colorgradient_scroll"
[end_parameter]

# used pixel formats (fourcc)
[parameter]
   name format
   const "YUY2" "YV12" "I420" "UYVY"
[end_parameter]

# used port attributes for XVideo adaptor
[parameter]
   name port_attributes
   const "XV_VSYNC 0 XV_BRIGHTNESS 0 XV_CONTRAST 0"
[end_parameter]

# These are for QueryBestSize and Notify events -tests

[parameter]
   name fute_format
   const "YUY2"
[end_parameter]

[parameter]
   name fute_port_attributes
   const "XV_VSYNC 0"
[end_parameter]

Module Design and Architecture

The test module can be compiled to self-sufficient command line program. Both Debian and RPM packaging is also provided.

Architecture diagram

References

X11 X11 home page
freedesktop.org freedesktop.org home page
XFree86 XFree86 home page

Change History

Version Date Handled By Status Comments
0.1 22-sep-2010 Iekku Huttunen Draft Page created
0.2 8-Dec-2010 Aki Nyman Draft Documentation updated to refer blts-xvideo test package 0.0.7
Personal tools