{"id":16567825,"url":"https://github.com/thenetadmin/nvleak-kut","last_synced_at":"2026-05-28T13:01:55.566Z","repository":{"id":109731224,"uuid":"549465254","full_name":"TheNetAdmin/NVLeak-KUT","owner":"TheNetAdmin","description":null,"archived":false,"fork":false,"pushed_at":"2022-10-11T10:06:04.000Z","size":2914,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"covert-channel","last_synced_at":"2026-05-06T14:50:02.622Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheNetAdmin.png","metadata":{"files":{"readme":"README","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}},"created_at":"2022-10-11T08:21:14.000Z","updated_at":"2022-10-11T08:23:24.000Z","dependencies_parsed_at":"2023-06-11T06:30:33.475Z","dependency_job_id":null,"html_url":"https://github.com/TheNetAdmin/NVLeak-KUT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TheNetAdmin/NVLeak-KUT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak-KUT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak-KUT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak-KUT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak-KUT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheNetAdmin","download_url":"https://codeload.github.com/TheNetAdmin/NVLeak-KUT/tar.gz/refs/heads/covert-channel","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak-KUT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33609237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-10-11T21:07:36.099Z","updated_at":"2026-05-28T13:01:55.552Z","avatar_url":"https://github.com/TheNetAdmin.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcome to kvm-unit-tests\n\nSee http://www.linux-kvm.org/page/KVM-unit-tests for a high-level\ndescription of this project, as well as running tests and adding\ntests HOWTOs.\n\n# Building the tests\n\nThis directory contains sources for a KVM test suite.\n\nTo create the test images do:\n\n    ./configure\n    make\n\nin this directory.  Test images are created in ./ARCH/\\*.flat\n\nNOTE: GCC cross-compiler is required for [build on macOS](README.macOS.md).\n\n## Standalone tests\n\nThe tests can be built as standalone.  To create and use standalone tests do:\n\n    ./configure\n    make standalone\n    (send tests/some-test somewhere)\n    (go to somewhere)\n    ./some-test\n\n`make install` will install all tests in PREFIX/share/kvm-unit-tests/tests,\neach as a standalone test.\n\n\n# Running the tests\n\nThen use the runner script to detect the correct invocation and\ninvoke the test:\n\n    ./x86-run ./x86/msr.flat\nor:\n\n    ./run_tests.sh\n\nto run them all.\n\nBy default the runner script searches for a suitable QEMU binary in the system.\nTo select a specific QEMU binary though, specify the QEMU=path/to/binary\nenvironment variable:\n\n    QEMU=/tmp/qemu/x86_64-softmmu/qemu-system-x86_64 ./x86-run ./x86/msr.flat\n\nTo select an accelerator, for example \"kvm\", \"hvf\" or \"tcg\", specify the\nACCEL=name environment variable:\n\n    ACCEL=kvm ./x86-run ./x86/msr.flat\n\n# Tests configuration file\n\nThe test case may need specific runtime configurations, for\nexample, extra QEMU parameters and time to execute limited, the\nrunner script reads those information from a configuration file found\nat ./ARCH/unittests.cfg.\n\nThe configuration file also contain the groups (if any) each test belong\nto.  So that a given group can be executed by specifying its name in the\nrunner's -g option.\n\n# Unit test inputs\n\nUnit tests use QEMU's '-append args...' parameter for command line\ninputs, i.e. all args will be available as argv strings in main().\nAdditionally a file of the form\n\n    KEY=VAL\n    KEY2=VAL\n    ...\n\nmay be passed with '-initrd file' to become the unit test's environ,\nwhich can then be accessed in the usual ways, e.g. VAL = getenv(\"KEY\").\nAny key=val strings can be passed, but some have reserved meanings in\nthe framework.  The list of reserved environment variables is below\n\n    QEMU_ACCEL                   either kvm, hvf or tcg\n    QEMU_VERSION_STRING          string of the form `qemu -h | head -1`\n    KERNEL_VERSION_STRING        string of the form `uname -r`\n\nAdditionally these self-explanatory variables are reserved\n\n    QEMU_MAJOR, QEMU_MINOR, QEMU_MICRO, KERNEL_VERSION, KERNEL_PATCHLEVEL,\n    KERNEL_SUBLEVEL, KERNEL_EXTRAVERSION\n\n# Guarding unsafe tests\n\nSome tests are not safe to run by default, as they may crash the\nhost. kvm-unit-tests provides two ways to handle tests like those.\n\n 1) Adding 'nodefault' to the groups field for the unit test in the\n    unittests.cfg file.  When a unit test is in the nodefault group\n    it is only run when invoked\n\n     a) independently, `ARCH-run ARCH/test`\n\n     b) by specifying any other non-nodefault group it is in,\n        groups = nodefault,mygroup : `./run_tests.sh -g mygroup`\n\n     c) by specifying all tests should be run, `./run_tests.sh -a`\n\n 2) Making the test conditional on errata in the code,\n    ```\n    if (ERRATA(abcdef012345)) {\n        do_unsafe_test();\n    }\n    ```\n\n    With the errata condition the unsafe unit test is only run\n    when\n\n    a) the ERRATA_abcdef012345 environment variable is provided and 'y'\n\n    b) the ERRATA_FORCE environment variable is provided and 'y'\n\n    c) by specifying all tests should be run, `./run_tests.sh -a`\n       (The -a switch ensures the ERRATA_FORCE is provided and set\n        to 'y'.)\n\nThe ./errata.txt file provides a mapping of the commits needed by errata\nconditionals to their respective minimum kernel versions.  By default,\nwhen the user does not provide an environ, then an environ generated\nfrom the ./errata.txt file and the host's kernel version is provided to\nall unit tests.\n\n# Contributing\n\n## Directory structure\n\n    .:                  configure script, top-level Makefile, and run_tests.sh\n    ./scripts:          general architecture neutral helper scripts for building and running tests\n    ./scripts/\u003cARCH\u003e:   architecture dependent helper scripts for building and running tests\n    ./lib:              general architecture neutral services for the tests\n    ./lib/\u003cARCH\u003e:       architecture dependent services for the tests\n    ./\u003cARCH\u003e:           the sources of the tests and the created objects/images\n\nSee ./ARCH/README for architecture specific documentation.\n\n## Style\n\nCurrently there is a mix of indentation styles so any changes to\nexisting files should be consistent with the existing style.  For new\nfiles:\n\n  - C: please use standard linux-with-tabs, see Linux kernel\n    doc Documentation/process/coding-style.rst\n  - Shell: use TABs for indentation\n\nExceptions:\n\n  - While the kernel standard requires 80 columns, we allow up to 120.\n\nHeader guards:\n\nPlease try to adhere to the following patterns when adding\n\"#ifndef \u003c...\u003e #define \u003c...\u003e\" header guards:\n    ./lib:             _HEADER_H_\n    ./lib/\u003cARCH\u003e:      _ARCH_HEADER_H_\n    ./lib/\u003cARCH\u003e/asm:  _ASMARCH_HEADER_H_\n    ./\u003cARCH\u003e:          ARCH_HEADER_H\n\n## Patches\n\nPatches are welcome at the KVM mailing list \u003ckvm@vger.kernel.org\u003e.\n\nPlease prefix messages with: [kvm-unit-tests PATCH]\n\nYou can add the following to .git/config to do this automatically for you:\n\n    [format]\n        subjectprefix = kvm-unit-tests PATCH\n\nAdditionally it's helpful to have a common order of file types in patches.\nOur chosen order attempts to place the more declarative files before\nthe code files.  We also start with common code and finish with unit test\ncode. git-diff's orderFile feature allows us to specify the order in a\nfile.  The orderFile we use is `scripts/git.difforder`; adding the config\nwith `git config diff.orderFile scripts/git.difforder` enables it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthenetadmin%2Fnvleak-kut","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthenetadmin%2Fnvleak-kut","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthenetadmin%2Fnvleak-kut/lists"}