Quality/ExecuteTests

= Description =

This HowTo describes how to execute test cases or test plans in a target device. In this HowTo we use Mer SDK as a host and Nemo virtual machine as a target, but this guide applies for all other devices too.

= Preparation =

SDK
Add test exeuction tools repository sudo zypper ar http://repo.merproject.org/obs/mer-tools:/stable/latest_i586/ mer-tools

Install execution tools sudo zypper ref sudo zypper in testrunner-lite eat-host

Add SSH host to your system eat-install-host-key

Target image
Get Nemo virtual image ks file from http://releases.nemomobile.org/snapshots/images/ (i586-vm)

Add new repo: repo --name=mer-tools --baseurl=http://repo.merproject.org/obs/mer-tools:/stable/latest_i586/ --save

Add eat-device to the %packages section: eat-device

Add SSH device keys for root and user su -c 'eat-add-device-key' su nemo -c 'eat-add-device-key'

Add needed tests to the image, look from here

Create raw image for KVM: sudo mic create raw --record-pkgs=name --pkgmgr=yum --arch=i586

See mer-minimal-xorg ks file.

KVM
Note!: This is not needed if you don't want to use KVM

Install KVM to your real host, not to the SDK but to the host host!

For Ubuntu: sudo apt-get install qemu-kvm kvm-pxe

Start Nemo image in KVM: kvm -m 512 -hda mer-minimal-xorg-sda.raw -smp 2 -net nic -net user,hostfwd=tcp::5555-:22

Parameters:
 * -m memory
 * -hda hard disk image
 * -smp number of processors
 * -net nic, should automatically setup the eth0 interface and IP address for it
 * -net user, network in user mode, hostfwd option maps host's port 5555 to target's 22 port (ssh -p 5555 root@localhost).

= Test execution =

Check that you have password-less access to the target: ssh -i ~/.ssh/id_eat_dsa root@target_ip

If you are using kvm, then ssh -i ~/.ssh/id_eat_dsa -p 5555 root@localhost

Host localhost 127.0.0.1 StrictHostKeyChecking no IdentityFile %d/.ssh/id_eat_dsa Port 5555
 * Note* Add following settings to ~/.ssh/config (KVM settings, modify to match your target)

Use testrunner-lite or testrunner-ui to execute test plan or tests: testrunner-lite -f tests.xml -o result.xml -t root@target_ip -v

For KVM: testrunner-lite -f tests.xml -o result.xml -t root@localhost -v

Parameters:
 * -f path to the test plan
 * -o result output
 * -t remote execution
 * -k path to identification file
 * -v verbose

= Tests =

Test plans

 * Quality/Test_coverage will have test plans and settings for plans.

Basic Layer tests (BLTS)
https://meego.gitorious.org/meego-quality-assurance/mcts/trees/master/mcts-blts

Install some tests sudo zypper in blts-bluetooth-tests

Execute tests from the command line sudo blts-bluetooth -e 1

Execute tests with testrunner-lite sudo testrunner-lite -f /usr/share/blts-bluetooth-tests/tests.xml -o /tmp/results.xml -v

Middleware tests (MWTS)
https://meego.gitorious.org/meego-quality-assurance/mcts/trees/master/mcts-mwts

Install some tests sudo zypper in mwts-filesystem-generic-all

Execute tests with testrunner-lite: testrunner-lite -f /usr/share/mwts-filesystem-generic-tests/tests.xml -o /tmp/result.xml -v

Execute tests with min console UI: min

Execute tests with min console: min -c -r "TMP"

See detailed results: cat /var/log/tests/*.result

Others
https://meego.gitorious.org/meego-quality-assurance/mcts/trees/master/