All Projects → open-power → op-test

open-power / op-test

Licence: Apache-2.0 License
Testing Firmware for OpenPOWER systems

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
tcl
693 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to op-test

nim-contra
Lightweight Self-Documenting Design by Contract Programming and Security Hardened mode.
Stars: ✭ 46 (+53.33%)
Mutual labels:  testing-tools, testing-framework
api-test
🌿 A simple bash script to test JSON API from terminal in a structured and organized way.
Stars: ✭ 53 (+76.67%)
Mutual labels:  testing-tools, testing-framework
karate
Test Automation Made Simple
Stars: ✭ 6,384 (+21180%)
Mutual labels:  testing-tools, testing-framework
eat
Json based scenario testing tool(which can have test for functional and non-functional)
Stars: ✭ 41 (+36.67%)
Mutual labels:  testing-tools, testing-framework
kheera-testrunner-android
BDD Framework for Android
Stars: ✭ 18 (-40%)
Mutual labels:  testing-tools, testing-framework
test junkie
Highly configurable testing framework for Python
Stars: ✭ 72 (+140%)
Mutual labels:  testing-tools, testing-framework
eaf-linter
🤪 A linter, prettier, and test suite that does everything as-simple-as-possible.
Stars: ✭ 17 (-43.33%)
Mutual labels:  testing-tools, testing-framework
Swagger meqa
Auto generate and run tests using swagger/OpenAPI spec, no coding needed
Stars: ✭ 151 (+403.33%)
Mutual labels:  testing-tools, testing-framework
rtf
Regression testing framework
Stars: ✭ 35 (+16.67%)
Mutual labels:  testing-tools, testing-framework
IO-TESTER
A functional test framework
Stars: ✭ 32 (+6.67%)
Mutual labels:  testing-tools, testing-framework
oz
Oz is a behavioral web-ui testing framework developed to reduce test maintenance by using a predictive model rather than a scriptive model when writing tests.
Stars: ✭ 23 (-23.33%)
Mutual labels:  testing-tools, testing-framework
Wasmite
Now WebAssembly has proper testing, unit-testing and debugging 🤗
Stars: ✭ 20 (-33.33%)
Mutual labels:  testing-tools, testing-framework
Recheck Web
recheck for web apps – change comparison tool with local Golden Masters, Git-like ignore syntax and "Unbreakable Selenium" tests.
Stars: ✭ 224 (+646.67%)
Mutual labels:  testing-tools, testing-framework
PixelTest
Fast, modern, simple iOS snapshot testing written purely in Swift.
Stars: ✭ 56 (+86.67%)
Mutual labels:  testing-tools, testing-framework
Vividus
Vividus is all in one test automation tool
Stars: ✭ 170 (+466.67%)
Mutual labels:  testing-tools, testing-framework
AutoMeter-API
AutoMeter-API是一款针对分布式服务,微服务API功能和性能一体的自动化测试平台,一站式解决应用,服务,API,环境管理,用例,条件,测试场景,计划,测试报告,功能/性能测试兼容支持的一体化工作平台
Stars: ✭ 105 (+250%)
Mutual labels:  testing-tools, testing-framework
Nose2
The successor to nose, based on unittest2
Stars: ✭ 665 (+2116.67%)
Mutual labels:  testing-tools, testing-framework
Acot
💎 Accessibility Testing Framework. More accessible web, all over the world.
Stars: ✭ 112 (+273.33%)
Mutual labels:  testing-tools, testing-framework
extensiveautomation-server
Extensive Automation server
Stars: ✭ 19 (-36.67%)
Mutual labels:  testing-tools, testing-framework
karate-runner
VSCode Extension for Karate
Stars: ✭ 23 (-23.33%)
Mutual labels:  testing-tools, testing-framework

OpenPower Test Framework

This repository provides a collection of tools that enable automated testing of OpenPower systems. The op-test suite is designed to test a machine largely out of band - that is, it is designed for tests that do things like power cycle the machine, test booting different configurations. As part of the op-test, we may run tests on the host itself (such as fwts and HTX)

The end goal is to have a collection of tests that can be run against any OpenPower system to validate it's function. The tests are automation/jenkins ready.

For full documentation, visit http://open-power.github.io/op-test/

Quick Start

OVERVIEW - Clone op-test on some linux box, like your laptop.

git clone https://github.com/open-power/op-test

Prepare the OpenPower system with needed software packages and build the needed tools (see below Target System Requirements).

