Skip to main content

Lightweight, fast and customer centric tests collection for Linux OS.

Project description

os-tests

Introduction

os-tests is a lightweight, fast and customer centric tests collection for Linux OS.

Installation

Install from pip

# pip install os-tests

note: please install paramiko-fork if run os-tests in server-client mode. the main branch of paramiko lacking of rsa-sha2-256 and rsa-sha2-512 support to connect rhel-91643. os-tests do not set it as required because extra pkgs (eg. libffi-devel, openssl-devel, python-devel) are required in aarch64 to compile cryptography.

Install from source code

# git clone https://github.com/liangxiao1/os-tests.git
# cd os-tests
# python3 setup.py install

Build wheel from source code and install it

# python3 setup.py sdist bdist_wheel
# pip install -U dist/os_tests-0.0.3-py3-none-any.whl

Public new wheels on pypi (maintainer use only)

# python3 -m twine upload dist/*

Run test

Run all supported cases in local or on remote node

# os-tests
# os-tests --host <remote_node> --user <remote_user> --keyfile <remote_keyfile> --result <result_dir> -p <cases>

note: the default path is "/usr/local/bin" if not in virtual environment.
or
# python3 -m unittest -v os_tests.os_tests_run

List all supported cases only without run

# os-tests -l

Filter case name with keywords ltp and virtwhat

# os-tests -l -p ltp,virtwhat

Filter case name with keywords ltp and skip test_ltp_ipsec_icmp

# os-tests -l -p ltp -s test_ltp_ipsec_icmp

Run all cases in one file

# os-tests -p test_general_check
or
# python3 -m unittest -v os_tests.tests.test_general_check

Run single case in one file

# os-tests -p test_change_clocksource
or
# python3 -m unittest -v os_tests.tests.test_general_test.TestGeneralTest.test_change_clocksource

The config file

You can change the default setting in "cfg/os-tests.yaml".

If you want to run os-tests all cases in remote node to support lifecyce cases which needs reboot.
Please specify below options in static configuration:
remote_node:
remote_user: ec2-user
remote_keyfile:

It equals calling in command line directly.

The log file

The suite saves summary to sum.html and sum.log under /tmp/os_tests_result/. The test debug log files are saved in "/tmp/os_tests_result/debug" following case name by default. You can change "results_dir" in "cfg/os-tests.yaml" to save log to other place.

Below is an example:

#  os-tests -p test_change_clocksource
Run in mode: is_listcase:False pattern: test_change_clocksource
test_change_clocksource (os_tests.tests.test_general_test.TestGeneralTest) ... ok
----------------------------------------------------------------------
summary in html: /tmp/os_tests_result/sum.html
summary in text: /tmp/os_tests_result/sum.log
----------------------------------------------------------------------
Ran 1 test in 0.383s

OK

# ls -l /tmp/os_tests_result/debug/
total 8
-rw-r--r--. 1 root root 5472 Mar 30 16:44 os_tests.tests.test_general_test.TestGeneralTest.test_change_clocksource.debug

The installed files

All test files are located in "os_tests/tests" directory.

# pip3 show -f os-tests
Name: os-tests
Version: 0.0.5
Summary: Lightweight, fast check and tests collection for Linux OS
Home-page: https://github.com/liangxiao1/os-tests
Author: Xiao Liang
Author-email: xiliang@redhat.com
License: GPLv3+
Location: /usr/local/lib/python3.6/site-packages
Requires: PyYAML
Files:
  os_tests/__init__.py
  os_tests/cfg/os-tests.yaml
  os_tests/data/baseline_log.json
  os_tests/libs/__init__.py
  os_tests/libs/utils_lib.py
  os_tests/os_tests_all.py
  os_tests/tests/__init__.py
  os_tests/tests/test_cloud_init.py
  os_tests/tests/test_general_check.py
  os_tests/tests/test_general_test.py
  os_tests/tests/test_ltp.py

Recommend test matrix to catch potiential issues

  • run in normal kernel, it is the most used senario
  • run in debug kernel with 'kmemleak=on'
  • run in fips enabled kernel
  • run in remote-client mode to cover lifecycle cases

Third party utils

Below tools are shiped under 'utils' directory with os-tests because not all systems can reach github.

Contribution

You are welcomed to create pull request or raise issue. New case from real customer senario or rhbz is prefered.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

os-tests-0.1.0.tar.gz (44.2 MB view hashes)

Uploaded Source

Built Distribution

os_tests-0.1.0-py3-none-any.whl (44.2 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page