Image tests: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
== Using the testimage class ==
== About the the testimage class ==


The build system has the ability to run a series of automated tests for qemu images.  
The build system has the ability to run a series of automated tests for '''qemu images'''.  
All the tests are actually commands run on the target image over ssh. (and the tests themselves are written in Python, using unittest as a test runner)
 
All the tests are actually commands '''run on the target system over ssh'''.  
 
The tests themselves are written in Python, making use of the unittest module.


The class that enables this is testimage.bbclass.
The class that enables this is testimage.bbclass.


== Enabling and running the tests ==


To use it add "testimage" to global inherit and call your target image with -c testimage, like this:
To use it add "testimage" to global inherit and call your target image with -c testimage, like this:
Line 12: Line 17:
* then call "bitbake core-image-sato -c testimage". That will run a standard suite of tests.
* then call "bitbake core-image-sato -c testimage". That will run a standard suite of tests.


You can change the tests run by appending or overrding the TEST_SUITES variable in local.conf
The test names are the module names in meta/lib/oeqa/runtime.


Each name in TEST_SUITES represents a required test for the image. (no skipping allowed)
The tests themselves are the modules found meta/lib/oeqa/runtime.


Appending "auto" means that it will try to run all tests that are suitable for the image (each test decides that on it's own).
You can change the tests run by appending or overrding the TEST_SUITES variable in local.conf. Each name in TEST_SUITES represents a required test for the image. That means that no skipping is allowed (even if the test isn't suitable for the image, e.g running the rpm tests on a images with no rpm). Appending "auto" to TEST_SUITES means that it will try to run all tests that are suitable for the image (each test decides that on it's own).


Note that order in TEST_SUITES is important (it's the order tests run) and it influences tests dependencies.
Note that the '''order in TEST_SUITES''' is important (it's the order modules run) and it influences tests dependencies. That means that tests that depend on other tests (e.g ssh depends on the ping test) should be added last. Each module can have multiple classes with multiple test methods (and Python unittest rules apply here).

Revision as of 13:04, 12 August 2013

About the the testimage class

The build system has the ability to run a series of automated tests for qemu images.

All the tests are actually commands run on the target system over ssh.

The tests themselves are written in Python, making use of the unittest module.

The class that enables this is testimage.bbclass.


Enabling and running the tests

To use it add "testimage" to global inherit and call your target image with -c testimage, like this:

  • for example build a qemu core-image-sato: bitbake core-image-sato
  • add INHERIT += "testimage" in local.conf
  • then call "bitbake core-image-sato -c testimage". That will run a standard suite of tests.


The tests themselves are the modules found meta/lib/oeqa/runtime.

You can change the tests run by appending or overrding the TEST_SUITES variable in local.conf. Each name in TEST_SUITES represents a required test for the image. That means that no skipping is allowed (even if the test isn't suitable for the image, e.g running the rpm tests on a images with no rpm). Appending "auto" to TEST_SUITES means that it will try to run all tests that are suitable for the image (each test decides that on it's own).

Note that the order in TEST_SUITES is important (it's the order modules run) and it influences tests dependencies. That means that tests that depend on other tests (e.g ssh depends on the ping test) should be added last. Each module can have multiple classes with multiple test methods (and Python unittest rules apply here).