thin-provisioning-tools/features/thin_check.feature
2014-08-27 14:01:31 +01:00

87 lines
2.3 KiB
Gherkin

Feature: thin_check
Scenario: print version (-V flag)
When I run `thin_check -V`
Then it should pass with version
Scenario: print version (--version flag)
When I run `thin_check --version`
Then it should pass with version
Scenario: print help
When I run `thin_check --help`
Then it should pass with:
"""
Usage: thin_check [options] {device|file}
Options:
{-q|--quiet}
{-h|--help}
{-V|--version}
{--clear-needs-check-flag}
{--ignore-non-fatal-errors}
{--skip-mappings}
{--super-block-only}
"""
Scenario: print help
When I run `thin_check -h`
Then it should pass with:
"""
Usage: thin_check [options] {device|file}
Options:
{-q|--quiet}
{-h|--help}
{-V|--version}
{--clear-needs-check-flag}
{--ignore-non-fatal-errors}
{--skip-mappings}
{--super-block-only}
"""
Scenario: Unrecognised option should cause failure
When I run `thin_check --hedeghogs-only`
Then it should fail
Scenario: --super-block-only check passes on valid metadata
Given valid thin metadata
When I run thin_check with --super-block-only
Then it should pass
Scenario: --super-block-only check fails with corrupt superblock
Given a corrupt superblock
When I run thin_check with --super-block-only
Then it should fail with:
"""
examining superblock
superblock is corrupt
bad checksum in superblock
"""
Scenario: --skip-mappings check passes on valid metadata
Given valid thin metadata
When I run thin_check with --skip-mappings
Then it should pass
Scenario: --ignore-non-fatal-errors check passes on valid metadata
Given valid thin metadata
When I run thin_check with --ignore-non-fatal-errors
Then it should pass
Scenario: -q should give no output
Given a corrupt superblock
When I run thin_check with --quiet
Then it should fail
And it should give no output
Scenario: --quiet should give no output
Given a corrupt superblock
When I run thin_check with --quiet
Then it should fail
And it should give no output
Scenario: Accepts --clear-needs-check-flag
Given valid thin metadata
When I run thin_check with --clear-needs-check-flag
Then it should pass