Commit d875ed4d authored by Roman Bolshakov's avatar Roman Bolshakov Committed by Paolo Bonzini
Browse files

README: Document steps to run the tests on macOS



While at it, mention that hvf is a valid accel parameter.

Cc: Cameron Esfahani <dirty@apple.com>
Signed-off-by: default avatarRoman Bolshakov <r.bolshakov@yadro.com>
Reviewed-by: default avatarCameron Esfahani <dirty@apple.com>
Message-Id: <20200320145541.38578-3-r.bolshakov@yadro.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 7edd698e
# kvm-unit-tests on macOS
Cross-compiler with ELF support is required for build of kvm-unit-tests on
macOS.
## Building cross-compiler from source
A cross-compiler toolchain can be built from source using crosstool-ng. The
latest released version of
[crosstool-ng](https://github.com/crosstool-ng/crosstool-ng) can be installed
using [homebrew](https://brew.sh)
```
$ brew install crosstool-ng
```
A case-sensitive APFS/HFS+ volume has to be created using Disk Utility as a
build and installation directory for the cross-compiler. Please [see Apple
documentation](https://support.apple.com/guide/disk-utility/dsku19ed921c/mac)
for details.
Assuming the case-sensitive volume is named /Volumes/BuildTools, the
cross-compiler can be built and installed there:
```
$ X_BUILD_DIR=/Volumes/BuildTools/ct-ng-build
$ X_INSTALL_DIR=/Volumes/BuildTools/x-tools
$ mkdir $X_BUILD_DIR
$ ct-ng -C $X_BUILD_DIR x86_64-unknown-linux-gnu
$ ct-ng -C $X_BUILD_DIR build CT_PREFIX=$X_INSTALL_DIR
```
Once compiled, the cross-compiler can be used to build the tests:
```
$ ./configure --cross-prefix=$X_INSTALL_DIR/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-
$ make
```
## Pre-built cross-compiler
x86_64-elf-gcc package in Homebrew provides pre-built cross-compiler but it
fails to compile kvm-unit-tests.
## Running the tests
GNU coreutils should be installed prior to running the tests:
```
$ brew install coreutils
```
......@@ -15,6 +15,8 @@ To create the test images do:
in this directory. Test images are created in ./ARCH/\*.flat
NOTE: GCC cross-compiler is required for [build on macOS](README.macOS.md).
## Standalone tests
The tests can be built as standalone. To create and use standalone tests do:
......@@ -47,7 +49,7 @@ environment variable:
QEMU=/tmp/qemu/x86_64-softmmu/qemu-system-x86_64 ./x86-run ./x86/msr.flat
To select an accelerator, for example "kvm" or "tcg", specify the
To select an accelerator, for example "kvm", "hvf" or "tcg", specify the
ACCEL=name environment variable:
ACCEL=kvm ./x86-run ./x86/msr.flat
......@@ -78,7 +80,7 @@ which can then be accessed in the usual ways, e.g. VAL = getenv("KEY").
Any key=val strings can be passed, but some have reserved meanings in
the framework. The list of reserved environment variables is below
QEMU_ACCEL either kvm or tcg
QEMU_ACCEL either kvm, hvf or tcg
QEMU_VERSION_STRING string of the form `qemu -h | head -1`
KERNEL_VERSION_STRING string of the form `uname -r`
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment