- First draft: WillWoods 20:54, 17 June 2009 (UTC)
This test plan documents the process used to check the basic requirements for a Rawhide tree to be acceptable for further testing. It aims to check whether Rawhide is installable, usable as a package repo for updating, and whether critical packages are present and functional.
In short, this is how we decide if Rawhide is broken or not.
There are three main components here: Repo sanity, Installability, and Basic Functionality. These three categories can be tested mostly independent of one another.
TBD. No clear priorities exist yet.
This plan seeks to answer three basic questions:
- Can current Rawhide users update their systems using this repo?
- Can this Rawhide tree be installed?
- Does the basic system (a subset of the "critical path") work as expected for simple testing?
It is not intended to be an exhaustive test of any part of the system.
Test Pass/Fail Criteria
Rawhide will be considered Good for each purpose if all of the underlying conditions are met:
- Contains valid yum metadata (repodata)
- Contains key packages (kernel, glibc, coreutils)
- No unresolved dependencies in critical packages
- comps.xml exists and is valid
- installer images (kernel, initrd, install.img, and boot.iso) exist
- kernel boots on most machines of the primary architectures
- initrd is able to find stage2 (install.img) by at least one method (network, local CD)
- stage2 is able to detect the presence of disks attached to most common controllers
- installer can write packages to disk storage
- installer can setup up bootloader correctly for common boot systems
- Kernel/X is able to set up common display configurations
- At least 2 out of 3 of the most common video drivers (intel, nouveau, radeon) must be functioning
- Kernel/X properly handle input from standard USB keyboard/mouse
- System is able to establish a wired network connection
- As with video, this should work for most common network drivers. Individual chipset failures may be waived.
is able to install simple updates
This test plan should produce:
- A summary report on whether Rawhide is broken or not
- Bug reports for broken dependencies / missing files / etc.
- A list of test cases used to verify the expected results. (see below)
TODO: Automate these test cases. See tickets for each test here.
- Installer image existence
- Kernel boot
- Anaconda loader fetching stage2
- Anaconda stage2 disk probe
- Anaconda package install
- Anaconda bootloader setup
- X startup/basic display configuration
- X basic input handling
- Basic network connectivity
- yum update functionality
- The tests will be run on a host which has the Rawhide tree accessible by HTTP or FTP.
- The tests will download a lot of data, so ideally the host should have a very fast network link to the HTTP/FTP mirror.
- The test host will be no older than RHEL5/CentOS5 or currently supported Fedora releases.
- The test host will have at least 1GB free disk space:
- critical path packages (~300MB)
- their associated metadata (~200MB)
- all of the boot images (~300MB)
- plus some extra scratch space for rebuilding images etc.
High-level detail of who is accountable for different phases of testing.
Ideally this test plan should be run for every new Rawhide tree - i.e. daily.
- Testing kernel boot and X startup is currently tricky to automate.
- Critical_Path_Packages_Proposal - while exact list of packages may change, it is possible that no agreement on the exact list can be made. In this event, a temporary subset of critical packages will be used