On Sun, 13 Jun 2021 11:09:20 -0400, Dave Voutila <[email protected]> wrote:
> Was about to add a test for something I'm hacking on when I noticed the
> diskfmt regress test wasn't enabled. I took a look and it's rotted. :(
>
> It was originally written by Ori Bernstein and imported by ccardenas@
> days before the vmctl(8) qcow2 disk creation capability was
> committed by the same team. (8 Sep 2011 and 11 Sep 2011 respectively.)
>
> The below diff allows it to compile and run properly. It also removes
> the requirement of qemu from ports for making the qcow2 image since
> vmctl(8) can do that now. Since it can now run with just vmctl, I've
> also wired it into the parent Makefile to run with the other vmd regress
> tests.
>
> OK?
Ok by me.
> -dv
>
> Index: regress/usr.sbin/vmd/Makefile
> ===================================================================
> RCS file: /cvs/src/regress/usr.sbin/vmd/Makefile,v
> retrieving revision 1.2
> diff -u -p -r1.2 Makefile
> --- regress/usr.sbin/vmd/Makefile 29 Jan 2019 21:08:12 -0000 1.2
> +++ regress/usr.sbin/vmd/Makefile 13 Jun 2021 14:42:42 -0000
> @@ -2,7 +2,7 @@
>
> .if ${MACHINE} == "amd64"
> SUBDIR =
> -SUBDIR += config
> +SUBDIR += config diskfmt
>
> .elif make(regress) || make(all)
> ${.TARGETS}:
> Index: regress/usr.sbin/vmd/diskfmt/Makefile
> ===================================================================
> RCS file: /cvs/src/regress/usr.sbin/vmd/diskfmt/Makefile,v
> retrieving revision 1.2
> diff -u -p -r1.2 Makefile
> --- regress/usr.sbin/vmd/diskfmt/Makefile 8 Oct 2018 16:32:01 -0000
> 1.2
> +++ regress/usr.sbin/vmd/diskfmt/Makefile 13 Jun 2021 14:42:42 -0000
> @@ -4,28 +4,26 @@
> # qcow disk image, and scribbles the same data to both
> # of them. It verifies that they both have the same
> # result.
> -#
> -# In order for this test to work, qemu must be installed
> -# in order to create the disk images.
>
> -VMD_DIR=$(BSDSRCDIR)/usr.sbin/vmd/
> +VMD_DIR=$(BSDSRCDIR)/usr.sbin/vmd
>
> PROG=vioscribble
> -SRCS=vioscribble.c vioqcow2.c vioraw.c
> +SRCS=vioscribble.c vioqcow2.c vioraw.c log.c
> CFLAGS+=-I$(VMD_DIR) -pthread
> LDFLAGS+=-pthread
>
> run-regress-vioscribble: scribble-images
>
> scribble-images:
> - rm -f scribble.raw scribble.qc2
> - vmctl create scribble.raw -s 4G
> - qemu-img create -f qcow2 scribble.qc2 4G
> + rm -f scribble.raw scribble.qcow2
> + vmctl create -s 4G scribble.raw
> + vmctl create -s 4G scribble.qcow2
>
>
> .PHONY: ${REGRESS_TARGETS} scribble-images
>
> .include <bsd.regress.mk>
>
> -vioqcow2.c vioraw.c: $(VMD_DIR)/vioqcow2.c $(VMD_DIR)/vioraw.c
> - cp $(VMD_DIR)/vioqcow2.c $(VMD_DIR)/vioraw.c .
> +vioqcow2.c vioraw.c log.c: $(VMD_DIR)/vioqcow2.c $(VMD_DIR)/vioraw.c \
> + $(VMD_DIR)/log.c
> + cp $(VMD_DIR)/vioqcow2.c $(VMD_DIR)/vioraw.c $(VMD_DIR)/log.c .
> Index: regress/usr.sbin/vmd/diskfmt/vioscribble.c
> ===================================================================
> RCS file: /cvs/src/regress/usr.sbin/vmd/diskfmt/vioscribble.c,v
> retrieving revision 1.2
> diff -u -p -r1.2 vioscribble.c
> --- regress/usr.sbin/vmd/diskfmt/vioscribble.c 8 Oct 2018 16:32:01
> -0000 1.2
> +++ regress/usr.sbin/vmd/diskfmt/vioscribble.c 13 Jun 2021 14:42:42
> -0000
> @@ -16,7 +16,7 @@
> * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> */
>
> -/*
> +/*
> * Quick hack of a program to try to test vioqcow2.c against
> * vioraw.c.
> *
> @@ -51,7 +51,6 @@
> #include <assert.h>
> #include <err.h>
>
> -#include "pci.h"
> #include "vmd.h"
> #include "vmm.h"
> #include "virtio.h"
> @@ -65,43 +64,6 @@ struct virtio_backing rawfile;
> /* We expect the scribble disks to be 4g in size */
> #define DISKSZ (4ull*1024ull*1024ull*1024ull)
>
> -/* functions that io code depends on */
> -
> -void
> -log_debug(const char *emsg, ...)
> -{
> - if (verbose) {
> - va_list ap;
> -
> - va_start(ap, emsg);
> - vfprintf(stdout, emsg, ap);
> - fprintf(stdout, "\n");
> - va_end(ap);
> - }
> -}
> -
> -void
> -log_warnx(const char *emsg, ...)
> -{
> - va_list ap;
> -
> - va_start(ap, emsg);
> - vfprintf(stdout, emsg, ap);
> - fprintf(stdout, "\n");
> - va_end(ap);
> -}
> -
> -void
> -log_warn(const char *emsg, ...)
> -{
> - va_list ap;
> -
> - va_start(ap, emsg);
> - vfprintf(stdout, emsg, ap);
> - fprintf(stdout, "\n");
> - va_end(ap);
> -}
> -
> static void
> fill(size_t off, char *buf, size_t len)
> {
> @@ -120,13 +82,13 @@ main(int argc, char **argv)
> off_t len, off, qcsz, rawsz;
>
> verbose = !!getenv("VERBOSE");
> - qcfd = open("scribble.qc2", O_RDWR);
> + qcfd = open("scribble.qcow2", O_RDWR);
> rawfd = open("scribble.raw", O_RDWR);
> if (qcfd == -1)
> err(1, "unable to open qcow");
> - if (virtio_init_qcow2(&qcowfile, &qcsz, &qcfd, 1) == -1)
> + if (virtio_qcow2_init(&qcowfile, &qcsz, &qcfd, 1) == -1)
> err(1, "unable to init qcow");
> - if (rawfd == -1 || virtio_init_raw(&rawfile, &rawsz, &rawfd, 1) == -1)
> + if (rawfd == -1 || virtio_raw_init(&rawfile, &rawsz, &rawfd, 1) == -1)
> err(1, "unable to open raw");
>
> srandom_deterministic(123);
>
--
Ori Bernstein