[functional tests] Replace some of the cucumber tests.
Replace thin_check, thin_dump, thin_restore and thin_rmap functional tests.
This commit is contained in:
@@ -1,86 +0,0 @@
|
||||
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
|
||||
@@ -1,101 +0,0 @@
|
||||
Feature: thin_restore
|
||||
Scenario: print version (-V flag)
|
||||
When I run thin_restore with -V
|
||||
Then it should pass with version
|
||||
|
||||
Scenario: print version (--version flag)
|
||||
When I run thin_restore with --version
|
||||
Then it should pass with version
|
||||
|
||||
Scenario: print help (-h)
|
||||
When I run thin_restore with -h
|
||||
Then it should pass with:
|
||||
|
||||
"""
|
||||
Usage: thin_restore [options]
|
||||
Options:
|
||||
{-h|--help}
|
||||
{-i|--input} <input xml file>
|
||||
{-o|--output} <output device or file>
|
||||
{-q|--quiet}
|
||||
{-V|--version}
|
||||
"""
|
||||
|
||||
Scenario: print help (--help)
|
||||
When I run thin_restore with -h
|
||||
Then it should pass with:
|
||||
|
||||
"""
|
||||
Usage: thin_restore [options]
|
||||
Options:
|
||||
{-h|--help}
|
||||
{-i|--input} <input xml file>
|
||||
{-o|--output} <output device or file>
|
||||
{-q|--quiet}
|
||||
{-V|--version}
|
||||
"""
|
||||
|
||||
Scenario: missing input file
|
||||
Given the dev file metadata.bin
|
||||
When I run thin_restore with -o metadata.bin
|
||||
Then it should fail with:
|
||||
"""
|
||||
No input file provided.
|
||||
"""
|
||||
|
||||
Scenario: input file not found
|
||||
Given the dev file metadata.bin
|
||||
When I run thin_restore with -i foo.xml -o metadata.bin
|
||||
Then it should fail
|
||||
|
||||
Scenario: missing output file
|
||||
When I run thin_restore with -i metadata.xml
|
||||
Then it should fail with:
|
||||
"""
|
||||
No output file provided.
|
||||
"""
|
||||
|
||||
Scenario: tiny output file
|
||||
Given a tiny file
|
||||
When I run thin_restore with -i metadata.xml -o tiny
|
||||
Then it should fail with:
|
||||
"""
|
||||
Output file too small.
|
||||
|
||||
The output file should either be a block device,
|
||||
or an existing file. The file needs to be large
|
||||
enough to hold the metadata.
|
||||
"""
|
||||
|
||||
Scenario: --quiet is accepted
|
||||
Given valid thin metadata
|
||||
When I run thin_restore with -i metadata.xml -o metadata.bin --quiet
|
||||
Then it should pass
|
||||
And the output should contain exactly:
|
||||
"""
|
||||
"""
|
||||
|
||||
Scenario: -q is accepted
|
||||
Given valid thin metadata
|
||||
When I run thin_restore with -i metadata.xml -o metadata.bin -q
|
||||
Then it should pass
|
||||
And the output should contain exactly:
|
||||
"""
|
||||
"""
|
||||
|
||||
Scenario: dump/restore is a noop
|
||||
Given valid thin metadata
|
||||
When I dump
|
||||
And I restore
|
||||
And I dump
|
||||
Then dumps 1 and 2 should be identical
|
||||
|
||||
Scenario: dump matches original metadata
|
||||
Given valid thin metadata
|
||||
When I dump
|
||||
Then dumps 0 and 1 should be identical
|
||||
|
||||
Scenario: dump matches original metadata (small)
|
||||
Given small thin metadata
|
||||
When I dump
|
||||
Then dumps 0 and 1 should be identical
|
||||
@@ -1,97 +0,0 @@
|
||||
Feature: thin_rmap
|
||||
Scenario: print version (-V flag)
|
||||
When I run `thin_rmap -V`
|
||||
Then it should pass with version
|
||||
|
||||
Scenario: print version (--version flag)
|
||||
When I run `thin_rmap --version`
|
||||
Then it should pass with version
|
||||
|
||||
Scenario: print help
|
||||
When I run `thin_rmap --help`
|
||||
Then it should pass with:
|
||||
|
||||
"""
|
||||
Usage: thin_rmap [options] {device|file}
|
||||
Options:
|
||||
{-h|--help}
|
||||
{-V|--version}
|
||||
{--region <block range>}*
|
||||
Where:
|
||||
<block range> is of the form <begin>..<one-past-the-end>
|
||||
for example 5..45 denotes blocks 5 to 44 inclusive, but not block 45
|
||||
"""
|
||||
|
||||
Scenario: print help
|
||||
When I run `thin_rmap -h`
|
||||
Then it should pass with:
|
||||
"""
|
||||
Usage: thin_rmap [options] {device|file}
|
||||
Options:
|
||||
{-h|--help}
|
||||
{-V|--version}
|
||||
{--region <block range>}*
|
||||
Where:
|
||||
<block range> is of the form <begin>..<one-past-the-end>
|
||||
for example 5..45 denotes blocks 5 to 44 inclusive, but not block 45
|
||||
"""
|
||||
|
||||
Scenario: Unrecognised option should cause failure
|
||||
When I run `thin_rmap --unleash-the-hedeghogs`
|
||||
Then it should fail
|
||||
|
||||
@announce
|
||||
Scenario: Valid region format should pass
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 23..7890
|
||||
Then it should pass
|
||||
|
||||
Scenario: Invalid region format should fail (comma instean of dots)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 23,7890
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (second number a word)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 23..six
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (first number a word)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region four..7890
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (end is lower than begin)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 89..88
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (end is equal to begin)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 89..89
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (no begin)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region ..89
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (no end)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 89..
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (no region at all)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region
|
||||
Then it should fail
|
||||
|
||||
Scenario: Invalid region format should fail (three dots)
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 89...99
|
||||
Then it should fail
|
||||
|
||||
Scenario: Multiple regions should pass
|
||||
Given valid thin metadata
|
||||
When I run thin_rmap with --region 1..23 --region 45..78
|
||||
Then it should pass
|
||||
Reference in New Issue
Block a user