Project

General

Profile

Actions

Transactional Update test description

Basic checks

microos/networking.pm

Basic network and connectivity check.

  • Print network configuration (ip addr show and resolv.conf)
  • Ping localhost 127.0.0.1 (IPv4) and ::1 (IPv6)
  • Curl to openqa.opensuse.org and github.com

microos/libzypp_config.pm

Check that zypper configuration is customized for MicroOS.

  • egrep -x "^solver.onlyRequires ?= ?true" /etc/zypp/zypp.conf
  • egrep -x "^rpm.install.excludedocs ?= ?yes" /etc/zypp/zypp.conf
  • egrep -x "^multiversion ?=" /etc/zypp/zypp.conf

microos/image_checks.pm

Simple image specific checks:

  • Verify that openQA resized the disk image
  • Verify that there is no unpartitioned space left
  • Verify that the filesystem mounted at /var grew beyond the default 5GiB
  • Verify that combustion ran

microos/one_line_checks.pm

Simple checks after installation.

  • Check that snapper is configured snapper list
  • Subvolume check btrfs subvolume show /var
  • kubectl is not installable if SYSTEM_ROLE=microos (only openSUSE MicroOS)
  • crio should be installed if SYSTEM_ROLE=kubeadm (only openSUSE MicroOS)

microos/services_enabled.pm

Check that services are enables based on system role
The following services should be enabled by default:

  • issue-add-ssh-keys
  • issue-generator
  • transactional-update.timer
  • sshd

On other system roles (MicroOS only), other services might be checked to be enabled.

microos/cockpit_service.pm

Basic check for cockpit service.

  • Install cockpit package if not installed
  • Install cockpit-networkmanager package if the system is running network-manager.
  • Install cockpit-wicked package if the system is running wicked.
  • Install cockpit-machines and cockpit-tukit if packages are available.
  • Enable and start cockpit.socket service and check that Cockpit is active and accessible on http://localhost:9090
  • Test Cockpit service survives a reboot (it's active automatically after rebooting)

Specific transactional system tests

transactional/trup_smoke.pm

Basic smoke test to verify all basic transactional update operations work and system can properly boot.

  • Reinstall bootloader: transactional-update bootloader
  • Regenerate grub.cfg: transactional-update grub.cfg
  • Regenerate initrd: transactional-update initrd
  • Regenerate kdump: transactional-update kdump
  • Run cleanup: transactional-update cleanup

transactional/filesystem_ro.pm

Check that root filesystem is read only

  • / is RO:
    • cannot create touch /should_fail
    • btrfs property get / ro | grep "ro=true"
  • /var is RW:
    • can create touch /var/log/should_succeed
    • btrfs property get /var ro | grep "ro=false"
  • /etc is RW:
    • can create touch /etc/should_succeed
  • Look for ro mount point in fstab: findmnt -s / -n -O ro
  • Look for ro mount point in mounted filesystems: findmnt / -n -O ro

transactional/transactional_update.pm

TBD

transactional/rebootmgr.pm

Test rebootmgr using different strategies

  • Test instant reboot
  • Test maint-window strategy
  • Test etcd locking strategy

transactional/health_check.pm

Check that health-check service works correctly.

  • Install and enable service health-checker if not installed.
  • health-checker command shall return passed string.
  • Current snapshot shall be the same as the logged one from health-checker.
  • Update rebootmgr.sh using transactional update shell to force health-checker to fail:
    • f=$(rpm --eval %{_libexecdir})/health-checker/fail.sh; echo -e \'#/bin/sh\n[ "$1" != "check" ]\' > $f && chmod a+x $f
    • reboot
    • health-checker should rollback to the correct snapshot
  • health-checker command shall return passed string.

Updated by jlausuch over 2 years ago ยท 3 revisions