mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
2aec9b399b
Move the argument parsing tests excercising various numeric options (except 'virsh event') from 'virsh-optparse' to 'virshtest'. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
99 lines
3.1 KiB
Bash
Executable File
99 lines
3.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Ensure that virsh option parsing doesn't regress
|
|
|
|
# Copyright (C) 2011-2012, 2014 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 WITHOUT 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
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
. "$(dirname $0)/test-lib.sh"
|
|
|
|
test_expensive
|
|
|
|
VIRSH=$abs_top_builddir/tools/virsh
|
|
|
|
if test "$VERBOSE" = yes; then
|
|
set -x
|
|
$VIRSH --version
|
|
fi
|
|
|
|
fail=0
|
|
|
|
test_url=test:///default
|
|
|
|
### Test the <timeout> option (numeric option converted to ms)
|
|
|
|
# Non-numeric value
|
|
cat <<\EOF > exp-err || framework_failure
|
|
error: Numeric value 'abc' for <timeout> option is malformed or out of range
|
|
EOF
|
|
$VIRSH -q -c $test_url event --all --timeout abc >out 2>err && fail=1
|
|
test -s out && fail=1
|
|
compare exp-err err || fail=1
|
|
|
|
# Numeric value that's too big to be converted to ms and still
|
|
# fit inside an int
|
|
cat <<\EOF > exp-err || framework_failure
|
|
error: Numeric value '2147484' for <timeout> option is malformed or out of range
|
|
EOF
|
|
$VIRSH -q -c $test_url event --all --timeout 2147484 >out 2>err && fail=1
|
|
test -s out && fail=1
|
|
compare exp-err err || fail=1
|
|
|
|
# Numeric value with invalid suffix
|
|
cat <<\EOF > exp-err || framework_failure
|
|
error: Numeric value '42WB' for <timeout> option is malformed or out of range
|
|
EOF
|
|
$VIRSH -q -c $test_url event --all --timeout 42WB >out 2>err && fail=1
|
|
test -s out && fail=1
|
|
compare exp-err err || fail=1
|
|
|
|
# Numeric value with valid suffix. Suffixes are not supported for
|
|
# the <timeout> option, so this value is rejected
|
|
cat <<\EOF > exp-err || framework_failure
|
|
error: Numeric value '42MB' for <timeout> option is malformed or out of range
|
|
EOF
|
|
$VIRSH -q -c $test_url event --all --timeout 42MB >out 2>err && fail=1
|
|
test -s out && fail=1
|
|
compare exp-err err || fail=1
|
|
|
|
# Negative value
|
|
cat <<\EOF > exp-err || framework_failure
|
|
error: Numeric value '-1' for <timeout> option is malformed or out of range
|
|
EOF
|
|
$VIRSH -q -c $test_url event --all --timeout -1 >out 2>err && fail=1
|
|
test -s out && fail=1
|
|
compare exp-err err || fail=1
|
|
|
|
# Zero. This is not a valid timeout, but the value is parsed
|
|
# correctly
|
|
cat <<\EOF > exp-err || framework_failure
|
|
error: Numeric value '0' for <timeout> option is malformed or out of range
|
|
EOF
|
|
$VIRSH -q -c $test_url event --all --timeout 0 >out 2>err && fail=1
|
|
test -s out && fail=1
|
|
compare exp-err err || fail=1
|
|
|
|
# Numeric value. No events will be received and the command will
|
|
# fail after a second, but the value has been parsed correctly
|
|
cat <<\EOF > exp-out || framework_failure
|
|
event loop timed out
|
|
events received: 0
|
|
EOF
|
|
$VIRSH -q -c $test_url event --all --timeout 1 >out 2>err && fail=1
|
|
test -s err && fail=1
|
|
compare exp-out out || fail=1
|
|
|
|
(exit $fail); exit $fail
|