Release Test plan - NetworkGradeLinux/mion-docs GitHub Wiki

Release Testing Plan

NOTE: This document it is not static and is likely to change and evolve over time.

See Release Process for general release information.

Scope of testing

This test plan outlines the (mostly) manual testing that is done prior to releases. Future release should take the work collected here and automate it. For CI/automated testing, see automated testing.

The following systems are for now, out of scope for this testing:

  • Secure boot
  • Container runtime and guests

Test output spreadsheet available HERE

Reference switches

Board Support Packages (BSPs) are provided for a number of other switches outlined in the mion supported switches. Several of the switches on the page are marked as reference switches, meaning that they are the main hardware platforms used for development, testing and validation by the project.

Expected outcome of testing

Release testing is intended to find any new bugs or regressions which might not have otherwise been noticed during the development cycle so they can be fixed.

The current expectation is that these tests will be run manually with future releases moving what can be automated into the automated QA testing. The resulting bugs/regressions will need to be either fixed (if relatively trivial) or logged and triaged for future releases, if necessary.

Before logging any bugs/regressions, make sure that there a issue doesn't already exist in any of the GitHub repos. FIXME add a link to the query here

  • If it is clear where in the code the issue is, log it directly to the correct GitHub repo and add the issue to the "TODO" column of the mion project board

  • If you're not clear where the issue belongs, use the bug/feature template and it will triaged by the team

All new issues will have to be triaged prior to the release process and either closed, fixed or added to the errata, as required.


1. Core tests - Build process and OS [Cxxx]

Test that the system builds when starting from an empty directory and the any instructions in the docs are correct.

A. Build and install

These tests are intended to check that the main documentation is correct and can be used to create a valid image which can be flashed to a switch and will boot up.

Build

  • [C000] Build an image using a clean checkout of mion (sub repos and submodules) with an empty sstate and build directory
    • Verify that the build completes without errors
    • Verify that a valid ONIE image is created
  • [C001] Walk through the steps outlined in the Getting Started Guide
    • Verify that the steps outlined int the document are correct and make sense
    • Verify that the build completes without errors
    • Verify that a valid ONIE image is created

Installation with ONIE

Using one of the reference switches:

  • [C010] Boot the test system (reference switch) into ONIE* and install the image using onie-nos-install <image_url> or ``onie-nos-install <local_file>`
    • Verify that the install completes sucessfully and reboots
  • [C011] Verify that the GRUB/u-boot menu entry is correct and boots

* NOTE: It is expected that the ONIE version installed is relatively recent

  • TODO Add a test for ONIE tools when they have been fixed
  • TODO check that we can read the ONIE version info

B. Mion OS

These tests are intended to check that the system boots correctly and that the OS itself is working correctly with no new or unexpected issues:

  • [C100] System boots with no error messages in the log (dmesg)
  • [C101] Check for failed systemd services using systemctl systemctl list-units --failed
  • [C102] Power cycle the switch and confirm that there are no unexpected errors
  • [C103] Ensure package manager is working with opkg update
  • [C104] Build image with ptest support with ptest-runner installed.
  • [C105] Run ptest-runner, directing the output to <VENDOR><MACHINE>.log and commit the file to mion-testing, saving to <RELASE NAME>_ptests/. If older log exists, replace. Review file for any failed tests. If time permits, add SUMMARY: at top of log with a list of failed tests.

2. BSP / hardware / platform specific support [Pxxx]

1. ONLPv1

  • [P001] Check for ONLP errors in the boot sequence with dmesg
  • [P002] Run onlps and verify that the output is correct (per machine)

1. ONLPv2 FIXME

  • [P???] Run onlps chassis onie show
  • [P???] Run onlps chassis asset show
  • [P???] Run onlps chassis env
  • [P???] Run onlps sfp inventory
  • [P???] Run onlps sfp bitmaps
  • [P???] Run onlps sfp dev read <port> <devaddr> <addr> <len> eg onlps sfp dev read 49 0x50 0 256
    • FIXME This test needs to be defined per system and presumably requires hardware to be plugged in
  • [P???] Run onlps platform manager run 30
  • [P???] Run onlps fan percentage get 1; sleep 5; onlps fan percentage set 1 100 You will want to reset the fan speed with the got percentage in the first part of the command
  • [P???] Run onlps oid to json psu-1 debug-all
  • [P???] Run onlps chassis debug show

3. DENT

DENT testing should be fairly similar to ONLP testing.

4. Stratum

TODO

3. ASIC testing

This section is about exercising and testing the various ASIC SDEs

1. Tofino based systems.

TODO

⚠️ **GitHub.com Fallback** ⚠️