Run something (see below Running the tests).

Requirements

This framework runs on most Linux based systems.

You need python 3.6 or greater as well as pip:

apt install python3 python3-pip

and to install the python dependencies:

pip3 install -r requirements.txt

For qemu: apt install qemu-utils

You will also need below packages to be installed

    sshpass and (recent) ipmitool - 1.8.15 or above should be adequate.

You will need to run the test suite on a machine that has access to both the BMC and the host of the machine(s) you're testing.

Preparation

The target system will need to have a Host OS that can boot. The Host OS will need to have several things installed on it.

This is a one time setup for the Host OS. If you reinstall the Host OS then these steps will need to be completed again to prepare the Host OS for tests.

Target System Requirements

A basic Linux install is assumed.

You MUST have fwts installed. To do this:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:firmware-testing-team/ppa-fwts-stable
sudo apt-get update
sudo apt-get install fwts

FWTS for RHEL-like systems will need to clone FWTS and build.

After cloning FWTS see the README for pre-reqs and how-to, be sure to 'make install' after building to get the proper paths setup.

git clone git://kernel.ubuntu.com/hwe/fwts.git

It must also have (package names for Debian/Ubuntu systems):

linux-tools-common linux-tools-generic lm-sensors ipmitool i2c-tools
pciutils opal-prd opal-utils device-tree-compiler

On RHEL-like systems, package names are:

lm_sensors ipmitool i2c-tools pciutils kernel-tools dtc

On the Host OS, you will need to clone the skiboot source and then build the following latest utilities.

On the Host OS clone the skiboot source:
git clone https://github.com/open-power/skiboot

Then:
cd skiboot/external/xscom-utils
make
sudo make install
cd ../gard
make
sudo make install
cd ../pflash
make
sudo make install

Running the tests

./op-test -h

Gets you help on what you can run. You will need to (at a minimum) provide BMC and host login information. For example, to run the default test suite:

./op-test --bmc-type AMI             \
          --bmc-ip bmc.example.com   \
          --bmc-username sysadmin    \
          --bmc-password superuser   \
          --bmc-usernameipmi ADMIN   \
          --bmc-passwordipmi admin   \
          --host-ip host.example.com \
          --host-user root           \
          --host-password 1234       \
          --host-lspci host.example.com-lspci.txt

The default test suite will then run.

To get a list of test suites:

./op-test --bmc-type AMI --list-suites

You cun run one or more suites by using the --run-suite command line option. For example, you can choose to run tests that are only at the petitboot command line. By default, the test runner doesn't know what state the machine is in, so will attempt to turn everything off to get it into a known state. You can override this initial state with the --machine-state parameter. You can also run individual tests by using the --run option.

For example:

  ./op-test --bmc-type AMI                          \
            --bmc-ip bmc.example.com                \
            --bmc-username sysadmin                 \
            --bmc-password superuser                \
            --bmc-usernameipmi ADMIN                \
            --bmc-passwordipmi admin                \
            --host-ip host.example.com              \
            --host-user root                        \
            --host-password 1234                    \
            --host-lspci host.example.com-lspci.txt \
            --machine-state PETITBOOT_SHELL         \
            --run testcases.OpTestPCI.OpTestPCISkiroot

The above will assume the machine is sitting at the petitboot prompt and will run the OpTestPCISkiroot test.

Configuration Files

You can save arguments to op-test in a configuration file. The ~/.op-test-framework.conf file is always read, and you can specify another with --config-file.

For example:

[op-test]
bmc_type=OpenBMC
bmc_ip=w39
bmc_username=root
bmc_password=0penBmc
host_ip=w39l
host_user=ubuntu
host_password=abc123

Flashing Firmware

In addition to running tests, you can flash firmware before running the tests. You can also only flash firmware (--only-flash).

  ./op-test --bmc-type FSP  ........ \
        --host-img-url http://example.com/images/firenze/b0628b_1726.861/SIGNED/01SV860_103_056.img \
        --flash-skiboot ~/skiboot/skiboot.lid --flash-kernel zImage.epapr \
        --flash-initramfs rootfs.cpio.xz

  ./op-test --bmc-type OpenBMC  ........ \
        --flash-skiboot ~/skiboot/skiboot.lid.xz

Flashing is BMC dependent, so new platforms may not support it.

The --host-img-url option for FSP systems uses update_flash from the petitboot shell to update the firmware image. If additional --flash options are given, these are flashed after the FSP firmware image.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].