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
- Linux Desktop Test Project (LDTP)
- Logging
- service rsyslog started on host
- rsyslog listening on specific port on host
Step 2: Get test media and check media sanity
- Tree compose: http://download.fedoraproject.org/pub/fedora/linux/development/[$VERSION]/[$ARCH]/os/
- DVD, Live, boot.iso, netinst.iso: http://dl.fedoraproject.org/pub/alt/stage/
- Download by mirror
- Download by proxy (squid)
- Check Media Sanity
- size
- sha256sum
- md5sum
- repoclosure for DVD
- file conflict for DVD
Step 3: Identifying boot methods
<--
Method | Files | Sanity | Implementation |
---|---|---|---|
URL | initrd.img, vmlinuz | sha256sum,md5sum,version | url_install/url_sanity.py |
DVD | DVD.iso | size,sha256sum, md5sum | dvd_install/dvd_sanity.py |
CD | 4 CD.iso | size,sha256sum, md5sum | cd_install/cd_sanity.py |
Minimal Boot Media | boot.iso | size,sha256sum, md5sum | bootiso_install/bootiso_sanity.py |
Live | live.iso | size,sha256sum, md5sum | live_install/live_sanity.py |
-->
Step 3: 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.
Test Scenarios | ||||||
---|---|---|---|---|---|---|
Boot Method [1] | ||||||
Test | DVD | CD | boot.iso | PXE images | efidisk.img | Live Image |
Installation Method [2][3] | ||||||
autodetect cdrom | yes | yes | yes | yes | yes | no |
repo=cdrom | yes | yes | yes | yes | yes | no |
repo=http://host/path | yes | yes | yes | yes | yes | no |
repo=ftp://[user:passwd@]server/path | yes | yes | yes | yes | yes | no |
repo=nfs:server:/path | yes | yes | yes | yes | yes | no |
repo=nfsiso:server:/path | yes | yes | yes | yes | yes | no |
repo=hd:device/path | yes | yes | yes | yes | yes | no |
repo=hdiso: | yes | yes | yes | yes | yes | no |
repo=livecd: | no | no | no | no | no | yes |
Methods to locate kickstart file [3] | ||||||
ks (autodetect from dhcp ???(default is nfs)) | yes | yes | yes | yes | yes | unknown |
ks=http://server/path | yes | yes | yes | yes | yes | unknown |
ks=ftp://[user:passwd@]server/path | yes | yes | yes | yes | yes | unknown |
ks=nfs:server:/path | yes | yes | yes | yes | yes | unknown |
ks=file:/path | yes | yes | yes | yes | yes | unknown |
ks=hd:device:/path | yes | yes | yes | yes | yes | unknown |
ks=bd:biosdevice:/path | yes | yes | yes | yes | yes | unknown |
ks=floppy | yes | yes | yes | yes | yes | unknown |
ks=cdrom | yes | yes | yes | yes | yes | unknown |
Methods to locate updates.img | ||||||
updates | yes | yes | yes | yes | yes | no |
updates=http | yes | yes | yes | yes | yes | no |
images/updates.img | no | no | no | yes | yes | no |
RHUpdates | no | no | no | yes | yes | no |
Methods to determine display device | ||||||
graphical | yes | yes | yes | yes | yes | yes |
text | yes | yes | yes | yes | yes | yes |
vnc | yes | yes | yes | yes | yes | no |
cmdline | yes | yes | yes | yes | yes | no |
serial console=ttyS0 | yes | yes | yes | yes | yes | no |
telnet | yes | yes | yes | yes | yes | no |
Methods to choose kickstart network device [3] | ||||||
ksdevice=link | yes | yes | yes | yes | yes | no |
ksdevice=bootif | yes | yes | yes | yes | yes | no |
ksdevice=eth0 | yes | yes | yes | yes | yes | no |
ksdevice=AA:BB:CC:DD:EE:FF | yes | yes | yes | yes | yes | no |
Methods to activate network device | ||||||
ip=dhcp | yes | yes | yes | yes | yes | no |
ip=a.b.c.d | yes | yes | yes | yes | yes | no |
dns= | yes | yes | yes | yes | yes | no |
gateway= | yes | yes | yes | yes | yes | no |
netmask= | yes | yes | yes | yes | yes | no |
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.
- URL install source available (typically, http://download.fedoraproject.org/pub/fedora/linux/development/15/i386/os)
- url_sanity.py (for provided
images/boot.iso
) - url_install.py
- bootiso_install.py
- pxe_install.py (kind of silly, but a possible future test)
- url_sanity.py (for provided
- DVD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
- dvd_sanity.py
- dvd_install.py
- hddvc_install.py
- nfsdvc_install.py
- CD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
- cd_sanity.py
- cd_install.py
- hdcd_install.py
- nfscd_install.py
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
- ↑ Boot Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/ch04s06.html
- ↑ Installation Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/s1-installmethod-x86.html
- ↑ 3.0 3.1 3.2 Anaconda Boot Options: http://fedoraproject.org/wiki/Anaconda/Options