Re: [PATCH] tests for vmd config parsing

2017-10-11 Thread Alexander Bluhm
On Tue, Oct 10, 2017 at 10:57:22PM -0700, Mike Larkin wrote:
> On Tue, Oct 10, 2017 at 07:54:20PM -0700, Carlos Cardenas wrote:
> > This patch adds a set of tests for vmd config parsing.
> > 
> > Comments? Ok?
> > 
> 
> ok by me. I think bluhm@ also looked at this.
> 
> bluhm, ok to commit?
> 
> -ml

Committed, thanks for the test.  Passes on amd64 and i386.
Added to my daily test list.

bluhm



Re: [PATCH] tests for vmd config parsing

2017-10-11 Thread Mike Larkin
On Tue, Oct 10, 2017 at 07:54:20PM -0700, Carlos Cardenas wrote:
> This patch adds a set of tests for vmd config parsing.
> 
> Comments? Ok?
> 

ok by me. I think bluhm@ also looked at this.

bluhm, ok to commit?

-ml

> 
> diff --git regress/usr.sbin/Makefile regress/usr.sbin/Makefile
> index 3912e794d4d..f19a656d45e 100644
> --- regress/usr.sbin/Makefile
> +++ regress/usr.sbin/Makefile
> @@ -12,6 +12,7 @@ SUBDIR += relayd
>  SUBDIR += snmpd
>  SUBDIR += switchd
>  SUBDIR += syslogd
> +SUBDIR += vmd
>  
>  .if defined(REGRESS_FULL) || make(clean) || make(cleandir) || make(obj)
>  SUBDIR += pkg_add
> diff --git regress/usr.sbin/vmd/Makefile regress/usr.sbin/vmd/Makefile
> new file mode 100644
> index 000..6c6671ada3f
> --- /dev/null
> +++ regress/usr.sbin/vmd/Makefile
> @@ -0,0 +1,5 @@
> +#$OpenBSD$
> +
> +SUBDIR += config
> +
> +.include 
> diff --git regress/usr.sbin/vmd/config/Makefile 
> regress/usr.sbin/vmd/config/Makefile
> new file mode 100644
> index 000..f5f58658af6
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/Makefile
> @@ -0,0 +1,32 @@
> +#$OpenBSD$
> +
> +VMD ?= /usr/sbin/vmd
> +
> +VMD_PASS=boot-keyword memory-round memory-just-enough
> +VMD_FAIL=kernel-keyword too-few-ram vm-name-too-long too-many-ifs \
> +  boot-name-too-long disk-path-too-long too-many-disks
> +
> +REGRESS_TARGETS=
> +
> +.for n in ${VMD_PASS}
> +REGRESS_TARGETS +=   vmd-pass-${n}
> +
> +vmd-pass-${n}:
> + @echo ' $@ '
> + ${VMD} -n -f ${.CURDIR}/vmd-pass-${n}.conf 2>&1 | \
> + diff -u ${.CURDIR}/vmd-pass-${n}.ok /dev/stdin
> +.endfor
> +
> +.for n in ${VMD_FAIL}
> +REGRESS_TARGETS +=   vmd-fail-${n}
> +
> +vmd-fail-${n}:
> + @echo ' $@ '
> + ${VMD} -n -f ${.CURDIR}/vmd-fail-${n}.conf 2>&1 | \
> + cut -d : -f 2,3,4 | \
> + diff -u ${.CURDIR}/vmd-fail-${n}.ok /dev/stdin
> +.endfor
> +
> +.PHONY: ${REGRESS_TARGETS}
> +
> +.include 
> diff --git regress/usr.sbin/vmd/config/vmd-fail-boot-name-too-long.conf 
> regress/usr.sbin/vmd/config/vmd-fail-boot-name-too-long.conf
> new file mode 100644
> index 000..bc569a9119e
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/vmd-fail-boot-name-too-long.conf
> @@ -0,0 +1,6 @@
> +#$OpenBSD$
> +# Fail on boot path (> 128)
> +ramdisk="/some/absolutepath/somewhere/abcdefghijklmnopqrstuvwxyz0123456789/abcdefghijklmnopqrstuvwxyz0123456789/abcdefghijklmnopqrstuvwxyz0123456789/bsd.rd"
> +vm "x" {
> +boot $ramdisk
> +}
> diff --git regress/usr.sbin/vmd/config/vmd-fail-boot-name-too-long.ok 
> regress/usr.sbin/vmd/config/vmd-fail-boot-name-too-long.ok
> new file mode 100644
> index 000..56cb73b98cf
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/vmd-fail-boot-name-too-long.ok
> @@ -0,0 +1 @@
> +5: kernel name too long
> diff --git regress/usr.sbin/vmd/config/vmd-fail-disk-path-too-long.conf 
> regress/usr.sbin/vmd/config/vmd-fail-disk-path-too-long.conf
> new file mode 100644
> index 000..b70c3acf507
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/vmd-fail-disk-path-too-long.conf
> @@ -0,0 +1,6 @@
> +#$OpenBSD$
> +# Fail on disk path (> 128)
> +rdisk="/some/absolutepath/somewhere/abcdefghijklmnopqrstuvwxyz0123456789/abcdefghijklmnopqrstuvwxyz0123456789/abcdefghijklmnopqrstuvwxyz0123456789/bsd.img"
> +vm "x" {
> +disk $rdisk
> +}
> diff --git regress/usr.sbin/vmd/config/vmd-fail-disk-path-too-long.ok 
> regress/usr.sbin/vmd/config/vmd-fail-disk-path-too-long.ok
> new file mode 100644
> index 000..a384c812362
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/vmd-fail-disk-path-too-long.ok
> @@ -0,0 +1,2 @@
> +disk path too long
> +5: failed to parse disks: 
> /some/absolutepath/somewhere/abcdefghijklmnopqrstuvwxyz0123456789/abcdefghijklmnopqrstuvwxyz0123456789/abcdefghijklmnopqrstuvwxyz0123456789/bsd.img
> diff --git regress/usr.sbin/vmd/config/vmd-fail-kernel-keyword.conf 
> regress/usr.sbin/vmd/config/vmd-fail-kernel-keyword.conf
> new file mode 100644
> index 000..3505def581b
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/vmd-fail-kernel-keyword.conf
> @@ -0,0 +1,12 @@
> +#$OpenBSD$
> +# Fail on kernel keyword; has been replaced by boot.
> +ramdisk="/bsd.rd"
> +switch "sw" {
> +add vether0
> +}
> +vm "x" {
> +kernel $ramdisk
> +memory 1G
> +disable
> +interface { switch "sw" }
> +}
> diff --git regress/usr.sbin/vmd/config/vmd-fail-kernel-keyword.ok 
> regress/usr.sbin/vmd/config/vmd-fail-kernel-keyword.ok
> new file mode 100644
> index 000..348817b1477
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/vmd-fail-kernel-keyword.ok
> @@ -0,0 +1 @@
> +8: syntax error
> diff --git regress/usr.sbin/vmd/config/vmd-fail-too-few-ram.conf 
> regress/usr.sbin/vmd/config/vmd-fail-too-few-ram.conf
> new file mode 100644
> index 000..f8b27056dea
> --- /dev/null
> +++ regress/usr.sbin/vmd/config/vmd-fail-too-few-ram.conf
> @@ -0,0 +1,5 @@
> +#$OpenBSD$
> +# Fail on memory (less than 1MB)
> +vm "x" {
> +