From Fedora Project Wiki

Revision as of 08:57, 17 November 2011 by Hongqing (talk | contribs)

Step 1:Setup test enviroment and check system sanity

  • Virtualization
    • python-fedora installed
    • libvirt installed
    • qemu-kvm installed
    • python-virtinst installed
    • pax installed
    • service libvirtd started
  • Virtual disk (required for hd installation and ks hosted on hd)
    • libguestfs installed
    • python-libguestfs installed
  • Interaction with Desktop
    • Linux Desktop Test Project (LDTP)
      • ldtp installed
      • python-ldtp installed
    • dogtail
  • Logging
    • service rsyslog started on host
    • rsyslog listening on specific port on host

Step 2: Get test media and check media sanity

  • Check Media Sanity
    • size
    • sha256sum
    • md5sum
    • repoclosure for DVD
    • file conflict for DVD

Step 3: Identifying boot methods

The guest should be able to boot from URL, DVD.iso, Live.iso, boot.iso, netinst.iso, all these guests should be able to accept different kick start files, repos.

  • kick start can be passed by virt-install arguments for tree compose or terminal for ISOs
    • remote kickstart files: http, ftp, nfs
    • local kickstart files: ks file should be uploaded on to the virtdisk before using it
  • repo
    • passed by terminal
    • passed by ks file

Step 4: Preparing kick start file

Most of the test cases can be covered by configuring different kick start files. As the startup, the typical kick start template is choose to be implemented.

Installation Kick Start Options

Description Scripts Test Case
Partitioning autopart
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
autopart
QA:Testcase Anaconda autopart install
autopart encrypted
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
autopart  --encrypted --passphrase=redhat
QA:Testcase Anaconda autopart (encrypted) install
specify partition
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part / --fstype="ext4" --size=3000
part /boot --fstype="ext4" --size=500
part swap --fstype="swap" --size=500
Install Source Http
repo=http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os
QA/TestCases/InstallSourceHttp
Anonymous Ftp
repo=ftp://download.fedora.redhat.com/pub/fedora/linux/development/i386/os
QA/TestCases/InstallSourceFtpAnonymous
NonAnonymous Ftp
repo=ftp://USER:PASS@download.fedora.redhat.com/pub/fedora/linux/development/i386/os
QA/TestCases/InstallSourceFtpNonAnonymous

Upgrade Kick Start Options

Description Scripts Test Case
Boot loader Install new bootloader
# System bootloader configuration
bootloader --location=mbr
QA:Testcase Anaconda Upgrade New Bootloader
Do not install a bootloader
# System bootloader configuration
bootloader --location=none
QA:Testcase Anaconda Upgrade Skip Bootloader
Upgrade Exiting boot loader
# System bootloader configuration
bootloader --location=none --upgrade
QA:Testcase Anaconda Upgrade Update Bootloader

Rescure Kick Start Options List test scenarios,it will make clear that which suite needs to support.

Step 4: Creating Virt Guest

virt-install is adopted to initialize the guest. The functions to create guest with virt-install from url, DVD,ect. should be defined firstly. The following functions are defined in the class VirtGuest located in /lib/python/virtguest.py.

Method Function
URL url_create()
DVD,CD,boot.iso iso_create()


Identify potential test drivers that trigger off of those events.

Step 5 : Logging and watching the steps of installation

Get the installation output and logs at every step:

Stage Log file End label
Boot boot.log Greetings
Stage1 stage1.log Running anaconda [version], system installer - please wait
Stage2 stage2.log

Key

Set priorities for each test. The test drivers will support the tests with high priority.

Colour Explanation
yes supported and default (high priority)
yes supported (medium priority)
yes supported (low priority)
no unsupported configuration
unknown unknown

References