Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Mar 2018 11:43:46 -0400
From:      Mark Johnston <markj@FreeBSD.org>
To:        freebsd-testing@FreeBSD.org
Subject:   automatically provisioning a bhyve test VM
Message-ID:  <20180312154346.GA97195@raichu>

next in thread | raw e-mail | index | archive | help
Hi,

I have some tests for FreeBSD's kernel dump code that I'd like to make
more robust. They use bhyve to test a variety of combinations of kernel
dump configurations: e.g., full dump vs. minidump, encryption,
compression, dump device block size, etc.. Each test triggers a kernel
panic and dump, and upon reboot opens the dump in kgdb, in the VM, to
get some confidence that the dump is valid.

I use sysutils/vm-bhyve to simplify some aspects of VM management, and
that works pretty well. I use some hacks to configure networking for the
VM, and this is the part that I don't like. The tests run on the host
and use ssh to run commands in the VM. For this to work, I need to
hardcode an IP for the guest and for the bridge to which the guest's tap
interface is connected, which of course only works if those IPs aren't
already somehow in use by the host. I'd prefer something that makes zero
assumptions about the host and just provides the bare minimum needed to
establish a private communication channel to run commands on the guest
(which includes getting the output and exit status of said commands).
Ideally this would still involve assigning private IPv4 addresses to
each side since I'd like to expand my test suite to cover netdump, which
makes it possible for a panicking kernel to transmit a dump to a remote
host. Does anyone have any suggestions for a more elegant way to go
about this? Does anyone else automatically provision and tear down bhyve
VMs as part of a test suite?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180312154346.GA97195>