#!/bin/sh # exercise virsh's "undefine" command # Copyright (C) 2008-2009, 2011 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHEXP ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see # . test -z "$srcdir" && srcdir=$(pwd) test -z "$abs_top_srcdir" && abs_top_srcdir=$(pwd)/.. test -z "$abs_top_builddir" && abs_top_builddir=$(pwd)/.. if test "$VERBOSE" = yes; then set -x $abs_top_builddir/tools/virsh --version fi . "$srcdir/test-lib.sh" fail=0 # Attempt to undefine a running domain, by domain name. Every time a new # connection is opened to the test driver, it starts life with a new # persistent running domain named 'test' with a different uuid, so # testing this command requires batch mode use of virsh. $abs_top_builddir/tools/virsh -q -c test:///default \ 'dominfo test; undefine test; dominfo test' > out1 2>&1 test $? = 0 || fail=1 sed '/^Persistent/n; /:/d' < out1 > out cat <<\EOF > exp || fail=1 Persistent: yes Domain test has been undefined Persistent: no EOF compare exp out || fail=1 # A similar diagnostic when specifying a domain ID $abs_top_builddir/tools/virsh -q -c test:///default \ 'dominfo 1; undefine 1; dominfo 1' > out1 2>&1 test $? = 0 || fail=1 sed '/^Persistent/n; /:/d' < out1 > out cat <<\EOF > exp || fail=1 Persistent: yes Domain 1 has been undefined Persistent: no EOF compare exp out || fail=1 # Succeed, now: first shut down, then undefine, both via name. $abs_top_builddir/tools/virsh -q -c test:///default \ 'shutdown test; undefine test; dominfo test' > out 2>&1 test $? = 1 || fail=1 cat <<\EOF > expout || fail=1 Domain test is being shutdown Domain test has been undefined error: failed to get domain 'test' error: Domain not found EOF compare expout out || fail=1 (exit $fail); exit $fail