ubuntu-system-image
|
Size: 8765
Comment:
|
Size: 9005
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 85: | Line 85: |
| * Install and restart. | * Click on ''Install 1 update'' * Click on ''Install & restart'' |
| Line 87: | Line 88: |
| * '''Reset automatic downloads!''' | * '''Reset automatic downloads!''' |
| Line 109: | Line 110: |
| * Click on ''Install 1 update'' | |
| Line 112: | Line 114: |
| * '''Reset automatic downloads!''' * {{{adb shell}}} * {{{python3 -c "from systemimage.settings import Settings; Settings().set('auto_download', '1')"}}} |
Test plan for component: ubuntu-system-image
Component Checklist: https://wiki.ubuntu.com/Process/Merges/Checklists/ubuntu-system-image
Trunk URL: lp:ubuntu-system-image/client
Ubuntu Package URL (LP): http://launchpad.net/ubuntu/+source/system-image
Project wiki page: https://wiki.ubuntu.com/ImageBasedUpgrades
Dependents/Clients
Dependents:
- ubuntu-download-manager
Clients:
- ubuntu-system-settings
General Recommendations
If you're testing packages in a landing silo, after flashing your device as instructed in the test plans below, you will want to install the new packages from the silo. You can do that this way:
- Install freshly built MPs that are needed for landing, e.g.
- Make device writable
add-apt-repository the relevant PPA.
apt-get update
apt-get install system-image-cli system-image-common system-image-dbus ubuntu-download-manager ubuntu-system-settings
Install any new versions of ubuntu-download-manager and ubuntu-system-settings from the same silo.
- Possibly install any new versions of the Qt networking stack that may also be part of the silo.
If any of the tests fail, file a bug attaching the following information. It is requested that you file the bug on the upstream package (using that link), although it's okay -- but not necessary -- to also file a bug on the Ubuntu package. In either case, please tag the bug with the client tag.
- If the test fails, capture the log files:
adb pull /var/log/system-image/client.log
- Optionally capture the u-d-m log files (TBD)
- Attach these logs to the bug.
After you flash your device with --bootstrap you will probably lose your network settings. Restore them with:
adb shell
nmcli dev wifi connect <network> password <password>
Test Plan
This test plan is not supposed to be complete; use it to guide your manual testing so they don't miss big functional areas that are part in the component; also this should be used as guideline to inspire the exploratory testing which should be adapted smartly based on the real content of a merge proposal.
Test A -- Good Path Automatic Download
This tests standard upgrading from an older version to the current version. It's important to note that this test is dependent on the set of packages in the older version, so it may not be appropriate when significant changes in the upgrade stack (e.g. s-i, u-d-m, or packages they depend on) are in the latest revision.
Flash device to an older version than the current one, e.g. ubuntu-device-flash --channel trusty-proposed --revision -1 --bootstrap
- Open System Settings panel.
- Wait for it to say there is an update available.
Click on Updates available
- Wait for updates to finish downloading.
Click on Install & restart
After the reboot, open System Settings panel, then Updates. It should report that your Software is up to date
Test B -- Good Path Automatic Download Current Packages
This tests standard upgrading like above, but it uses the current set of packages and fakes the system upgrading to a newer version. It actually upgrades from the newest version to the newest version because we're going to lie about what version the device is actually on. This is a good test to run to ensure that the current latest build is working as expected.
Flash device to the current version, e.g. ubuntu-device-flash --channel trusty-proposed --bootstrap
- Falsify which version your device thinks it's on:
adb shell
cd /etc/system-image
cat channel.ini
Look at the build_number line to get the current build number. Subtract 1. (Next line assumes you're at build 246.)
sed -e "s/246/245/" -i.bak channel.ini
(If this gets messed up, just restore channel.ini from channel.ini.bak)
- Open System Settings panel.
- Wait for it to say there is an update available.
Click on Updates available
- Wait for updates to finish downloading.
Click on Install & restart
After the reboot, open System Settings panel, then Updates. It should report that your Software is up to date
Test C -- Good Path Manual Download
This tests standard upgrading from an older version to the current version. It's important to note that this test is dependent on the set of packages in the older version, so it may not be appropriate when significant changes in the upgrade stack (e.g. s-i, u-d-m, or packages they depend on) are in the latest revision.
Flash device to an older version than the current one, e.g. ubuntu-device-flash --channel trusty --revision -1 --bootstrap
- Enable manual downloads:
adb shell
python3 -c "from systemimage.settings import Settings; Settings().set('auto_download', '0')"
- Open System Settings panel
- Wait for it to say there is an update available.
Click on Updates available
Click on Install 1 update
Click on Install & restart
After the reboot, open System Settings panel, then Updates. It should report that your Software is up to date
* Reset automatic downloads!
adb shell
python3 -c "from systemimage.settings import Settings; Settings().set('auto_download', '1')"
Test D -- Good Path Manual Download Current Packages
This tests standard upgrading like above, but it uses the current set of packages and fakes the system upgrading to a newer version. It actually upgrades from the newest version to the newest version because we're going to lie about what version the device is actually on. This is a good test to run to ensure that the current latest build is working as expected.
Flash device to the current version, e.g. ubuntu-device-flash --channel trusty-proposed --bootstrap
- Enable manual downloads:
adb shell
python3 -c "from systemimage.settings import Settings; Settings().set('auto_download', '0')"
- Falsify which version your device thinks it's on:
adb shell
cd /etc/system-image
cat channel.ini
Look at the build_number line to get the current build number. Subtract 1. (Next line assumes you're at build 246.)
sed -e "s/246/245/" -i.bak channel.ini
(If this gets messed up, just restore channel.ini from channel.ini.bak)
- Open System Settings panel.
- Wait for it to say there is an update available.
Click on Updates available
Click on Install 1 update
- Wait for updates to finish downloading.
Click on Install & restart
After the reboot, open System Settings panel, then Updates. It should report that your Software is up to date
* Reset automatic downloads!
adb shell
python3 -c "from systemimage.settings import Settings; Settings().set('auto_download', '1')"
Test E -- Auto Download Multiple Checks
Flash device to an older version than the current one, e.g. ubuntu-device-flash --channel trusty --revision -1 --bootstrap
- Open System Settings panel
- After one second, open Updates panel
- Watch for progress
- If update completes and you are prompted to reboot, then the test succeeded
- Optionally reboot
- Install the update, let the system reboot, and then try again. This time you should be up-to-date.
Test F
- Set the device to download manually.
- Flash to an older revision
Open System Settings and wait for it to say Updates available
Click on About this phone
Click on Check for Update and wait for it to say Install 1 update
Click on Install 1 update and while the files are downloading, swipe up from the bottom and click Back
Click on Check for Update again
Wait for the Update System overlay to come up, and then install the update, and reboot
Additional tests candidates for automation
The following test cases are being automated. Work items are described in this blueprint.
Testing the image update path
- Test that updates from image n-1 work
- Test that updates from image n-2 work
Testing the image updater software
- Test that the updater software in image n can do an update to a single newer version in a synthetic channel
- Test that the updater software in image n can do a multi-step update (applying 5? updates in sequence) in a synthetic channel
- Test that the updater software in image n correctly applies a full-image update when it’s a smaller download than a series of stacked partial upgrades
Process/Merges/TestPlan/ubuntu-system-image (last edited 2016-03-04 20:58:34 by localhost)