Re: [PATCH] tests for vmd config parsing
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
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" { > +
[PATCH] tests for vmd config parsing
This patch adds a set of tests for vmd config parsing. Comments? Ok? 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" { +memory 1048575 +} diff --git regress/usr.sbin/vmd/config/vmd-fail-too-few-ram.ok regress/usr.sbin/vmd/config/vmd-fail-too-few-ram.ok new file mode 100644 index 000..0cf48a97eaf --- /dev/null +++ regress/usr.sbin/vmd/config/vmd-fail-too-few-ram.ok @@ -0,0 +1,2 @@ +size must be at least one megabyte +4: failed to parse size: 1048575 diff --git regress/usr.sbin/vmd/config/vmd-fail-too-many-disks