This page provides a high-level roadmap for implementing the Is_anaconda_broken_proposal project. More detailed tasks can be found in autoqa TRAC roadmap. We follow these steps to define the methods by which we initiate testing
Step 1: Identify boot methods, retrieve files and check file sanity
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 2: Prepare kick start file
Most of the test cases can be covered by configure different kick start files. There are kickstart templates in different installation method folders.
Method | Kick Start File Template | |
---|---|---|
Install | URL | /url_install/ks.cfg |
DVD | dvd_install/ks.cfg | |
CD | cd_install/ks.cfg | |
boot.iso | bootiso_install/ks.cfg | |
Upgrade | ||
Rescure |
Kick Start Options
&snap | Description | Scripts | Test Case |
---|---|---|---|
Disk Operation | autopart | # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information autopart |
default |
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 |
||
Bootloader | |||
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 3: Install Fedora
from virtguest import VirtGuest, the methods to initialize a guest for both tree compose and iso image have been implemented.
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
Write test drivers using requirements gathered in steps #2,#3,#4
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