Zvirt takes snapshots of Libvirt domains using ZFS.
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.
 
 

67 lines
1.9 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/core.sh"
function call_parse_args () {
init_global_variables
parse_args "$@"
ret=$?
declare -p action batch live verbose domains snapshot_name
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"'
}