Introduction to kvm-unit-test
1. Introduction
kvm-unit-tests是kvm的unit tests。kvm-unit-tests是小型的guest操作系统,通常仅执行数十行C和汇编程序测试代码就能获得测试结果。
kvm-unit-tests可以用来测试开发,同时,对于初学者,例如根据vmx的测试,去kvm源码中仔细研究这部分功能的实现,有助于找到入口点。
2. 编译
1 | git clone https://gitlab.com/kvm-unit-tests/kvm-unit-tests.git |
编译成功后,会发现x86 目录中有很多* .elf文件,每个文件都是在特定环境下进行测试的测试用例。假设我们用x86/apic.elf作为测试用例。
3. 运行kvm-unit-tests
软件安装:
1 | sudo apt-get install grub-pc-bin xorriso |
构建image
1 | mkdir -p iso/boot/grub/bin |
edit iso/boot/grub/grub.cfg:
1 | set default=0 |
1 | grub-mkrescue -o test.img iso |
4. result
1 | qemu-system-x86_64 -machine q35,kernel_irqchip=split,accel=kvm \ |
当需要enable vnc时,qemu无需
-display none项。当需要在qemu中运行hypervisor时,qemu需要添加
-cpu host。- 如果出现问题,则
cat /sys/module/kvm_intel/parameters/nested。如果显示N,则需要modprobe kvm_intel nested=1。
- 如果出现问题,则
5. new method
运行kvm unit test的另一种方法是:
1 | sudo qemu-system-x86_64 -machine q35,kernel_irqchip=split,accel=kvm \ |
or
1 | ! /bin/bash -x |
参考资料: