Upgrade testing for Saucy
Upgrade testing is currently performed using the https:/
Blueprint information
- Status:
- Complete
- Approver:
- Gema Gomez
- Priority:
- High
- Drafter:
- Paul Larson
- Direction:
- Approved
- Assignee:
- Canonical Platform QA Team
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- ubuntu-13.10
- Started by
- Completed by
- Gema Gomez
Whiteboard
# This can be done by hand for trying the process the first time, but we need should create a script to do this, so that rolling over to a new release is easier, and possibly a wrapper that looks for the images in a predictable location and creates them if they are not there:
1) just virt-manager by hand to create an image for you from an ISO,
give a nice memorable name, like qa-12.04-upgrade
[jibel] The creation is already automated so that would be a regression to create VMs manually. I see the following options to create a base VM
- Fix vm-builder
- or a cloud image to provision the base image like adt or http://
2) in that image make sure the root user gets the jenkins/utah pub-key
added to its authorized keys
3) make sure the image has sshd and gdebi installed
4) make a copy of this
Run UTAH using the normal "run_utah_tests.py" script but add these two parameters:
--skip-
--name <name from step 1 above>
# re-use it
copy your original image file over to where libvirt expects it. (I think
its /var/lib/
Existing tests can probably be moved over fairly directly, except one will need to be added that performs the upgrade, and uses "reboot: always" in the control file
-------
Session notes
-------
* Upgrade test modes are: server, desktop, main packages, universe packages
- Universe isn't everything in universe, but does include everything with a desktop file in app-install-data
* VMs good enough for now, but are slow. LXC preferred for main and universe upgrade testing when utah supports it - keep VM upgrading for server/desktop so we make sure to test bootloader and kernel upgrades completely
* Utah can be used in one mode to create base images, and another to run the upgrade and post-upgrade tests
* Scripts needed for installing packages for main/universe testing, setting up user/system customization. These are found in auto-upgrade-
Plan for tests:
* Bring across existing tests - lxc backend should have something to help deal with changes needed to kernel test for running kernel
* Check for .crash files, but only ones that happen after performing the upgrade (clear /var/crash right after upgrade completes, before rebooting)
* report (but not fail) on packages that are no longer in ubuntu, but are still installed after the upgrade (mostly useful for libs)
* wishlist: upgrade using the UI upgrader
- basically this would just need to replace the "upgrade" test in desktop with an autopilot test to handle the gui upgrade process
* create a testplan for upgrade testing, start making progress toward additional tests
Reporting:
* would like these to be associated with smoke test results for the day, something that can show people whether it's safe to upgrade on any given day
- maybe part of the key performance indicators?
* Make the upgrade reporting view link to reports for things like conffiles, and still-installed packages that are no longer in the archive after upgrade
Work Items
Work items:
create new image creation script for LXC once it's supported (desktop/server only): TODO
New test for .crash files and clear pre-reboot crash files in upgrade test: TODO
New test for packages that are no longer in ubuntu, but still installed: TODO
New test for upgrading using the UI upgrader: TODO
Review tests and plan for future upgrade tests needed: TODO
Add reporting to dashboard for upgrade testing: TODO
Work items for ubuntu-13.06:
[doanac] Create a new jenkins.sh type script that can run tests and provision(if needed): DONE
[doanac] turn jenkins.sh into a templated script that can create jenkins jobs: DONE
Work items for ubuntu-13.07:
[psivaa] create a runlist that does the equivalent of auto-upgrade-
[psivaa] Hook setup steps needed by some tests in so that they run before the upgrade: TODO
[jibel] Deploy upgrade tests for S and remove obsolete tests: DONE