From Fedora Project Wiki

No edit summary
No edit summary
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Step 1:Setup test enviroment ==
== Test Environment ==
* Virtualization
* Virtualization
** python-fedora installed
** python-fedora installed
Line 13: Line 13:


* Interaction with Desktop
* Interaction with Desktop
** Linux Desktop Test Project (LDTP)
** Linux Desktop Test Project (LDTP)[[http://ldtp.freedesktop.org/wiki/]]
*** ldtp installed
*** ldtp installed
*** python-ldtp installed
*** python-ldtp installed
Line 21: Line 21:
** service rsyslog started on host
** service rsyslog started on host
** rsyslog listening on specific port on host
** rsyslog listening on specific port on host
== Step 2: Get test media==
* 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)


== Step 2: Identifying boot methods, preparing installation media and checking media sanity==
== Watcher and Download Images ==
* Check Media Sanity
** size
** sha256sum
** md5sum
** repoclosure for DVD
** file conflict for DVD


{| class="wikitable"
Identify potential test drivers that trigger off of events.
! Method!! Files !! Sanity !! Implementation
|-
| style="background-color:green;" |URL
| style="background-color:green;" |initrd.img, vmlinuz
| style="background-color:green;" |sha256sum,md5sum,version
| style="background-color:green;" |url_install/url_sanity.py
|-
| style="background-color:#66FF00;" |DVD
| style="background-color:#66FF00;" |DVD.iso
| style="background-color:#66FF00;" |size,sha256sum, md5sum
| style="background-color:#66FF00;" |dvd_install/dvd_sanity.py
|-
| CD
| 4 CD.iso
| size,sha256sum, md5sum
| cd_install/cd_sanity.py
|-
| style="background-color:lightgreen;" |Minimal Boot Media
| style="background-color:lightgreen;" |boot.iso
| style="background-color:lightgreen;" |size,sha256sum, md5sum
| style="background-color:lightgreen;" |bootiso_install/bootiso_sanity.py
|-
| Live
| live.iso
| size,sha256sum, md5sum
| live_install/live_sanity.py
|}


== Step 3: Preparing kick start file ==
* Source to watcher
Most of the test cases can be covered by configuring different kick start files.
** URL install source (typically, http://download.fedoraproject.org/pub/fedora/linux/development/15/i386/os)
As the startup, the typical kick start template is choose to be implemented.
** DVD images (typically, http://dl.fedoraproject.org/pub/alt/stage/)
** Live images (typically, http://dl.fedoraproject.org/pub/alt/stage/)
** netinst.iso images (typically, http://dl.fedoraproject.org/pub/alt/stage/)


'''Installation Kick Start Options'''
* Download Methods
{|
To avoid multiple download for saving bandwidth and time, the following methods can be adopted:
!!!Description !!Scripts!! Test Case
** mirror
|-
** proxy, such as squid
|rowspan=3 width=100 |Partitioning
|width=200 |autopart
|width=500 |
<pre>
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
autopart
</pre>
|width=300 |[[QA:Testcase Anaconda autopart install]]
|-
|autopart encrypted
|<pre>
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
autopart  --encrypted --passphrase=redhat
</pre>
|[[QA:Testcase Anaconda autopart (encrypted) install]]
|-
|specify partition
|<pre>
# 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
</pre>
|
|-
| rowspan=4 |Install Source
| Http
|<pre>repo=http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os</pre>
|[[QA/TestCases/InstallSourceHttp]]
|-
|Anonymous Ftp
|<pre>repo=ftp://download.fedora.redhat.com/pub/fedora/linux/development/i386/os</pre>
|[[QA/TestCases/InstallSourceFtpAnonymous]]
|-
|NonAnonymous Ftp
|<pre>repo=ftp://USER:PASS@download.fedora.redhat.com/pub/fedora/linux/development/i386/os</pre>
|[[QA/TestCases/InstallSourceFtpNonAnonymous]]
|-
|}


'''Upgrade Kick Start Options'''
== Image Sanity ==
{|
* size
! !!Description !!Scripts!! Test Case
* sha256sum
|-
* md5sum
|rowspan=3 width=100  | Boot loader
* repoclosure for DVD
|width=200 |Install new bootloader
* file conflict for DVD
|width=500 |
<pre>
# System bootloader configuration
bootloader --location=mbr
</pre>
|width=300 |[[QA:Testcase Anaconda Upgrade New Bootloader]]
|-
|Do not install a bootloader
|<pre>
# System bootloader configuration
bootloader --location=none
</pre>
|[[QA:Testcase Anaconda Upgrade Skip Bootloader]]
|-
|Upgrade Exiting boot loader
|<pre>
# System bootloader configuration
bootloader --location=none --upgrade
</pre>
|[[QA:Testcase Anaconda Upgrade Update Bootloader]]
|-
|}


'''Rescure Kick Start Options'''
== Create Guest ==
List test scenarios,it will make clear that which suite needs to
* virt-install
support.
<!-- CSS Rotate
<style type="text/css">
td.vertical-text {
color:#333;
border:0px solid red;
writing-mode:tb-rl;
-webkit-transform:rotate(270deg);
-moz-transform:rotate(270deg);
-o-transform: rotate(270deg);
white-space:nowrap;
display:block;
bottom:0;
width:20px;
height:20px;
font-family: ‘Trebuchet MS’, Helvetica, sans-serif;
font-size:24px;
font-weight:normal;
text-shadow: 0px 0px 1px #333;
}
</style>
-->


{| class="wikitable  collapsible collapsed" border="1" width="85%"
== Boot Arguments ==
! colspan="7"|Test Scenarios
* Linux Desktop Test Project [[http://ldtp.freedesktop.org/wiki/]]
|-
! colspan="1" class="unsortable"| &nbsp;
! colspan="6" class="unsortable"|Boot Method <ref name="Boot Method"> Boot Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/ch04s06.html </ref>
|-
! colspan="1"|Test
! DVD
! CD
! boot.iso
! PXE images
! efidisk.img
! Live Image
<!--
|-
! colspan="1" class="unsortable"|Methods to load install.img (not applicable after F15)
! colspan="6" class="unsortable"|&nbsp;
|-
|stage2=cdrom
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=http://server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=ftp://[user:passwd@]server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=nfs:
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=hd:
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|askmethod
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
-->
|-
! colspan="1" class="unsortable"|Installation Method <ref>Installation Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/s1-installmethod-x86.html</ref><ref name="bootoption">Anaconda Boot Options: http://fedoraproject.org/wiki/Anaconda/Options</ref>
! colspan="6" class="unsortable"|&nbsp;
|-
|autodetect cdrom
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=cdrom
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=http://host/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=ftp://[user:passwd@]server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=nfs:server:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=nfsiso:server:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=hd:device/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=hdiso:
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=livecd:
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:lightgreen;"|yes
|-
! colspan="1" class="unsortable"|Methods to locate kickstart file <ref name="bootoption"/>
! colspan="6" class="unsortable"|&nbsp;
|-
|ks (autodetect from dhcp ???(default is nfs))
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=http://server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=ftp://[user:passwd@]server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=nfs:server:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=file:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=hd:device:/path
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=bd:biosdevice:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=floppy
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=cdrom
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
! colspan="1" class="unsortable"|Methods to locate updates.img
! colspan="6" class="unsortable"|&nbsp;
|-
|updates
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|updates=http
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|images/updates.img
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|RHUpdates
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
! colspan="1" class="unsortable"|Methods to determine display device
! colspan="6" class="unsortable"|&nbsp;
|-
|graphical
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|-
|text
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|-
|vnc
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|cmdline
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|serial console=ttyS0
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|telnet
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
! colspan="1" class="unsortable"|Methods to choose kickstart network device <ref name="bootoption"/>
! colspan="6" class="unsortable"|&nbsp;
|-
|ksdevice=link
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
|-
|ksdevice=bootif
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|ksdevice=eth0
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|ksdevice=AA:BB:CC:DD:EE:FF
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
! colspan="1" class="unsortable"|Methods to activate network device
! colspan="6" class="unsortable"|&nbsp;
|-
|ip=dhcp
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
|-
|ip=a.b.c.d
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|dns=
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|gateway=
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|netmask=
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|}


== Step 4: Creating Virt Guest==
The mapping of test cases with kick start files can be found at  [[Testcase_Kickstart_Mapping]]
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
|-
|width=100|URL
|width= 200|url_create()
|-
|DVD,CD,boot.iso
|iso_create()
|}


== Virtue Disk ==
* libguestfs


== Logging ==
* serial console
* [[Anaconda/Logging]]


Identify potential test drivers that trigger off of those events.
== Watch Installation Steps ==
 
The installation steps can be watched by monitor the terminal output
* URL install source available (typically, http://download.fedoraproject.org/pub/fedora/linux/development/15/i386/os)
** url_sanity.py (for provided {{filename|images/boot.iso}})
** url_install.py
** bootiso_install.py
** pxe_install.py (kind of silly, but a possible future test)
* 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
|-
|width =100|Boot
|width=300|boot.log
|width=300|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.
 
{| class="wikitable sortable" border="0"
! Colour !! Explanation
|-
| style="background-color:green;"|yes
| supported and default (high priority)
|-
| style="background-color:#66FF00;"|yes
| supported (medium priority)
|-
| style="background-color:lightgreen;"|yes
| supported (low priority)
|-
| style="background-color:red; color:white;"|no
| unsupported configuration
|-
| style="background-color:yellow;"|unknown
| unknown
|-
|}


==References==
==References==
<references/>
<references/>

Latest revision as of 05:47, 21 November 2011

Test Environment

  • 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)[[1]]
      • ldtp installed
      • python-ldtp installed
    • dogtail
  • Logging
    • service rsyslog started on host
    • rsyslog listening on specific port on host

Watcher and Download Images

Identify potential test drivers that trigger off of events.

  • Download Methods

To avoid multiple download for saving bandwidth and time, the following methods can be adopted:

    • mirror
    • proxy, such as squid

Image Sanity

  • size
  • sha256sum
  • md5sum
  • repoclosure for DVD
  • file conflict for DVD

Create Guest

  • virt-install

Boot Arguments

  • Linux Desktop Test Project [[2]]

The mapping of test cases with kick start files can be found at Testcase_Kickstart_Mapping

Virtue Disk

  • libguestfs

Logging

Watch Installation Steps

The installation steps can be watched by monitor the terminal output

References