#!/bin/sh

set -e

export LIBVIRT_DEFAULT_URI='lxc:///'

XML=debian/tests/smoke-lxc.xml
DOMAIN=sl

cleanup()
{
    if [ -z "$CLEANED_UP" ]; then
        virsh destroy ${DOMAIN} || true
        virsh undefine ${DOMAIN} || true
        CLEANED_UP=1
    fi
}

check_domain()
{
    virsh list | grep -qs "${DOMAIN}[[:space:]]\+running"
    virsh lxc-enter-namespace --noseclabel ${DOMAIN} /bin/ls /bin/ls
}

trap cleanup EXIT

set -x
virt-host-validate lxc || exit 0
virsh capabilities
virsh capabilities | grep -qs 'emulator>/usr/lib/libvirt/libvirt_lxc'
virsh capabilities | grep -qs 'os_type>exe'
virt-xml-validate ${XML}
virsh define ${XML}
rm -f /var/log/libvirt/lxc/sl.log
virsh start ${DOMAIN}
# Check virtlogd is running
grep -qs "starting up" /var/log/libvirt/lxc/sl.log
check_domain
# Make sure a restart doesn't termiante the domain
/etc/init.d/libvirtd restart
check_domain
virsh destroy ${DOMAIN}
virsh undefine ${DOMAIN}
CLEANED_UP=1
set +x

echo 'Smoke test of lxc:/// succesful'
exit 0
