{"id":22253508,"url":"https://github.com/nitrokey/nitrokey-hardware-test","last_synced_at":"2025-03-25T12:25:25.907Z","repository":{"id":246351622,"uuid":"817766969","full_name":"Nitrokey/nitrokey-hardware-test","owner":"Nitrokey","description":"Automatic Test Executor on real hardware (Hardware-in-Loop)","archived":false,"fork":false,"pushed_at":"2024-11-19T18:47:48.000Z","size":31007,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-25T06:49:48.389Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nitrokey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2024-06-20T11:55:13.000Z","updated_at":"2024-11-19T16:49:39.000Z","dependencies_parsed_at":"2024-07-08T09:14:59.075Z","dependency_job_id":"7d5119d0-83ad-41a1-94ef-6639b55b2377","html_url":"https://github.com/Nitrokey/nitrokey-hardware-test","commit_stats":null,"previous_names":["nitrokey/nitrokey-hardware-test"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-hardware-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-hardware-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-hardware-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-hardware-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nitrokey","download_url":"https://codeload.github.com/Nitrokey/nitrokey-hardware-test/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245460303,"owners_count":20619045,"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":[],"created_at":"2024-12-03T07:18:43.350Z","updated_at":"2025-03-25T12:25:25.829Z","avatar_url":"https://github.com/Nitrokey.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nitrokey Hardware Tests\n\nAutomatic Test Executor on real hardware\n\nDeploy and test firmware directly through the CI, and get a complete report, with information about potential\nregressions.\n\nFeatures:\n\n- abstracted test suites\n- abstracted hardware configuration\n- automatic artifacts collection\n- isolated run in a container, without a need for root\n- executing as a Gitlab Runner\n- configuration check at start-up\n- real time kernel messages logger\n- local run (NK3 only): ykush manual emulation mode (to have the whole solution running locally)\n\n## Usage\n\n- [Set up hardware](/doc/hardware.md)\n- [Deploy the gitlab runner](/doc/deploy.md)\n- [Configure hardware](/doc/config.md)\n- [Local hil (NK3 only)](/doc/local.md)\n\n## Architecture / Development\n\nThe main test loop is executed over the injected components,\nchosen accordingly to the details specified in the configuration.\n\n\nComponent types:\n- debug adapter (`hil/debug_adapter`) - responsible for calls to the debug adapter software, realizing flashing, erasing, and state download\n- device manager (\"device\", `hil/device`) - manages all high-level device's operations, called from the test suite\n- provisioner (`hil/provisioner`) - configures device for use with the main application\n- test suite (`hil/test_suite`) - executes the test suites, and gathers results\n\nThe solution uses pynitrokey for bootloader interactions where needed.\n\nExtensibility is provided by implementing the required functions set by the parent abstract classes.\nThis could be further improved by using any Python plugin framework like [pluggy](https://pluggy.readthedocs.io/en/latest/).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrokey%2Fnitrokey-hardware-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitrokey%2Fnitrokey-hardware-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrokey%2Fnitrokey-hardware-test/lists"}