Patchwork [RFC,0/8] Proposed implementation of a new runtime tests framework

login
register
mail settings
Submitter Stanacar, StefanX
Date June 28, 2013, 10:04 a.m.
Message ID <cover.1372413711.git.stefanx.stanacar@intel.com>
Download mbox
Permalink /patch/52543/
State New
Headers show

Pull-request

git://mirror.rb.intel.com/git.yoctoproject.org/poky-contrib stefans/oeqa5

Comments

Stanacar, StefanX - June 28, 2013, 10:04 a.m.
Hello,

This is the proposed implementation of a new runtime tests framework based on python unittest. 
It's mean to ease qemu image testing and encourage developers to add more tests similar to the example tests provided (all tests are basically commands ran over ssh)

You can try it out like this:
 - first build a qemu core-image-sato (a minimal wouldn't be interesting at all)
 - add INHERIT += "testimage" in local.conf
 - then bitbake core-image-sato -c testimage. That will run a standard suite of tests.

You can set TEST_SUITES = "ping ssh <test name>" in local.conf to force run only certain tests (order matters here, it's the order in which tests run). You can also append "auto" and it will also run whatever tests are suitable for the image (if that was a sato-sdk image and you set TEST_SUITE = "ping ssh rpm auto" you force run ping, ssh and rpm but you also get smart, connman and gcc tests).

Check the task log (log.do_testimage) in WORKDIR to see the results. Also a ssh log (what command is running, output and return codes) and qemu boot log are kept in WORKDIR/testimage/

There are some areas for improvement/limitations right now:
 - a better way of getting the list of installed packages in a image
 - qemu is started with the -snapshot option, we should create a copy of the original rootfs instead.
 - when using TEST_SUITES = "auto" there is no dependency at all between tests (rpm would run before ssh test), so better use TEST_SUITES = "ping ssh auto"
 - better logging and error reporting for qemu problems (runqemu erros, qemu doesn't start, etc)
 - more helper methods for tests
 - others I can't think of right now :)

I hope this is going in the right direction and we could improve from here.
Comments and feedback are most welcome!

Regards,
Stefan



The following changes since commit 042203531b10b37ac9a8201b376f5dec403e51d8:

  sanity.bbclass: Fix COREBASE sanity tests (2013-06-27 12:48:56 +0100)

are available in the git repository at:

  git://mirror.rb.intel.com/git.yoctoproject.org/poky-contrib stefans/oeqa5

for you to fetch changes up to e6e567982f4b28822afdc8ea55401513df7c9466:

  lib/oeqa/runtime: add gcc test (2013-06-28 13:00:45 +0300)

----------------------------------------------------------------
Radu Moisan (2):
      lib/oeqa/utils/qemurunner.py: class to handle qemu instance
      lib/oeqa/utils/decorators.py: decorators for test methods

Stefan Stanacar (6):
      classes/testimage.bbclass: new class for image tests
      lib/oeqa/oetest.py: base module for all runtime unittests
      lib/oeqa/utils/sshcontrol.py: helper module for running remote commands
      lib/oeqa/utils/oetelnetlib.py: override Telnet class to use Unix domain sockets
      lib/oeqa/runtime: image sanity tests
      lib/oeqa/runtime: add gcc test

 meta/classes/testimage.bbclass           |  95 ++++++++++++++++++
 meta/lib/oeqa/__init__.py                |   0
 meta/lib/oeqa/oetest.py                  |  94 ++++++++++++++++++
 meta/lib/oeqa/runtime/__init__.py        |   0
 meta/lib/oeqa/runtime/connman.py         |  34 +++++++
 meta/lib/oeqa/runtime/dmesg.py           |  10 ++
 meta/lib/oeqa/runtime/files/test.c       |  26 +++++
 meta/lib/oeqa/runtime/files/testmakefile |   5 +
 meta/lib/oeqa/runtime/gcc.py             |  36 +++++++
 meta/lib/oeqa/runtime/multilib.py        |  14 +++
 meta/lib/oeqa/runtime/ping.py            |  11 +++
 meta/lib/oeqa/runtime/rpm.py             |  25 +++++
 meta/lib/oeqa/runtime/smart.py           |  23 +++++
 meta/lib/oeqa/runtime/ssh.py             |  16 ++++
 meta/lib/oeqa/utils/__init__.py          |   0
 meta/lib/oeqa/utils/decorators.py        |  40 ++++++++
 meta/lib/oeqa/utils/oetelnetlib.py       |  49 ++++++++++
 meta/lib/oeqa/utils/qemurunner.py        | 160 +++++++++++++++++++++++++++++++
 meta/lib/oeqa/utils/sshcontrol.py        | 100 +++++++++++++++++++
 scripts/runqemu                          |   2 +-
 20 files changed, 739 insertions(+), 1 deletion(-)
 create mode 100644 meta/classes/testimage.bbclass
 create mode 100644 meta/lib/oeqa/__init__.py
 create mode 100644 meta/lib/oeqa/oetest.py
 create mode 100644 meta/lib/oeqa/runtime/__init__.py
 create mode 100644 meta/lib/oeqa/runtime/connman.py
 create mode 100644 meta/lib/oeqa/runtime/dmesg.py
 create mode 100644 meta/lib/oeqa/runtime/files/test.c
 create mode 100644 meta/lib/oeqa/runtime/files/testmakefile
 create mode 100644 meta/lib/oeqa/runtime/gcc.py
 create mode 100644 meta/lib/oeqa/runtime/multilib.py
 create mode 100644 meta/lib/oeqa/runtime/ping.py
 create mode 100644 meta/lib/oeqa/runtime/rpm.py
 create mode 100644 meta/lib/oeqa/runtime/smart.py
 create mode 100644 meta/lib/oeqa/runtime/ssh.py
 create mode 100644 meta/lib/oeqa/utils/__init__.py
 create mode 100644 meta/lib/oeqa/utils/decorators.py
 create mode 100644 meta/lib/oeqa/utils/oetelnetlib.py
 create mode 100644 meta/lib/oeqa/utils/qemurunner.py
 create mode 100644 meta/lib/oeqa/utils/sshcontrol.py

Radu Moisan (2):
  lib/oeqa/utils/qemurunner.py: class to handle qemu instance
  lib/oeqa/utils/decorators.py: decorators for test methods

Stefan Stanacar (6):
  classes/testimage.bbclass: new class for image tests
  lib/oeqa/oetest.py: base module for all runtime unittests
  lib/oeqa/utils/sshcontrol.py: helper module for running remote
    commands
  lib/oeqa/utils/oetelnetlib.py: override Telnet class to use Unix
    domain sockets
  lib/oeqa/runtime: image sanity tests
  lib/oeqa/runtime: add gcc test

 meta/classes/testimage.bbclass           |  95 ++++++++++++++++++
 meta/lib/oeqa/__init__.py                |   0
 meta/lib/oeqa/oetest.py                  |  94 ++++++++++++++++++
 meta/lib/oeqa/runtime/__init__.py        |   0
 meta/lib/oeqa/runtime/connman.py         |  34 +++++++
 meta/lib/oeqa/runtime/dmesg.py           |  10 ++
 meta/lib/oeqa/runtime/files/test.c       |  26 +++++
 meta/lib/oeqa/runtime/files/testmakefile |   5 +
 meta/lib/oeqa/runtime/gcc.py             |  36 +++++++
 meta/lib/oeqa/runtime/multilib.py        |  14 +++
 meta/lib/oeqa/runtime/ping.py            |  11 +++
 meta/lib/oeqa/runtime/rpm.py             |  25 +++++
 meta/lib/oeqa/runtime/smart.py           |  23 +++++
 meta/lib/oeqa/runtime/ssh.py             |  16 ++++
 meta/lib/oeqa/utils/__init__.py          |   0
 meta/lib/oeqa/utils/decorators.py        |  40 ++++++++
 meta/lib/oeqa/utils/oetelnetlib.py       |  49 ++++++++++
 meta/lib/oeqa/utils/qemurunner.py        | 160 +++++++++++++++++++++++++++++++
 meta/lib/oeqa/utils/sshcontrol.py        | 100 +++++++++++++++++++
 scripts/runqemu                          |   2 +-
 20 files changed, 739 insertions(+), 1 deletion(-)
 create mode 100644 meta/classes/testimage.bbclass
 create mode 100644 meta/lib/oeqa/__init__.py
 create mode 100644 meta/lib/oeqa/oetest.py
 create mode 100644 meta/lib/oeqa/runtime/__init__.py
 create mode 100644 meta/lib/oeqa/runtime/connman.py
 create mode 100644 meta/lib/oeqa/runtime/dmesg.py
 create mode 100644 meta/lib/oeqa/runtime/files/test.c
 create mode 100644 meta/lib/oeqa/runtime/files/testmakefile
 create mode 100644 meta/lib/oeqa/runtime/gcc.py
 create mode 100644 meta/lib/oeqa/runtime/multilib.py
 create mode 100644 meta/lib/oeqa/runtime/ping.py
 create mode 100644 meta/lib/oeqa/runtime/rpm.py
 create mode 100644 meta/lib/oeqa/runtime/smart.py
 create mode 100644 meta/lib/oeqa/runtime/ssh.py
 create mode 100644 meta/lib/oeqa/utils/__init__.py
 create mode 100644 meta/lib/oeqa/utils/decorators.py
 create mode 100644 meta/lib/oeqa/utils/oetelnetlib.py
 create mode 100644 meta/lib/oeqa/utils/qemurunner.py
 create mode 100644 meta/lib/oeqa/utils/sshcontrol.py
Otavio Salvador - June 28, 2013, 10:06 p.m.
On Fri, Jun 28, 2013 at 7:04 AM, Stefan Stanacar
<stefanx.stanacar@intel.com> wrote:
...
> There are some areas for improvement/limitations right now:
>  - a better way of getting the list of installed packages in a image
>  - qemu is started with the -snapshot option, we should create a copy of the original rootfs instead.
>  - when using TEST_SUITES = "auto" there is no dependency at all between tests (rpm would run before ssh test), so better use TEST_SUITES = "ping ssh auto"
>  - better logging and error reporting for qemu problems (runqemu erros, qemu doesn't start, etc)
>  - more helper methods for tests
>  - others I can't think of right now :)

Did you think about adding something like an overidable set of hooks
which starts, setup image and shutdown the machine? This would allow
same framework to be used for real hardware test.

Regards,

--
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750
Paul Eggleton - June 28, 2013, 10:29 p.m.
On Friday 28 June 2013 19:06:04 Otavio Salvador wrote:
> Did you think about adding something like an overidable set of hooks
> which starts, setup image and shutdown the machine? This would allow
> same framework to be used for real hardware test.

Yes, we did think about this; the way this would be done would be to simply 
swap out the QemuRunner instance at runtime with some other class that has the 
same interface which would provision a real machine. However there is no 
established framework for doing the latter, and at the moment we just want to 
concentrate on getting runtime tests working. As long as the tests themselves 
know as little as possible about the machine they are running in then 
switching over to real hardware is pretty straightforward, and we've tried to 
design things in that manner.

Cheers,
Paul
Saul Wold - July 4, 2013, 6:51 a.m.
On 06/28/2013 03:04 AM, Stefan Stanacar wrote:
>
> Hello,
>
> This is the proposed implementation of a new runtime tests framework based on python unittest.
> It's mean to ease qemu image testing and encourage developers to add more tests similar to the example tests provided (all tests are basically commands ran over ssh)
>
> You can try it out like this:
>   - first build a qemu core-image-sato (a minimal wouldn't be interesting at all)
>   - add INHERIT += "testimage" in local.conf
>   - then bitbake core-image-sato -c testimage. That will run a standard suite of tests.
>
> You can set TEST_SUITES = "ping ssh <test name>" in local.conf to force run only certain tests (order matters here, it's the order in which tests run). You can also append "auto" and it will also run whatever tests are suitable for the image (if that was a sato-sdk image and you set TEST_SUITE = "ping ssh rpm auto" you force run ping, ssh and rpm but you also get smart, connman and gcc tests).
>
> Check the task log (log.do_testimage) in WORKDIR to see the results. Also a ssh log (what command is running, output and return codes) and qemu boot log are kept in WORKDIR/testimage/
>
> There are some areas for improvement/limitations right now:
>   - a better way of getting the list of installed packages in a image
>   - qemu is started with the -snapshot option, we should create a copy of the original rootfs instead.
>   - when using TEST_SUITES = "auto" there is no dependency at all between tests (rpm would run before ssh test), so better use TEST_SUITES = "ping ssh auto"
>   - better logging and error reporting for qemu problems (runqemu erros, qemu doesn't start, etc)
>   - more helper methods for tests
>   - others I can't think of right now :)
>
> I hope this is going in the right direction and we could improve from here.
> Comments and feedback are most welcome!
>

Tired this out today and got the following:
> ERROR: Function failed: Failed to start qemu. You should check the task log and the qemu boot log (qemu log is /srv/ssd/sgw/builds/world/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/testimage/qemu_boot_log.20130704065001)
> ERROR: Logfile of failure stored in: /srv/ssd/sgw/builds/world/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/temp/log.do_testimage.18354
> Log data follows:
> | DEBUG: Executing python function do_testimage
> | NOTE: Test modules  ['oeqa.runtime.ping', 'oeqa.runtime.ssh', 'oeqa.runtime.connman', 'oeqa.runtime.rpm', 'oeqa.runtime.smart', 'oeqa.runtime.xorg', 'oeqa.runtime.dmesg']
> | NOTE: DISPLAY value: None
> | NOTE: rootfs file: /srv/ssd/sgw/builds/world/tmp/deploy/images/core-image-sato-qemux86-64.ext3
> | NOTE: Qemu logfile: /srv/ssd/sgw/builds/world/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/testimage/qemu_boot_log.20130704065001
> | NOTE: runqemu started, pid is 18389
> | NOTE: waiting at most 30 seconds for qemu pid
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | No children found matching 18389
> | NOTE: Qemu pid didn't appeared in 30 seconds
> | NOTE: Output from runqemu: Please use simplified serial or kvm options instead
> |
> | Continuing with the following parameters:
> | KERNEL: [/srv/ssd/sgw/builds/world/tmp/deploy/images/bzImage-qemux86-64.bin]
> | ROOTFS: [/srv/ssd/sgw/builds/world/tmp/deploy/images/core-image-sato-qemux86-64.ext3]
> | FSTYPE: [ext3]
> | stty: standard input: Inappropriate ioctl for device
> | Acquiring lockfile for tap0...
> | Using preconfigured tap device 'tap0'
> | Running qemu-system-x86_64...
> | /srv/ssd/sgw/builds/world/tmp/sysroots/x86_64-linux/usr/bin/qemu-system-x86_64 -kernel /srv/ssd/sgw/builds/world/tmp/deploy/images/bzImage-qemux86-64.bin -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no -hda /srv/ssd/sgw/builds/world/tmp/deploy/images/core-image-sato-qemux86-64.ext3 -show-cursor -usb -usbdevice wacom-tablet -vga vmware -no-reboot -snapshot -serial unix:/tmp/qemuconnection.18354,server,nowait -m 128 --append "vga=0 uvesafb.mode_option=640x480-32 root=/dev/hda rw mem=128M ip=192.168.7.2::192.168.7.1:255.255.255.0 oprofile.timer=1 console=ttyS0"
> | Could not initialize SDL(No available video device) - exiting
> | Releasing lockfile of preconfigured tap device 'tap0'
> | stty: standard input: Inappropriate ioctl for device
> | stty: standard input: Inappropriate ioctl for device
> |
> | DEBUG: Python function do_testimage finished
> | ERROR: Function failed: Failed to start qemu. You should check the task log and the qemu boot log (qemu log is /srv/ssd/sgw/builds/world/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/testimage/qemu_boot_log.20130704065001)
> ERROR: Task 0 (/srv/ssd/sgw/poky/meta/recipes-sato/images/core-image-sato.bb, do_testimage) failed with exit code '1'
> NOTE: Tasks Summary: Attempted 164 tasks of which 163 didn't need to be rerun and 1 failed.
>


Sau!


> Regards,
> Stefan
>
>
>
> The following changes since commit 042203531b10b37ac9a8201b376f5dec403e51d8:
>
>    sanity.bbclass: Fix COREBASE sanity tests (2013-06-27 12:48:56 +0100)
>
> are available in the git repository at:
>
>    git://mirror.rb.intel.com/git.yoctoproject.org/poky-contrib stefans/oeqa5
>
> for you to fetch changes up to e6e567982f4b28822afdc8ea55401513df7c9466:
>
>    lib/oeqa/runtime: add gcc test (2013-06-28 13:00:45 +0300)
>
> ----------------------------------------------------------------
> Radu Moisan (2):
>        lib/oeqa/utils/qemurunner.py: class to handle qemu instance
>        lib/oeqa/utils/decorators.py: decorators for test methods
>
> Stefan Stanacar (6):
>        classes/testimage.bbclass: new class for image tests
>        lib/oeqa/oetest.py: base module for all runtime unittests
>        lib/oeqa/utils/sshcontrol.py: helper module for running remote commands
>        lib/oeqa/utils/oetelnetlib.py: override Telnet class to use Unix domain sockets
>        lib/oeqa/runtime: image sanity tests
>        lib/oeqa/runtime: add gcc test
>
>   meta/classes/testimage.bbclass           |  95 ++++++++++++++++++
>   meta/lib/oeqa/__init__.py                |   0
>   meta/lib/oeqa/oetest.py                  |  94 ++++++++++++++++++
>   meta/lib/oeqa/runtime/__init__.py        |   0
>   meta/lib/oeqa/runtime/connman.py         |  34 +++++++
>   meta/lib/oeqa/runtime/dmesg.py           |  10 ++
>   meta/lib/oeqa/runtime/files/test.c       |  26 +++++
>   meta/lib/oeqa/runtime/files/testmakefile |   5 +
>   meta/lib/oeqa/runtime/gcc.py             |  36 +++++++
>   meta/lib/oeqa/runtime/multilib.py        |  14 +++
>   meta/lib/oeqa/runtime/ping.py            |  11 +++
>   meta/lib/oeqa/runtime/rpm.py             |  25 +++++
>   meta/lib/oeqa/runtime/smart.py           |  23 +++++
>   meta/lib/oeqa/runtime/ssh.py             |  16 ++++
>   meta/lib/oeqa/utils/__init__.py          |   0
>   meta/lib/oeqa/utils/decorators.py        |  40 ++++++++
>   meta/lib/oeqa/utils/oetelnetlib.py       |  49 ++++++++++
>   meta/lib/oeqa/utils/qemurunner.py        | 160 +++++++++++++++++++++++++++++++
>   meta/lib/oeqa/utils/sshcontrol.py        | 100 +++++++++++++++++++
>   scripts/runqemu                          |   2 +-
>   20 files changed, 739 insertions(+), 1 deletion(-)
>   create mode 100644 meta/classes/testimage.bbclass
>   create mode 100644 meta/lib/oeqa/__init__.py
>   create mode 100644 meta/lib/oeqa/oetest.py
>   create mode 100644 meta/lib/oeqa/runtime/__init__.py
>   create mode 100644 meta/lib/oeqa/runtime/connman.py
>   create mode 100644 meta/lib/oeqa/runtime/dmesg.py
>   create mode 100644 meta/lib/oeqa/runtime/files/test.c
>   create mode 100644 meta/lib/oeqa/runtime/files/testmakefile
>   create mode 100644 meta/lib/oeqa/runtime/gcc.py
>   create mode 100644 meta/lib/oeqa/runtime/multilib.py
>   create mode 100644 meta/lib/oeqa/runtime/ping.py
>   create mode 100644 meta/lib/oeqa/runtime/rpm.py
>   create mode 100644 meta/lib/oeqa/runtime/smart.py
>   create mode 100644 meta/lib/oeqa/runtime/ssh.py
>   create mode 100644 meta/lib/oeqa/utils/__init__.py
>   create mode 100644 meta/lib/oeqa/utils/decorators.py
>   create mode 100644 meta/lib/oeqa/utils/oetelnetlib.py
>   create mode 100644 meta/lib/oeqa/utils/qemurunner.py
>   create mode 100644 meta/lib/oeqa/utils/sshcontrol.py
>
> Radu Moisan (2):
>    lib/oeqa/utils/qemurunner.py: class to handle qemu instance
>    lib/oeqa/utils/decorators.py: decorators for test methods
>
> Stefan Stanacar (6):
>    classes/testimage.bbclass: new class for image tests
>    lib/oeqa/oetest.py: base module for all runtime unittests
>    lib/oeqa/utils/sshcontrol.py: helper module for running remote
>      commands
>    lib/oeqa/utils/oetelnetlib.py: override Telnet class to use Unix
>      domain sockets
>    lib/oeqa/runtime: image sanity tests
>    lib/oeqa/runtime: add gcc test
>
>   meta/classes/testimage.bbclass           |  95 ++++++++++++++++++
>   meta/lib/oeqa/__init__.py                |   0
>   meta/lib/oeqa/oetest.py                  |  94 ++++++++++++++++++
>   meta/lib/oeqa/runtime/__init__.py        |   0
>   meta/lib/oeqa/runtime/connman.py         |  34 +++++++
>   meta/lib/oeqa/runtime/dmesg.py           |  10 ++
>   meta/lib/oeqa/runtime/files/test.c       |  26 +++++
>   meta/lib/oeqa/runtime/files/testmakefile |   5 +
>   meta/lib/oeqa/runtime/gcc.py             |  36 +++++++
>   meta/lib/oeqa/runtime/multilib.py        |  14 +++
>   meta/lib/oeqa/runtime/ping.py            |  11 +++
>   meta/lib/oeqa/runtime/rpm.py             |  25 +++++
>   meta/lib/oeqa/runtime/smart.py           |  23 +++++
>   meta/lib/oeqa/runtime/ssh.py             |  16 ++++
>   meta/lib/oeqa/utils/__init__.py          |   0
>   meta/lib/oeqa/utils/decorators.py        |  40 ++++++++
>   meta/lib/oeqa/utils/oetelnetlib.py       |  49 ++++++++++
>   meta/lib/oeqa/utils/qemurunner.py        | 160 +++++++++++++++++++++++++++++++
>   meta/lib/oeqa/utils/sshcontrol.py        | 100 +++++++++++++++++++
>   scripts/runqemu                          |   2 +-
>   20 files changed, 739 insertions(+), 1 deletion(-)
>   create mode 100644 meta/classes/testimage.bbclass
>   create mode 100644 meta/lib/oeqa/__init__.py
>   create mode 100644 meta/lib/oeqa/oetest.py
>   create mode 100644 meta/lib/oeqa/runtime/__init__.py
>   create mode 100644 meta/lib/oeqa/runtime/connman.py
>   create mode 100644 meta/lib/oeqa/runtime/dmesg.py
>   create mode 100644 meta/lib/oeqa/runtime/files/test.c
>   create mode 100644 meta/lib/oeqa/runtime/files/testmakefile
>   create mode 100644 meta/lib/oeqa/runtime/gcc.py
>   create mode 100644 meta/lib/oeqa/runtime/multilib.py
>   create mode 100644 meta/lib/oeqa/runtime/ping.py
>   create mode 100644 meta/lib/oeqa/runtime/rpm.py
>   create mode 100644 meta/lib/oeqa/runtime/smart.py
>   create mode 100644 meta/lib/oeqa/runtime/ssh.py
>   create mode 100644 meta/lib/oeqa/utils/__init__.py
>   create mode 100644 meta/lib/oeqa/utils/decorators.py
>   create mode 100644 meta/lib/oeqa/utils/oetelnetlib.py
>   create mode 100644 meta/lib/oeqa/utils/qemurunner.py
>   create mode 100644 meta/lib/oeqa/utils/sshcontrol.py
>
Stanacar, StefanX - July 4, 2013, 9:10 a.m.
On Wed, 2013-07-03 at 23:51 -0700, Saul Wold wrote:
> Tired this out today and got the following:
> > ERROR: Function failed: Failed to start qemu. You should check the task log and the qemu boot log (qemu log is /srv/ssd/sgw/builds/world/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/testimage/qemu_boot_log.20130704065001)
> > ERROR: Logfile of failure stored in: /srv/ssd/sgw/builds/world/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/temp/log.do_testimage.18354
> > Log data follows:
> > | DEBUG: Executing python function do_testimage
> > | NOTE: Test modules  ['oeqa.runtime.ping', 'oeqa.runtime.ssh', 'oeqa.runtime.connman', 'oeqa.runtime.rpm', 'oeqa.runtime.smart', 'oeqa.runtime.xorg', 'oeqa.runtime.dmesg']

On a second look, this shouldn't be none:

> > | NOTE: DISPLAY value: None

Because this happens:

> > | Running qemu-system-x86_64...
> > | /srv/ssd/sgw/builds/world/tmp/sysroots/x86_64-linux/usr/bin/qemu-system-x86_64 -kernel /srv/ssd/sgw/builds/world/tmp/deploy/images/bzImage-qemux86-64.bin -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no -hda /srv/ssd/sgw/builds/world/tmp/deploy/images/core-image-sato-qemux86-64.ext3 -show-cursor -usb -usbdevice wacom-tablet -vga vmware -no-reboot -snapshot -serial unix:/tmp/qemuconnection.18354,server,nowait -m 128 --append "vga=0 uvesafb.mode_option=640x480-32 root=/dev/hda rw mem=128M ip=192.168.7.2::192.168.7.1:255.255.255.0 oprofile.timer=1 console=ttyS0"
> > | Could not initialize SDL(No available video device) - exiting

Can you export DISPLAY before running the task? But don't use
DISPLAY=localhost:1 use DISPLAY=:1 (see my other mail).


Cheers, 
Stefan