Lucas Meneghel Rodrigues lmr@redhat.com LinuxCon Europe 2012 November 5th, 2012
1 2 3 4
The case for automated testing Linux moves fast Thousands of new commits per week
The case for automated testing Linux moves fast Thousands of new commits per week Thousands of potential new bugs per week
The case for automated testing Linux moves fast Thousands of new commits per week Thousands of potential new bugs per week It s better if they re spot on quickly
Test soon, test frequently Linux development and deployment Months from patchset accepted to user running code
Test soon, test frequently Linux development and deployment Months from patchset accepted to user running code Submaintainers are good, but not perfect
Test soon, test frequently Linux development and deployment Months from patchset accepted to user running code Submaintainers are good, but not perfect More testing made before code gets to maintainers is a win
Open source project, containing: Userspace tools
Open source project, containing: Userspace tools Libraries
Open source project, containing: Userspace tools Libraries Test modules
Open source project, containing: Userspace tools Libraries Test modules Designed for the kernel, useful for userspace too
structure
modules Client: Executes tests in test machines
modules Client: Executes tests in test machines Server: Copies client code to the test machines
modules Client: Executes tests in test machines Server: Copies client code to the test machines Scheduler: Schedules test jobs according to user input
modules Client: Executes tests in test machines Server: Copies client code to the test machines Scheduler: Schedules test jobs according to user input Frontends: Allows users to run jobs and visualize results
Install recipe Ingredients Two machines, running Fedora 17 (or Ubuntu 12.04)
Install recipe Ingredients Two machines, running Fedora 17 (or Ubuntu 12.04) Download the install script and execute it
Install recipe Ingredients Two machines, running Fedora 17 (or Ubuntu 12.04) Download the install script and execute it Optional: Cobbler server
Install
Machine Control How to control power/serial/provisioning Console - Conmux
Machine Control How to control power/serial/provisioning Console - Conmux Provisioning - Cobbler
Machine Control How to control power/serial/provisioning Console - Conmux Provisioning - Cobbler Both can do machine power control
KVM PPC lab
Kernel testing (no machine install) from a u t o t e s t. c l i e n t. s h a r e d import g i t d e f s t e p i n i t ( ) : j o b. n e x t s t e p ( [ s t e p t e s t ] ) repo = g i t : / / g i t h u b. com/ foo / l i n u x. g i t repo = g i t. GitRepoHelper ( u r i=repo ) repo. e x e c u t e ( ) k e r n e l = j o b. k e r n e l ( repo. d e s t i n a t i o n d i r ) k e r n e l. b u i l d ( ) k e r n e l. i n s t a l l ( ) k e r n e l. boot ( ) d e f s t e p t e s t ( ) : j o b. r u n t e s t ( kernbench )
Kernel testing (machine install) c o n t r o l = s t r i n g with p r e v i o u s c o n t r o l d e f run ( machine ) : h o s t = h o s t s. c r e a t e h o s t ( machine ) p r o f i l e = Fedora17 x86 64 timeout = 3600 h o s t. m a c h i n e i n s t a l l ( p r o f i l e=p r o f i l e, timeout=timeout ) at = a u t o t e s t r e m o t e. A u t o t e s t ( h o s t ) at. run ( c o n t r o l ) j o b. p a r a l l e l s i m p l e ( run, machines )
Limitations: Embedded Lots of autotest were designed with Intel in mind: Machine provisioning
Limitations: Embedded Lots of autotest were designed with Intel in mind: Machine provisioning Boot selection
Limitations: Embedded Lots of autotest were designed with Intel in mind: Machine provisioning Boot selection Serial Console
Limitations: Embedded Lots of autotest were designed with Intel in mind: Machine provisioning Boot selection Serial Console Help needed to implement embedded
Changes in autotest (last year) Lots of work under the hood Namespace fixes and cleanups
Changes in autotest (last year) Lots of work under the hood Namespace fixes and cleanups Improved release management
Changes in autotest (last year) Lots of work under the hood Namespace fixes and cleanups Improved release management Fedora packaging work done
Changes in autotest (last year) Lots of work under the hood Namespace fixes and cleanups Improved release management Fedora packaging work done Stand alone RPC client
What now? Advanced machine scheduling
What now? Advanced machine scheduling Evolve RPC applications
What now? Advanced machine scheduling Evolve RPC applications API for automated bisecting
What now? Advanced machine scheduling Evolve RPC applications API for automated bisecting Better support for embedded/socs
What now? Advanced machine scheduling Evolve RPC applications API for automated bisecting Better support for embedded/socs You all are welcome to help
Questions?
Resources and contact http://autotest.github.com irc://irc.oftc.net/#autotest cleber@redhat.com lmr@redhat.com mailing list (autotest-kernel@redhat.com)