diff options
Diffstat (limited to 'debian/tests')
-rw-r--r-- | debian/tests/control | 16 | ||||
-rw-r--r-- | debian/tests/qemuvbmc | 55 | ||||
-rw-r--r-- | debian/tests/smoke | 8 | ||||
-rw-r--r-- | debian/tests/vbmc-qemu-vm-session.xml | 32 |
4 files changed, 111 insertions, 0 deletions
diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..a11e46b --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,16 @@ +Tests: smoke +Depends: ipmitool +Restrictions: allow-stderr, superficial + +Tests: qemuvbmc +Depends: ipmitool, + python3-libvirt, + virtualbmc, + bridge-utils, + libvirt-clients, + libvirt-daemon-system, + libxml2-utils, + linux-image-amd64 [amd64] | linux-generic [amd64], + qemu-kvm, + qemu-system, +Restrictions: allow-stderr, isolation-container, skippable, skip-not-installable, needs-root diff --git a/debian/tests/qemuvbmc b/debian/tests/qemuvbmc new file mode 100644 index 0000000..d1bafb3 --- /dev/null +++ b/debian/tests/qemuvbmc @@ -0,0 +1,55 @@ +#!/bin/sh + +set -e + +# dep8 qemu + virtualbmc test for ipmitool +# Start by defining and creating a qemu vm, then attach vbmc to it. +# Afterward test ipmitool commands on the vm. + +XML=debian/tests/vbmc-qemu-vm-session.xml +DOMAIN=bmctest + +# Clean vm setup on exit +cleanup() +{ + if [ -z "$CLEANED_UP" ]; then + virsh destroy ${DOMAIN} > /dev/null 2>&1 || true + virsh undefine ${DOMAIN} > /dev/null 2>&1 || true + CLEANED_UP=1 + fi +} + +trap cleanup EXIT + +# Confirm the test is running on amd64 +if [ $(uname -m) != "x86_64" ]; then + echo "Not on x86_64...skipping" + exit 77 +fi + +# Confirm kernel and initrd are available for running vm +if [ ! -f /boot/vmlinuz ] || [ ! -f /boot/initrd.img ]; then + echo "Kernel or initrd not found...fail". + exit 1 +fi + +# We don't want libvirt using xattrs +# https://discuss.linuxcontainers.org/t/cant-run-libvirt-qemu-kvm-in-an-unprivileged-domain-anymore-unable-to-set-xattr/9466/3 +sed -r -i 's,^(#|[[:blank:]])*(remember_owner).*$,\2 = 0,' /etc/libvirt/qemu.conf +systemctl restart libvirtd.service + +# Setup vm +virt-xml-validate ${XML} +virsh define ${XML} +virsh start ${DOMAIN} + +# Attach virtualbmc to vm +vbmc add ${DOMAIN} --port 6230 --username testuser --password pass +vbmc start ${DOMAIN} + +# Test ipmitool +ipmitool -I lanplus -U testuser -P pass -H 127.0.0.1 -p 6230 power up +ipmitool -I lanplus -U testuser -P pass -H 127.0.0.1 -p 6230 power status +ipmitool -I lanplus -U testuser -P pass -H 127.0.0.1 -p 6230 chassis status +ipmitool -I lanplus -U testuser -P pass -H 127.0.0.1 -p 6230 power down +ipmitool -I lanplus -U testuser -P pass -H 127.0.0.1 -p 6230 power status diff --git a/debian/tests/smoke b/debian/tests/smoke new file mode 100644 index 0000000..a2adbb2 --- /dev/null +++ b/debian/tests/smoke @@ -0,0 +1,8 @@ +#!/bin/sh +set -ex + +# dep8 smoke test for ipmitool +# Test that the ipmitool binary exists and can get the version and help page + +ipmitool -h +ipmitool -V diff --git a/debian/tests/vbmc-qemu-vm-session.xml b/debian/tests/vbmc-qemu-vm-session.xml new file mode 100644 index 0000000..f345b8b --- /dev/null +++ b/debian/tests/vbmc-qemu-vm-session.xml @@ -0,0 +1,32 @@ +<domain type='qemu'> + <name>bmctest</name> + <memory unit='KiB'>256000</memory> + <currentMemory unit='KiB'>256000</currentMemory> + <vcpu>1</vcpu> + <os> + <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type> + <kernel>/boot/vmlinuz</kernel> + <initrd>/boot/initrd.img</initrd> + <cmdline> console=ttyS0 quiet loglevel=0 edd=off printk.time=1 noreplace-smp cgroup_disable=memory pci=noearly noapic panic=-1 selinux=0</cmdline> + <boot dev='hd'/> + </os> + <features> + <acpi/> + </features> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>destroy</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + <controller type='virtio-serial' index='0'> + <alias name='virtio-serial0'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> + </controller> + <filesystem type='mount' accessmode='squash'> + <source dir='/'/> + <target dir='bmctest:root'/> + <readonly/> + </filesystem> + </devices> +</domain> |