Dave Jones has proposed merging ~waveform/ubuntu-manual-tests:pi-boot into ubuntu-manual-tests:main.
Requested reviews: Ubuntu Testcase Admins (ubuntu-testcase) For more details, see: https://code.launchpad.net/~waveform/ubuntu-manual-tests/+git/ubuntu-manual-tests/+merge/490120 Add A/B boot test cases to all Pi models. Also add the server test cases for the Pi 500 which were missing previously. -- Your team Canonical's Ubuntu QA is subscribed to branch ubuntu-manual-tests:main.
diff --git a/definitions/pi_desktop_cases.xml b/definitions/pi_desktop_cases.xml index adbf175..62c2ce0 100644 --- a/definitions/pi_desktop_cases.xml +++ b/definitions/pi_desktop_cases.xml @@ -97,6 +97,30 @@ </dd> </ut:test> + <ut:test id="ab-piboot"> + <dt> + (for 25.10, questing, and onwards only)<br/> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + </ut:test> + <ut:test id="usb-file-transfer"> <dt> Perform a large (300-600MB) file copy to USB storage @@ -340,6 +364,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -369,6 +394,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -398,6 +424,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -427,6 +454,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -456,6 +484,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -485,6 +514,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -519,6 +549,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -553,6 +584,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -582,6 +614,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -611,6 +644,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -640,6 +674,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -669,6 +704,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -698,6 +734,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -727,6 +764,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -756,6 +794,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">15GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -778,6 +817,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">15GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -800,6 +840,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">15GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -822,6 +863,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> @@ -844,6 +886,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:incldue ref="dual-monitor" /> <ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include> diff --git a/definitions/pi_server_cases.xml b/definitions/pi_server_cases.xml index d8d4225..efa653e 100644 --- a/definitions/pi_server_cases.xml +++ b/definitions/pi_server_cases.xml @@ -73,6 +73,30 @@ </dd> </ut:test> + <ut:test id="ab-piboot"> + <dt> + (for 25.10, questing, and onwards only)<br/> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + </ut:test> + <ut:test id="usb-file-transfer"> <dt> Perform a large (300-600MB) file copy to USB storage @@ -294,7 +318,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> </ut:test> <ut:test id="raspinfo"> @@ -311,6 +335,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">1.6-1.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> @@ -348,6 +373,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> @@ -385,6 +411,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> @@ -422,6 +449,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">800-1000MB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2</ut:define></ut:include> @@ -452,6 +480,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">800-1000MB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2</ut:define></ut:include> @@ -475,6 +504,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">300-500MB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2</ut:define></ut:include> @@ -504,6 +534,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">800-1000MB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2</ut:define></ut:include> @@ -524,6 +555,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">800-1000MB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2</ut:define></ut:include> @@ -546,6 +578,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">800-1000MB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2</ut:define></ut:include> @@ -569,6 +602,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="audio"> @@ -599,6 +633,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">1.6-1.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="audio"> @@ -629,6 +664,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="audio"> @@ -659,6 +695,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="audio"> @@ -695,6 +732,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">300-500MB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="audio"> @@ -720,6 +758,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">1.6-1.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> @@ -753,6 +792,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">3.6-3.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> @@ -786,6 +826,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> @@ -819,6 +860,7 @@ <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">15GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> @@ -838,13 +880,14 @@ <ut:include ref="bluetooth" /> </ut:case> - <ut:case id="1826_RaspberryPi 500 Post-install"> + <ut:case id="1841_RaspberryPi 500 Post-install"> <ut:define name="model">Raspberry Pi 500</ut:define> <ut:include ref="power-led" /> <ut:include ref="running" /> <ut:include ref="flash-kernel" /> <ut:include ref="reboot" /> <ut:include ref="shutdown" /> + <ut:include ref="ab-piboot" /> <ut:include ref="ram-free"><ut:define name="mem">7.6-7.8GB</ut:define></ut:include> <ut:include ref="usb-file-transfer" /> <ut:include ref="usb-keyboard"><ut:define name="usb">USB2 (black)</ut:define></ut:include> diff --git a/testcases/image/1711_RaspberryPi 4 2GB Post-install b/testcases/image/1711_RaspberryPi 4 2GB Post-install index 5b72a31..d667b3d 100644 --- a/testcases/image/1711_RaspberryPi 4 2GB Post-install +++ b/testcases/image/1711_RaspberryPi 4 2GB Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -310,7 +333,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1719_RaspberryPi 4 4GB Post-install b/testcases/image/1719_RaspberryPi 4 4GB Post-install index f12230f..941c532 100644 --- a/testcases/image/1719_RaspberryPi 4 4GB Post-install +++ b/testcases/image/1719_RaspberryPi 4 4GB Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -310,7 +333,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1720_RaspberryPi 4 8GB Post-install b/testcases/image/1720_RaspberryPi 4 8GB Post-install index 2ffcb28..20af1f4 100644 --- a/testcases/image/1720_RaspberryPi 4 8GB Post-install +++ b/testcases/image/1720_RaspberryPi 4 8GB Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -310,7 +333,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1721_RaspberryPi 3B+ Post-install b/testcases/image/1721_RaspberryPi 3B+ Post-install index 375cf3d..7ba26e4 100644 --- a/testcases/image/1721_RaspberryPi 3B+ Post-install +++ b/testcases/image/1721_RaspberryPi 3B+ Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -275,7 +298,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1722_RaspberryPi 3B Post-install b/testcases/image/1722_RaspberryPi 3B Post-install index 8a426a1..d5b8090 100644 --- a/testcases/image/1722_RaspberryPi 3B Post-install +++ b/testcases/image/1722_RaspberryPi 3B Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> diff --git a/testcases/image/1723_RaspberryPi 3A+ Post-install b/testcases/image/1723_RaspberryPi 3A+ Post-install index 0836068..8538069 100644 --- a/testcases/image/1723_RaspberryPi 3A+ Post-install +++ b/testcases/image/1723_RaspberryPi 3A+ Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -260,7 +283,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1724_RaspberryPi 2 Post-install b/testcases/image/1724_RaspberryPi 2 Post-install index f14809e..bd34a1d 100644 --- a/testcases/image/1724_RaspberryPi 2 Post-install +++ b/testcases/image/1724_RaspberryPi 2 Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> diff --git a/testcases/image/1726_RaspberryPi CM3+ Post-install b/testcases/image/1726_RaspberryPi CM3+ Post-install index c0b0154..0a078ce 100644 --- a/testcases/image/1726_RaspberryPi CM3+ Post-install +++ b/testcases/image/1726_RaspberryPi CM3+ Post-install @@ -46,6 +46,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -169,7 +192,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1727_RaspberryPi CM3+ Lite Post-install b/testcases/image/1727_RaspberryPi CM3+ Lite Post-install index 5a008f5..38dded4 100644 --- a/testcases/image/1727_RaspberryPi CM3+ Lite Post-install +++ b/testcases/image/1727_RaspberryPi CM3+ Lite Post-install @@ -46,6 +46,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -169,7 +192,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1740_RaspberryPi 400 Post-install b/testcases/image/1740_RaspberryPi 400 Post-install index 8ccf7bf..4dc33a0 100644 --- a/testcases/image/1740_RaspberryPi 400 Post-install +++ b/testcases/image/1740_RaspberryPi 400 Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -269,7 +292,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1741_RaspberryPi CM4 2GB Post-install b/testcases/image/1741_RaspberryPi CM4 2GB Post-install index 25daa59..4e33efb 100644 --- a/testcases/image/1741_RaspberryPi CM4 2GB Post-install +++ b/testcases/image/1741_RaspberryPi CM4 2GB Post-install @@ -46,6 +46,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -260,7 +283,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1742_RaspberryPi CM4 4GB Post-install b/testcases/image/1742_RaspberryPi CM4 4GB Post-install index aabb977..7018f43 100644 --- a/testcases/image/1742_RaspberryPi CM4 4GB Post-install +++ b/testcases/image/1742_RaspberryPi CM4 4GB Post-install @@ -46,6 +46,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -260,7 +283,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1745_RaspberryPi 4 4GB Desktop SD b/testcases/image/1745_RaspberryPi 4 4GB Desktop SD index 754cf84..9551bf7 100644 --- a/testcases/image/1745_RaspberryPi 4 4GB Desktop SD +++ b/testcases/image/1745_RaspberryPi 4 4GB Desktop SD @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1746_RaspberryPi 4 8GB Desktop SD b/testcases/image/1746_RaspberryPi 4 8GB Desktop SD index b5bad2f..04cd3b9 100644 --- a/testcases/image/1746_RaspberryPi 4 8GB Desktop SD +++ b/testcases/image/1746_RaspberryPi 4 8GB Desktop SD @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1747_RaspberryPi 400 Desktop SD b/testcases/image/1747_RaspberryPi 400 Desktop SD index 8a26428..3b809b0 100644 --- a/testcases/image/1747_RaspberryPi 400 Desktop SD +++ b/testcases/image/1747_RaspberryPi 400 Desktop SD @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1749_RaspberryPi CM4 4GB Desktop eMMC b/testcases/image/1749_RaspberryPi CM4 4GB Desktop eMMC index 4cd9416..5ff2dc1 100644 --- a/testcases/image/1749_RaspberryPi CM4 4GB Desktop eMMC +++ b/testcases/image/1749_RaspberryPi CM4 4GB Desktop eMMC @@ -81,6 +81,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1750_RaspberryPi CM4 8GB Desktop eMMC b/testcases/image/1750_RaspberryPi CM4 8GB Desktop eMMC index 303b2a1..6fd51a3 100644 --- a/testcases/image/1750_RaspberryPi CM4 8GB Desktop eMMC +++ b/testcases/image/1750_RaspberryPi CM4 8GB Desktop eMMC @@ -81,6 +81,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1752_RaspberryPi Zero 2 Post-install b/testcases/image/1752_RaspberryPi Zero 2 Post-install index c4e5027..8b63315 100644 --- a/testcases/image/1752_RaspberryPi Zero 2 Post-install +++ b/testcases/image/1752_RaspberryPi Zero 2 Post-install @@ -58,6 +58,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -231,7 +254,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1777_RaspberryPi CM4 8GB Post-install b/testcases/image/1777_RaspberryPi CM4 8GB Post-install index d8e6e88..3e276ab 100644 --- a/testcases/image/1777_RaspberryPi CM4 8GB Post-install +++ b/testcases/image/1777_RaspberryPi CM4 8GB Post-install @@ -46,6 +46,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -260,7 +283,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1791_RaspberryPi 5 4GB Desktop SD b/testcases/image/1791_RaspberryPi 5 4GB Desktop SD index 25bd403..83960b0 100644 --- a/testcases/image/1791_RaspberryPi 5 4GB Desktop SD +++ b/testcases/image/1791_RaspberryPi 5 4GB Desktop SD @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1792_RaspberryPi 5 8GB Desktop SD b/testcases/image/1792_RaspberryPi 5 8GB Desktop SD index 07468b2..3370366 100644 --- a/testcases/image/1792_RaspberryPi 5 8GB Desktop SD +++ b/testcases/image/1792_RaspberryPi 5 8GB Desktop SD @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1793_RaspberryPi 5 4GB Post-install b/testcases/image/1793_RaspberryPi 5 4GB Post-install index 5ac3660..55e329f 100644 --- a/testcases/image/1793_RaspberryPi 5 4GB Post-install +++ b/testcases/image/1793_RaspberryPi 5 4GB Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -285,7 +308,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1794_RaspberryPi 5 8GB Post-install b/testcases/image/1794_RaspberryPi 5 8GB Post-install index 40cfc83..8045f3b 100644 --- a/testcases/image/1794_RaspberryPi 5 8GB Post-install +++ b/testcases/image/1794_RaspberryPi 5 8GB Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -285,7 +308,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1812_RaspberryPi 4 4GB Desktop USB b/testcases/image/1812_RaspberryPi 4 4GB Desktop USB index c9d81e3..fdb3026 100644 --- a/testcases/image/1812_RaspberryPi 4 4GB Desktop USB +++ b/testcases/image/1812_RaspberryPi 4 4GB Desktop USB @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1813_RaspberryPi 4 8GB Desktop USB b/testcases/image/1813_RaspberryPi 4 8GB Desktop USB index 459e772..5e6eb1b 100644 --- a/testcases/image/1813_RaspberryPi 4 8GB Desktop USB +++ b/testcases/image/1813_RaspberryPi 4 8GB Desktop USB @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1814_RaspberryPi 400 Desktop USB b/testcases/image/1814_RaspberryPi 400 Desktop USB index cec55e2..f4e489d 100644 --- a/testcases/image/1814_RaspberryPi 400 Desktop USB +++ b/testcases/image/1814_RaspberryPi 400 Desktop USB @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1815_RaspberryPi 5 4GB Desktop USB3 b/testcases/image/1815_RaspberryPi 5 4GB Desktop USB3 index 655f82b..9789c08 100644 --- a/testcases/image/1815_RaspberryPi 5 4GB Desktop USB3 +++ b/testcases/image/1815_RaspberryPi 5 4GB Desktop USB3 @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1816_RaspberryPi 5 4GB Desktop NVMe b/testcases/image/1816_RaspberryPi 5 4GB Desktop NVMe index a948b69..baa5ad1 100644 --- a/testcases/image/1816_RaspberryPi 5 4GB Desktop NVMe +++ b/testcases/image/1816_RaspberryPi 5 4GB Desktop NVMe @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1817_RaspberryPi 5 8GB Desktop USB b/testcases/image/1817_RaspberryPi 5 8GB Desktop USB index f7bded7..143d558 100644 --- a/testcases/image/1817_RaspberryPi 5 8GB Desktop USB +++ b/testcases/image/1817_RaspberryPi 5 8GB Desktop USB @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1818_RaspberryPi 5 8GB Desktop NVMe b/testcases/image/1818_RaspberryPi 5 8GB Desktop NVMe index 274ac27..356c3a9 100644 --- a/testcases/image/1818_RaspberryPi 5 8GB Desktop NVMe +++ b/testcases/image/1818_RaspberryPi 5 8GB Desktop NVMe @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears @@ -190,6 +213,71 @@ and that the desktop unlocks successfully (without the system hanging). </dd> + + <dt> + Check the CPU clock speed using <code>vcgencmd</code> + <ul> + <li>Stress the CPU by doing <code>yes > /dev/null &</code></li> + <li>Run <code>sudo vcgencmd measure_clock arm</code> after about 5 sec</li> + <li>Kill the stress process</li> + </ul> + </dt> + <dd>The output should be around 2.4GHz (obtained from online specs)</dd> + + + <dt> + Run <code>sudo vcmailbox 0x00010004 8 8 0 0</code> + </dt> + <dd> + The output should have the board serial number as the 6th integer. + </dd> + + + <dt> + Test <code>dtmerge</code> + <ul> + <li>Copy the live device tree using <code>dtc -I fs -O dtb -o test.dtb /proc/device-tree</code></li> + <li>Use dtmerge to overclock the SD card. <code>dtmerge test.dtb merged.dtb - sd_overclock=62</code></li> + <li>Check the contents of the new DTB. <code>dtdiff test.dtb merged.dtb</code></li> + <li>Delete both test.dtb and merged.dtb</li> + </ul> + </dt> + <dd> + merged.dtb should have <code>brcm,overclock-50 = 0x3e</code> under the SD card device. + </dd> + + + <dt> + Test <code>dtoverlay</code> + <ul> + <li>Run <code>sudo dtoverlay pwm</code></li> + <li>Run <code>sudo dtoverlay -l</code></li> + </ul> + </dt> + <dd>The PWM Overlay should show up as loaded. Remove it by running <code>sudo dtoverlay -r pwm</code></dd> + + + <dt> + Test <code>dtparam</code> + <ul> + <li>Run <code>sudo dtparam sd_overclock=62</code></li> + <li>Run <code>sudo dtparam -l</code></li> + </ul> + </dt> + <dd>The sd_overclock parameter should show up as set. Remove it by running <code>sudo dtparam -r 0</code></dd> + + + <dt> + Run <code>sudo pinctrl</code> + </dt> + <dd>THe output should have status of the GPIO pins.</dd> + + + <dt> + Run <code>sudo raspinfo</code> + </dt> + <dd>The output should have an information dump about the Pi.</dd> + </dl> <p>If <strong>all</strong> actions produce the expected results listed, diff --git a/testcases/image/1824_RaspberryPi 5 2GB Post-install b/testcases/image/1824_RaspberryPi 5 2GB Post-install index 3e77d9e..90bb3a3 100644 --- a/testcases/image/1824_RaspberryPi 5 2GB Post-install +++ b/testcases/image/1824_RaspberryPi 5 2GB Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> @@ -285,7 +308,7 @@ <dt> Run <code>sudo pinctrl</code> </dt> - <dd>THe output should have status of the GPIO pins.</dd> + <dd>The output should have status of the GPIO pins.</dd> <dt> diff --git a/testcases/image/1825_RaspberryPi 5 16GB Post-install b/testcases/image/1825_RaspberryPi 5 16GB Post-install index 292d9b4..2786a9f 100644 --- a/testcases/image/1825_RaspberryPi 5 16GB Post-install +++ b/testcases/image/1825_RaspberryPi 5 16GB Post-install @@ -55,6 +55,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Check output of <code>free -h</code> </dt> <dd> diff --git a/testcases/image/1827_RaspberryPi 5 16GB Desktop SD b/testcases/image/1827_RaspberryPi 5 16GB Desktop SD index 6e88b3a..19eff01 100644 --- a/testcases/image/1827_RaspberryPi 5 16GB Desktop SD +++ b/testcases/image/1827_RaspberryPi 5 16GB Desktop SD @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1828_RaspberryPi 5 16GB Desktop USB b/testcases/image/1828_RaspberryPi 5 16GB Desktop USB index f991e91..b0269e6 100644 --- a/testcases/image/1828_RaspberryPi 5 16GB Desktop USB +++ b/testcases/image/1828_RaspberryPi 5 16GB Desktop USB @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1829_RaspberryPi 5 16GB Desktop NVMe b/testcases/image/1829_RaspberryPi 5 16GB Desktop NVMe index 097ab58..f9cf89e 100644 --- a/testcases/image/1829_RaspberryPi 5 16GB Desktop NVMe +++ b/testcases/image/1829_RaspberryPi 5 16GB Desktop NVMe @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1830_RaspberryPi 500 SD b/testcases/image/1830_RaspberryPi 500 SD index 90dc97a..32b29e1 100644 --- a/testcases/image/1830_RaspberryPi 500 SD +++ b/testcases/image/1830_RaspberryPi 500 SD @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1831_RaspberryPi 500 USB b/testcases/image/1831_RaspberryPi 500 USB index 6139a20..9521649 100644 --- a/testcases/image/1831_RaspberryPi 500 USB +++ b/testcases/image/1831_RaspberryPi 500 USB @@ -77,6 +77,29 @@ <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> Launch Settings from the menu that appears, then "About" in the left panel of the window that appears diff --git a/testcases/image/1841_RaspberryPi 500 Post-install b/testcases/image/1841_RaspberryPi 500 Post-install new file mode 100644 index 0000000..7ba76c0 --- /dev/null +++ b/testcases/image/1841_RaspberryPi 500 Post-install @@ -0,0 +1,262 @@ +<!-- Please do not edit this file directly; it was generated with the + tools/test_case_gen script using the following configuration as input: + definitions/pi_server_cases.xml +--> + + + <p>This test case is to be carried out on a Raspberry Pi 500.</p> + <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media"> + IoT installation media</a> + </p> + <dl> + + + <dt> + After powering on the machine, look at the power LED + </dt> + <dd> + The power LED illuminates and stays illuminated while the kernel continues + to boot. + </dd> + + + <dt> + After logging in, run <code>systemctl status</code>, and look at the + "State:" reported at the top of the output + </dt> + <dd> + State should be reported as "running". In particular, it should + <em>not</em> read "degraded". + </dd> + + + <dt> + Run <code>sudo flash-kernel</code> + </dt> + <dd> + Exit code is clean (0) and no error messages are reported + </dd> + + + <dt> + Run <code>sudo reboot</code> + </dt> + <dd> + System reboots successfully to a login prompt + </dd> + + + <dt> + Run <code>sudo shutdown -h now</code> + </dt> + <dd> + System shuts down in a reasonable time (less than a minute) + </dd> + + + <dt> + (for 25.10, questing, and onwards only)<br> + Create new boot assets and deliberately corrupt them, ensuring that + boot fallback operates as expected + <ul> + <li>Run <code>sudo flash-kernel</code> to write new boot assets to the + boot partition</li> + <li>Run <code>sudo truncate -s 10M /boot/firmware/vmlinuz</code> to + truncate the Linux kernel, corrupting it</li> + <li>Run <code>sudo reboot</code></li> + <li>Once the system finally returns to a login prompt, run <code>cat + /boot/firmware/new/state</code></li> + </ul> + </dt> + <dd> + Observe three separate reboots: the first should be relatively short and + causes the pi to enter "tryboot" mode. The second should fail with the + Linux kernel panicking. The third should be the fallback which should + then succeed. The final cat command should print "bad" indicating the + new boot assets were found to be faulty. + </dd> + + + <dt> + Check output of <code>free -h</code> + </dt> + <dd> + Reported "Mem" under "total" is consistent with a + Raspberry Pi 500. It should be in the region of 7.6-7.8GB. + </dd> + + + <dt> + Perform a large (300-600MB) file copy to USB storage + <ul> + <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish + bs=1M count=500</code></li> + <li>Insert a USB stick (appropriately sized) into a spare USB port</li> + <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li> + <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code> + (modify mount-point as necessary; check <code>sudo dmesg</code> + output if unsure)</li> + <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li> + <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li> + <li>Remove the stick from the USB port</li> + <li>Re-insert the stick into the USB port</li> + <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code> + (again, adjust mount-point as necessary)</li> + <li>Compare the copied file to that on the stick: <code>cmp rubbish + /mnt/stick/rubbish</code></li> + </ul> + </dt> + <dd> + <code>cmp</code> returns 0 and outputs nothing, indicating the files are + identical + </dd> + + + <dt> + Connect a USB keyboard to one of the USB2 (black) ports + </dt> + <dd> + Verify that keys typed on the keyboard appear on the console + </dd> + + + <dt> + Connect a USB keyboard to one of the USB3 (blue) ports + </dt> + <dd> + Verify that keys typed on the keyboard appear on the console + </dd> + + + <dt> + With an HDMI monitor that supports audio plugged into + the HDMI0 output, and an available MP3 file: + <ul> + <li>Install ffmpeg and amixer with <code>sudo apt install ffmpeg + alsa-utils</code></li> + <li>Find the correct card name for the HDMI0 port: + <code>cat /proc/asound/cards</code> and note the name in [brackets] + for the HDMI0 port</li> + <li>Attempt to play your MP3 file with: <code>ffmpeg -i + <em>music.mp3</em> -f alsa -ar 22050 default:CARD=<em>name</em></code> + substituting <em>name</em> for the card name found during the + previous step, and <em>music.mp3</em> for your choice of MP3 file, + e.g. <code>ffmpeg -i "Jeff Wayne - War of the Worlds.mp3" + -f alsa -ar 22050 default:CARD=vc4hdmi0</code></li> + <li>Use <tt>Ctrl+C</tt> or <tt>q</tt> to end playback early, if you + wish</li> + <li>If you cannot hear anything, first check that the mixer's volume is + not set too low; run <code>alsamixer</code>, and adjust the volume + (<tt>J</tt> for down, <tt>K</tt> for up) before exiting + (<tt>Esc</tt>) and retrying playback</li> + </ul> + </dt> + <dd>Audio can be heard through the device</dd> + + + <dt> + With an HDMI monitor that supports audio plugged into + the HDMI1 output, and an available MP3 file: + <ul> + <li>Install ffmpeg and amixer with <code>sudo apt install ffmpeg + alsa-utils</code></li> + <li>Find the correct card name for the HDMI1 port: + <code>cat /proc/asound/cards</code> and note the name in [brackets] + for the HDMI1 port</li> + <li>Attempt to play your MP3 file with: <code>ffmpeg -i + <em>music.mp3</em> -f alsa -ar 22050 default:CARD=<em>name</em></code> + substituting <em>name</em> for the card name found during the + previous step, and <em>music.mp3</em> for your choice of MP3 file, + e.g. <code>ffmpeg -i "Jeff Wayne - War of the Worlds.mp3" + -f alsa -ar 22050 default:CARD=vc4hdmi0</code></li> + <li>Use <tt>Ctrl+C</tt> or <tt>q</tt> to end playback early, if you + wish</li> + <li>If you cannot hear anything, first check that the mixer's volume is + not set too low; run <code>alsamixer</code>, and adjust the volume + (<tt>J</tt> for down, <tt>K</tt> for up) before exiting + (<tt>Esc</tt>) and retrying playback</li> + </ul> + </dt> + <dd>Audio can be heard through the device</dd> + + + <dt> + Check auto-configuration of ethernet + <ul> + <li>Run <code>ip addr</code></li> + <li>Check that a valid IP address is recorded on the eth0 interface</li> + <li>Check <code>ping google.com</code> successfully pings a few times + (<tt>Ctrl+C</tt> to cancel)</li> + </ul> + </dt> + <dd> + The "eth0" interface should have a DHCP + assigned IP address and you should be able to ping google.com + </dd> + + + <dt> + Configure wifi via netplan + <ul> + <li>Place the following in <code>/etc/netplan/wifi.yaml</code> + (substituting the SSID and password as necessary):</li> + <li><pre> + network: + version: 2 + wifis: + wlan0: + dhcp4: true + access-points: + my-ssid-here: + password: my-password-here</pre> + </li> + <li>Run <code>sudo netplan apply</code></li> + <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip + addr</code></li> + <li>Check that a valid IP address is recorded on the wlan0 interface</li> + <li>Check <code>ping google.com</code> successfully pings a few times + (<tt>Ctrl+C</tt> to cancel)</li> + </ul> + </dt> + <dd> + The "wlan0" interface should have a DHCP + assigned IP address and you should be able to ping google.com + </dd> + + + <dt> + Configure bluetooth, scan for, and pair, a device + <ul> + <li>Install bluez with <code>sudo apt install bluez</code></li> + <li>Run <code>sudo bluetoothctl</code></li> + <li>Check bluetoothctl prints <code>Agent registered</code></li> + <li>Check the MAC address looks "real" (not some obviously blank + value like AA:AA:AA:AA:AA:AA)</li> + <li>Run <code>scan on</code></li> + <li>Make some other Bluetooth device visible for pairing (e.g. go into + Bluetooth settings on your Android phone)</li> + <li>Verify the other Bluetooth device appears in console output</li> + <li>Run <code>pair XX:XX:XX:XX:XX:XX</code> + where XX:XX:XX:XX:XX:XX is the other device's MAC address, as it + appears in scan output + </li> + <li>Verify the passcode on both devices</li> + <li>Check output includes "Pairing successful"</li> + <li>Disable scanning with <code>scan off</code></li> + <li>Exit tool with <code>quit</code></li> + </ul> + </dt> + <dd> + The Bluetooth interface should have a valid MAC address (not + AA:AA:AA:AA:AA:AA), can see and pair with another Bluetooth device. + </dd> + + + </dl> + <p>If <strong>all</strong> actions produce the expected results listed, + please <a href="results#add_result">submit</a> a 'passed' result.</p> + <p>If <strong>any</strong> action fails, or produces an unexpected result, + please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include + the bug number when you <a href="results#add_result">submit</a> your + result.</p> + \ No newline at end of file
-- Mailing list: https://launchpad.net/~canonical-ubuntu-qa Post to : canonical-ubuntu-qa@lists.launchpad.net Unsubscribe : https://launchpad.net/~canonical-ubuntu-qa More help : https://help.launchpad.net/ListHelp