Quality/Tutorials/Testing with SDK to VM

See the .ks file at bottom of page.

In .ks file following lines add repositories for QA packages : repo --name=mer-tools --baseurl=http://repo.pub.meego.com/Mer:/Tools/Mer_Core_i486/ --save repo --name=qa-tools --baseurl=http://repo.pub.meego.com/Mer:/QA:/Tests/Mer_Core_i486/ --save

These packages needs to be installed on VM to enable automated testing :

testrunner-lite eat-device testrunner-lite-hwinfo-meego

and this package will enable X11 blts tests :

blts-x11-tests

In %post section, following lines install device test enablers for both user and root : su -c /usr/bin/eat-add-device-key root su -c /usr/bin/eat-add-device-key nemo

Save the file at end of this page as nemo-handset-i486-vm-0.20120920.0.2.NEMO.2012-10-02.1.ks and execute : sudo mic cr liveusb -A i486 nemo-handset-i486-vm-0.20120920.0.2.NEMO.2012-10-02.1.ks

Above command will generate nemo-handset-i486-vm-0.20120920.0.2.NEMO.2012-10-02.1.usbimg in mic-output directory. Now execute : cd mic-output and boot the VM with Qemu sudo qemu -m 512 -hda nemo-handset-i486-vm-0.20120920.0.2.NEMO.2012-10-02.1.usbimg -smp 2 -net nic -net user,hostfwd=tcp:127.0.0.1:5555-:22 -vnc :2 -k en-gb -serial stdio

Now from any other machine which has vncviewer (or any other vnc client installed), connect to port 5902 (screen :2) of host running nemo image, and boot nemo handset image from Grub menu.

On SDK:

Add following repositories with zypper :

sudo zypper addrepo http://repo.pub.meego.com/Mer:/Tools/Mer_Core_i486/ mer-tools sudo zypper addrepo http://repo.pub.meego.com/Mer:/QA:/Tests/Mer_Core_i486/ qa-tests

Update package list : sudo zypper ref

Now install eat-host and testrunner-lite with zypper :

sudo zypper install eat-host testrunner-lite

Enable execute permissions for /usr/bin/eat-install-host-key and execute eat-install-host-key. This will generate ~/.ssh/id_eat_dsa :

sudo chmod 755 /usr/bin/eat-install-host-key /usr/bin/eat-install-host-key
 * 1) first step might not be needed?!

ssh to localhost 5555 to check whether it's working ssh -i ~/.ssh/id_eat_dsa -p 5555 nemo@localhost

Install fonts required by testrunner-ui application with :

sudo zypper in liberation*fonts*

Start testrunner with : testrunner-ui

go into test run -> settings and set : username=nemo host=127.0.0.1:5555                                                                                                                                    ssh private key = ~/.ssh/id_eat_dsa

Save the settings Execute testrunner-ui and execute :

file -> open test definition, find /usr/share/blts-x11-tests/ and tests.xml there and test run -> run all tests

Alternatively you can test from commandline with testrunner-lite by executing : scp -P 5555 -i ~/.ssh/id_eat_dsa root@localhost:/usr/share/blts-x11-tests/tests.xml. testrunner-lite -f ./tests.xml -o tests.out -t nemo@localhost:5555 -k $HOME/.ssh/id_eat_dsa -v

.ks file to generate testable image : # #  lang en_US.UTF-8 keyboard us timezone --utc UTC part / --size 3000 --ondisk sda --fstype=ext3 rootpw nemo xconfig --startxonboot bootloader --timeout=0  --append="console=ttyS0,115200n8" user --name nemo --groups audio,video --password nemo repo --name=mer-core --baseurl=http://releases.merproject.org/releases/next/builds/i486/packages --save --debuginfo repo --name=ce-adaptation-x86-generic --baseurl=http://repo.pub.meego.com/CE:/Adaptation:/x86-generic/Mer_Core-next_i486/ --save repo --name=ce-apps --baseurl=http://repo.pub.meego.com/CE:/Apps/Mer_Core-next_CE_MW_Shared_i486/ --save repo --name=ce-mw-shared --baseurl=http://repo.pub.meego.com/CE:/MW:/Shared/Mer_Core-next_i486/ --save repo --name=ce-ux-mtf --baseurl=http://repo.pub.meego.com/CE:/UX:/MTF/Mer_Core-next_CE_MW_MTF_i486/ --save repo --name=mer-tools --baseurl=http://repo.pub.meego.com/Mer:/Tools/Mer_Core_i486/ --save repo --name=testing-tools --baseurl=http://repo.pub.meego.com/Mer:/Tools:/Testing/Mer_Core_i486/ --save repo --name=qa-tools --baseurl=http://repo.pub.meego.com/Mer:/QA:/Tests:/Testing/Mer_Core_i486/ --save %packages @Intel x86 VM Support @Mer Minimal Xorg @Nemo Middleware Shared @Nemo Apps @MTF Handset UX @Mer Graphics Common @Mer Minimal Xorg @Mer Connectivity @Mer Core kernel-adaptation-pc openssh-clients openssh-server ce-backgrounds plymouth-lite vim-enhanced xorg-x11-drv-vesa testrunner-lite testrunner-lite-hwinfo-meego eat-device blts-x11-tests %end %post mv /usr/bin/ply-image /usr/bin/ply-image-real cat > /usr/bin/ply-image << EOF echo 32 > /sys/class/graphics/fb0/bits_per_pixel exec /usr/bin/ply-image-real $@ EOF chmod +x /usr/bin/ply-image ln -sf X-MEEGO-HS.desktop /usr/share/xsessions/default.desktop echo -n "Rebuilding db using target rpm.." rm -f /var/lib/rpm/__db* rpm --rebuilddb echo "done" if [ -x /usr/sbin/prelink ]; then echo -n "Running prelink.." /usr/sbin/prelink -aRqm echo "done" fi su -c /usr/bin/eat-add-device-key root su -c /usr/bin/eat-add-device-key nemo %end %post --nochroot if [ -n "$IMG_NAME" ]; then echo "BUILD: $IMG_NAME" >> $INSTALL_ROOT/etc/meego-release fi %end
 * 1) -*-mic2-options-*- -f livecd --record-pkgs=name --pkgmgr=yum --arch=i486 -*-mic2-options-*-
 * 1) Do not Edit! Generated by:
 * 2) kickstarter.py
 * 1) Hack to fix the plymouth based splash screen on N900
 * 1) !/bin/sh
 * 1) Set symlink pointing to .desktop file
 * 1) rpm-rebuilddb.post from mer-kickstarter-configs package
 * 2) Rebuild db using target's rpm
 * 1) end rpm-rebuilddb.post
 * 2) prelink.post from mer-kickstarter-configs package
 * 3) Prelink can reduce boot time
 * 1) end prelink.post