Skip to content
Akihiko Odaki edited this page Aug 4, 2022 · 14 revisions

AutoHCK

CircleCI

AutoHCK is a tool for automating HCK/HLK testing, doing all the boilerplate steps in the process leaving you with simply choosing which driver you want to test on what OS.

Getting Started

See Getting Started for more details

Usage

Once everything is installed and configured, run ./bin/auto_hck as root with these parameters:

Usage: auto_hck.rb [common options] <command> [command options]

        --debug                      Printing debug information
    -v, --version                    Display version information and exit
    -h, --help                       Show this message
Usage: auto_hck.rb test [test options]

    -p, --platform <platform_name>   Platform for run test
    -d, --drivers <drivers_list>     List of driver for run test
        --driver-path <driver_path>  Path to the location of the driver wanted to be tested
    -c, --commit <commit_hash>       Commit hash for CI status update
        --diff <diff_file>           Path to text file containing a list of changed source files
        --svvp                       Run SVVP tests for specified platform instead of driver tests
        --manual                     Run and prepare the machine for tests, but do not run the tests themselves
    -h, --help                       Show this message
Usage: auto_hck.rb install [install options]

    -p, --platform <platform_name>   Install VM for specified platform
    -f, --force                      Install all VM, replace studio if exist
    -h, --help                       Show this message

Manual mode

In manual mode, AutoHCK generates bash script files for each VM with all preparation steps. You can edit these files, update the QEMU command line, and then run it.

Examples

ruby ./bin/auto_hck test --drivers Balloon --platform Win10x86 --driver-path /home/hck-ci/balloon/win10/x86
ruby ./bin/auto_hck test --drivers NetKVM --platform Win10x64 --driver-path /home/hck-ci/workspace --diff /path/to/diff.txt
ruby ./bin/auto_hck test --drivers viostor --platform Win10x64 --driver-path /home/hck-ci/viostor --diff /path/to/diff.txt -c ec3da560827922e5a82486cf19cd9c27e95455a9
ruby ./bin/auto_hck test --svvp --platform Win10x64 --driver-path /home/hck-ci/virtio-drv
ruby ./bin/auto_hck test -d NetKVM -p Win10x64 --driver-path /home/hck-ci/virtio-drv --manual
ruby ./bin/auto_hck test -d NetKVM -p Win10x64 --manual
ruby ./bin/auto_hck install -p Win2019x64 --force

Workspace

When starting AutoHCK a session workspace will be created inside the workspace directory configured in config.json at the path:

  • in test mode: workspace/[engine-type]/[setup-manager]/[devices-list]-[platform]/[timestamp]/
  • in test svvp mode: workspace/[engine-type]/[setup-manager]/svvp-[platform]/[timestamp]/
  • in install mode: workspace/[engine-type]/[setup-manager]/[platform]/[timestamp]/

Inside AutoHCK will save the following files:

  • qcow2 snapshots of the backing setup images: [filename]-snapshot.qcow2
  • AutoHCK log file: [devices-list]-[platform].log
  • toolsHCK guest log file: [timestamp]_toolsHCK.log
  • archived tests log files: [timestamp]-[testid].zip
  • archived driver binary: [devices-list]-[platform].zip
  • Executables: pre_start_[id].sh QemuMachine[id]_CL[id].sh post_stop_[id].sh to rerun test setup machines manually.
  • HLKX/HCKX file (after tests session ended): [devices-list]-[platform].hlkx

Utils

Cleanup

This script deletes logs and snapshots from HCK runs that are more than 1 month old, the script can be run as a cron job in order to prevent autoHCK from filling the disk on the system.

Authors

Clone this wiki locally