libmks/README.md
2023-08-22 17:49:40 +00:00

54 lines
1.3 KiB
Markdown

# libmks
This library provides a "Mouse, Keyboard, and Screen" to QEMU using the
D-Bus device support in QEMU and GTK 4.
# Documentation
Nightly documentation can be found [here](https://gnome.pages.gitlab.gnome.org/libmks/libmks1).
# Unit testing
Be sure you have `lcov` package installed on your system if you want coverage data.
```bash
meson setup builddir
meson configure -Db_coverage=true builddir # if you want to collect coverage data
meson compile -C builddir
meson test -C builddir --suit "libmks"
rm -rf builddir/subprojects # if you don't want subprojects coverage in the report
ninja coverage-html -C builddir # if you want to generate coverage report
```
If generated, coverage report will be in `builddir/meson-logs/coveragereport/index.html`
# Testing
By default, QEMU will connect to your user session D-Bus if you do not
provide an address for `-display dbus`. Therefore, it is pretty easy to
test things by running QEMU manually and then connecting with the test
program `./tools/mks`.
```sh
qemu-img create -f qcow2 fedora.img 30G
qemu-system-x86_64 \
-enable-kvm \
-cpu host \
-device virtio-vga-gl,xres=1920,yres=1080 \
-m 8G \
-smp 4 \
-display dbus,gl=on \
-cdrom Fedora-Workstation.iso \
-hda fedora.img \
-boot d
```
and then to run the test widget
```sh
meson setup build
cd build
ninja
./tools/mks
```