{"id":27298142,"url":"https://github.com/open-power/op-test","last_synced_at":"2025-04-12T00:25:56.915Z","repository":{"id":36794769,"uuid":"41101572","full_name":"open-power/op-test","owner":"open-power","description":"Testing Firmware for OpenPOWER systems","archived":false,"fork":false,"pushed_at":"2024-04-08T04:02:31.000Z","size":25018,"stargazers_count":34,"open_issues_count":73,"forks_count":81,"subscribers_count":24,"default_branch":"master","last_synced_at":"2024-04-08T05:22:07.459Z","etag":null,"topics":["boot","firmware-image","opal","openpower","testing","testing-framework","testing-tools"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-power.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-08-20T14:51:40.000Z","updated_at":"2024-04-08T05:22:10.896Z","dependencies_parsed_at":"2023-02-11T04:30:42.124Z","dependency_job_id":"87284913-38de-41ca-9603-d0a6360c7770","html_url":"https://github.com/open-power/op-test","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-power%2Fop-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-power%2Fop-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-power%2Fop-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-power%2Fop-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-power","download_url":"https://codeload.github.com/open-power/op-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248498937,"owners_count":21114215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boot","firmware-image","opal","openpower","testing","testing-framework","testing-tools"],"created_at":"2025-04-12T00:25:56.167Z","updated_at":"2025-04-12T00:25:56.894Z","avatar_url":"https://github.com/open-power.png","language":"Python","readme":"## OpenPower Test Framework ##\n\nThis repository provides a collection of tools that enable automated testing of\nOpenPower systems. The op-test suite is designed to test a machine\nlargely out of band - that is, it is designed for tests that do things like\npower cycle the machine, test booting different configurations. As part of\nthe op-test, we may run tests on the host itself (such as fwts\nand HTX)\n\nThe end goal is to have a collection of tests that can be run against any\nOpenPower system to validate it's function. The tests are automation/jenkins\nready.\n\nFor full documentation, visit http://open-power.github.io/op-test/\n\n### Quick Start ###\n\nOVERVIEW - Clone op-test on some linux box, like your laptop.\n\ngit clone https://github.com/open-power/op-test\n\nPrepare the OpenPower system with needed software packages and build the\nneeded tools (see below Target System Requirements).\n\nRun something (see below Running the tests).\n\n### Requirements ###\n\nThis framework runs on most Linux based systems.\n\nYou need python 3.6 or greater as well as pip:\n\n    apt install python3 python3-pip\n\nand to install the python dependencies:\n\n    pip3 install -r requirements.txt\n\n    For qemu: apt install qemu-utils\n\nYou will also need below packages to be installed\n\n        sshpass and (recent) ipmitool - 1.8.15 or above should be adequate.\n\nYou will need to run the test suite on a machine that has access to both\nthe BMC and the host of the machine(s) you're testing.\n\n### Preparation ###\n\nThe target system will need to have a Host OS that can boot.\nThe Host OS will need to have several things installed on it.\n\nThis is a one time setup for the Host OS.  If you reinstall the\nHost OS then these steps will need to be completed again to\nprepare the Host OS for tests.\n\n### Target System Requirements ###\n\nA basic Linux install is assumed.\n\nYou **MUST** have `fwts` installed. To do this:\n\n    sudo apt-get install software-properties-common\n    sudo add-apt-repository ppa:firmware-testing-team/ppa-fwts-stable\n    sudo apt-get update\n    sudo apt-get install fwts\n\nFWTS for RHEL-like systems will need to clone FWTS and build.\n\nAfter cloning FWTS see the README for pre-reqs and how-to,\nbe sure to 'make install' after building to get the proper\npaths setup.\n\ngit clone https://github.com/fwts/fwts\n\nIt must also have (package names for Debian/Ubuntu systems):\n\n    linux-tools-common linux-tools-generic lm-sensors ipmitool i2c-tools\n    pciutils opal-prd opal-utils device-tree-compiler\n\nOn RHEL-like systems, package names are:\n\n    lm_sensors ipmitool i2c-tools pciutils kernel-tools dtc\n\nOn the Host OS, you will need to clone the skiboot source and then\nbuild the following latest utilities.\n\n    On the Host OS clone the skiboot source:\n    git clone https://github.com/open-power/skiboot\n\n    Then:\n    cd skiboot/external/xscom-utils\n    make\n    sudo make install\n    cd ../gard\n    make\n    sudo make install\n    cd ../pflash\n    make\n    sudo make install\n\n### Running the tests ###\n\n    ./op-test -h\n\nGets you help on what you can run. You will need to (at a minimum) provide\nBMC and host login information. For example, to run the default test suite:\n\n    ./op-test --bmc-type AMI             \\\n              --bmc-ip bmc.example.com   \\\n              --bmc-username sysadmin    \\\n              --bmc-password superuser   \\\n              --bmc-usernameipmi ADMIN   \\\n              --bmc-passwordipmi admin   \\\n              --host-ip host.example.com \\\n              --host-user root           \\\n              --host-password 1234       \\\n              --host-lspci host.example.com-lspci.txt\n\nThe default test suite will then run.\n\nTo get a list of test suites:\n\n    ./op-test --bmc-type AMI --list-suites\n\nYou cun run one or more suites by using the `--run-suite` command line option.\nFor example, you can choose to run tests that are only at the petitboot\ncommand line. By default, the test runner doesn't know what state the machine\nis in, so will attempt to turn everything off to get it into a known state.\nYou can override this initial state with the `--machine-state` parameter.\nYou can also run individual tests by using the `--run` option.\n\nFor example:\n\n      ./op-test --bmc-type AMI                          \\\n                --bmc-ip bmc.example.com                \\\n                --bmc-username sysadmin                 \\\n                --bmc-password superuser                \\\n                --bmc-usernameipmi ADMIN                \\\n                --bmc-passwordipmi admin                \\\n                --host-ip host.example.com              \\\n                --host-user root                        \\\n                --host-password 1234                    \\\n                --host-lspci host.example.com-lspci.txt \\\n                --machine-state PETITBOOT_SHELL         \\\n                --run testcases.OpTestPCI.OpTestPCISkiroot\n\nThe above will assume the machine is sitting at the petitboot prompt\nand will run the OpTestPCISkiroot test.\n\n### Configuration Files ###\n\nYou can save arguments to `op-test` in a configuration file.\nThe `~/.op-test-framework.conf` file is always read, and you can\nspecify another with `--config-file`.\n\nFor example:\n\n    [op-test]\n    bmc_type=OpenBMC\n    bmc_ip=w39\n    bmc_username=root\n    bmc_password=0penBmc\n    host_ip=w39l\n    host_user=ubuntu\n    host_password=abc123\n\n### Flashing Firmware ###\n\nIn addition to running tests, you can flash firmware before running\nthe tests. You can also only flash firmware (``--only-flash``).\n\n      ./op-test --bmc-type FSP  ........ \\\n            --host-img-url http://example.com/images/firenze/b0628b_1726.861/SIGNED/01SV860_103_056.img \\\n            --flash-skiboot ~/skiboot/skiboot.lid --flash-kernel zImage.epapr \\\n            --flash-initramfs rootfs.cpio.xz\n\n      ./op-test --bmc-type OpenBMC  ........ \\\n            --flash-skiboot ~/skiboot/skiboot.lid.xz\n\nFlashing is BMC dependent, so new platforms may not support it.\n\nThe ``--host-img-url`` option for FSP systems uses ``update_flash`` from\nthe petitboot shell to update the firmware image. If additional ``--flash``\noptions are given, these are flashed *after* the FSP firmware image.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-power%2Fop-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-power%2Fop-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-power%2Fop-test/lists"}