Git Product home page Git Product logo

prut's Introduction

Upgradability test for 3rd party applications

Purpose of this tmt test plan is to simplify upgradability testing of 3rd party application on RHEL.

All steps of the test plan are implemented as POSIX compliant shell scripts, therefore there are almost no dependencies (except tmt, see Prerequisites section) to run the plan.

Prerequisites

  1. Fully updated VM with RHEL content (e.g. from Developer Subscription).
    • For RHEL 7 system, extras repo is needed to get leapp, e.g.
      subscription-manager repos --enable rhel-7-server-extras-rpms
  2. SSH public keys for root user are present on the VM, e.g.
    ssh-copy-id root@${VM_IP}
  3. Installed tmt on the host machine (available in Fedora 37 and newer and EPEL 9 and newer, see installation instructions)

Running the test

Run the whole test plan

SOURCE=8.8
TARGET=9.2
VM_IP=192.168.122.118

tmt run \
  --environment SOURCE=${SOURCE} \
  --environment TARGET=${TARGET} \
  --all \
  provision --how connect --guest ${VM_IP} \
  plans --name paths/prut

The environment variables SOURCE and TARGET refers to version of RHEL installed on the machine before and after performing the upgrade and are used to perform sanity checks before and after the upgrade. Please note that not all combinations are valid, for supported upgrade paths see the official documentation for in-place upgrades.

Run only tests from the test plan with pre-upgrade tag

tmt run \
  --environment SOURCE=${SOURCE} --environment TARGET=${TARGET} \
  --all \
  provision --how connect --guest ${VM_IP} \
  plans --name paths/prut \
  tests --filter 'tag: pre-upgrade'

Run just one test of the test plan

tmt run \
  --environment SOURCE=${SOURCE} --environment TARGET=${TARGET} \
  --all \
  provision --how connect --guest ${VM_IP} \
  tests --name /tasks/00_initial_checks

Viewing results

To view results of the last test in web browser, use

tmt run --last report --how html --open

tmt primer

One repo can contain multiple test plans (usually in plans directory) which consists of multiple steps (the most prominent is execute step, which executes the tests). A test plan groups multiple tests (usually in tests directory).

To show details for all plans (only one plan is currently present in this repo)

tmt plans show

To show details for all tests (regardless if they belong to any test plan)

tmt tests show

List tests with specified tag

tmt tests ls --filter 'tag: pre-upgrade'

prut's People

Contributors

vojtechsokol avatar psss avatar

Stargazers

Bob Mader avatar

Watchers

ina vasilevskaya avatar Petr Stodůlka avatar Michal Reznik (mreznik) avatar  avatar

Forkers

psss

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.