mirror of https://github.com/nmasse-itix/zvirt.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.4 KiB
86 lines
2.4 KiB
#!/usr/bin/env bats
|
|
|
|
setup() {
|
|
bats_load_library 'bats-support'
|
|
bats_load_library 'bats-assert'
|
|
|
|
set -Eeuo pipefail
|
|
source "${BATS_TEST_DIRNAME}/../../src/lib/zvirt/core.sh"
|
|
|
|
function call_parse_args () {
|
|
init_global_variables
|
|
parse_args "$@"
|
|
ret=$?
|
|
declare -p action batch live verbose domains snapshot_name keep
|
|
return $ret
|
|
}
|
|
}
|
|
|
|
@test "call_parse_args: show help and exit" {
|
|
run call_parse_args -h
|
|
assert_success
|
|
assert_output --partial "Usage:"
|
|
}
|
|
|
|
@test "call_parse_args: no action provided" {
|
|
run call_parse_args
|
|
assert_failure
|
|
assert_output --partial "Unsupported action"
|
|
}
|
|
|
|
@test "call_parse_args: list snapshots for a single domain" {
|
|
run call_parse_args list -d foo
|
|
assert_success
|
|
assert_output --partial 'action="list"'
|
|
assert_output --partial 'domains=([0]="foo")'
|
|
}
|
|
|
|
@test "call_parse_args: take a snapshot for two domains in batch mode" {
|
|
run call_parse_args snapshot -b -d foo -d bar -s backup1 -l
|
|
assert_success
|
|
assert_output --partial 'action="snapshot"'
|
|
assert_output --partial 'batch="1"'
|
|
assert_output --partial 'domains=([0]="foo" [1]="bar")'
|
|
assert_output --partial 'snapshot_name="backup1"'
|
|
assert_output --partial 'live="1"'
|
|
}
|
|
|
|
@test "call_parse_args: take a crash-consistent snapshot for two domains" {
|
|
run call_parse_args snapshot -d foo -d bar -s backup2
|
|
assert_success
|
|
assert_output --partial 'action="snapshot"'
|
|
assert_output --partial 'batch="0"'
|
|
assert_output --partial 'domains=([0]="foo" [1]="bar")'
|
|
assert_output --partial 'snapshot_name="backup2"'
|
|
assert_output --partial 'live="0"'
|
|
}
|
|
|
|
@test "call_parse_args: revert snapshot for a domain" {
|
|
run call_parse_args revert -d foo -s backup2
|
|
assert_success
|
|
assert_output --partial 'action="revert"'
|
|
assert_output --partial 'batch="0"'
|
|
assert_output --partial 'domains=([0]="foo")'
|
|
assert_output --partial 'snapshot_name="backup2"'
|
|
assert_output --partial 'live="0"'
|
|
}
|
|
|
|
@test "call_parse_args: prune snapshots for all domains" {
|
|
virsh() {
|
|
if [[ "$*" == "list --all --name" ]]; then
|
|
echo -e "foo\nbar"
|
|
return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
run call_parse_args prune -k 5
|
|
assert_success
|
|
assert_output --partial 'action="prune"'
|
|
assert_output --partial 'domains=([0]="foo" [1]="bar")'
|
|
assert_output --partial 'keep="5"'
|
|
|
|
run call_parse_args prune
|
|
assert_failure
|
|
assert_output --partial "The -k option with a positive integer value must be specified for the 'prune' action"
|
|
}
|
|
|