[functional-tests] Add some cache tests

This commit is contained in:
Joe Thornber
2017-08-25 15:03:50 +01:00
parent 2eea8c4e84
commit be34337b06
6 changed files with 166 additions and 267 deletions

View File

@@ -1,100 +0,0 @@
Feature: cache_check
Scenario: print version (-V flag)
When I run `cache_check -V`
Then it should pass with version
Scenario: print version (--version flag)
When I run `cache_check --version`
Then it should pass with version
Scenario: print help
When I run `cache_check --help`
Then it should pass
And cache_usage to stdout
Scenario: print help
When I run `cache_check -h`
Then it should pass
And cache_usage to stdout
Scenario: Metadata file must be specified
When I run `cache_check`
Then it should fail
And cache_usage to stderr
And the stderr should contain:
"""
No input file provided.
"""
Scenario: Metadata file doesn't exist
When I run `cache_check /arbitrary/filename`
Then it should fail
And the stderr should contain:
"""
/arbitrary/filename: No such file or directory
"""
Scenario: Metadata file cannot be a directory
Given a directory called foo
When I run `cache_check foo`
Then it should fail
And the stderr should contain:
"""
foo: Not a block device or regular file
"""
# This test will fail if you're running as root
Scenario: Metadata file exists, but can't be opened
Given input without read permissions
When I run `cache_check input`
Then it should fail
And the stderr should contain:
"""
Permission denied
"""
Scenario: Metadata file full of zeroes
Given input file
And block 1 is zeroed
When I run `cache_check input`
Then it should fail
Scenario: --quiet is observed
Given input file
And block 1 is zeroed
When I run `cache_check --quiet input`
Then it should fail
And it should give no output
Scenario: -q is observed
Given input file
And block 1 is zeroed
When I run `cache_check -q input`
Then it should fail
And it should give no output
Scenario: A valid metadata area passes
Given valid cache metadata
When I run `cache_check metadata.bin`
Then it should pass
Scenario: Invalid metadata version causes a fail
Given a small xml file
And input file
And I run cache_restore with -i metadata.xml -o input --debug-override-metadata-version 12345
When I run `cache_check input`
Then it should fail
Scenario: Accepts --clear-needs-check-flag
Given valid cache metadata
When I run `cache_check --clear-needs-check-flag metadata.bin`
Then it should pass

View File

@@ -1,50 +0,0 @@
Feature: cache_dump
Scenario: print version (-V flag)
When I run cache_dump with -V
Then it should pass with version
Scenario: print version (--version flag)
When I run cache_dump with --version
Then it should pass with version
@announce
Scenario: print help (-h)
When I run cache_dump with -h
Then it should pass with:
"""
Usage: cache_dump [options] {device|file}
Options:
{-h|--help}
{-o <xml file>}
{-V|--version}
"""
Scenario: print help (--help)
When I run cache_dump with -h
Then it should pass with:
"""
Usage: cache_dump [options] {device|file}
Options:
{-h|--help}
{-o <xml file>}
{-V|--version}
"""
Scenario: accepts an output file
Given valid cache metadata
When I run cache_dump with -o metadata.xml metadata.bin
Then it should pass
Scenario: missing input file
When I run cache_dump
Then it should fail with:
"""
No input file provided.
"""
Scenario: dump/restore is a noop
Given valid cache metadata
When I cache dump
And I cache restore
And I cache dump
Then cache dumps 1 and 2 should be identical

View File

@@ -1,107 +0,0 @@
Feature: cache_restore
Scenario: print version (-V flag)
When I run cache_restore with -V
Then it should pass with version
Scenario: print version (--version flag)
When I run cache_restore with --version
Then it should pass with version
Scenario: print help (-h)
When I run cache_restore with -h
Then it should pass
And the output should contain exactly:
"""
Usage: cache_restore [options]
Options:
{-h|--help}
{-i|--input} <input xml file>
{-o|--output} <output device or file>
{-q|--quiet}
{-V|--version}
{--debug-override-metadata-version} <integer>
{--omit-clean-shutdown}
"""
Scenario: print help (--help)
When I run cache_restore with -h
Then it should pass
And the output should contain exactly:
"""
Usage: cache_restore [options]
Options:
{-h|--help}
{-i|--input} <input xml file>
{-o|--output} <output device or file>
{-q|--quiet}
{-V|--version}
{--debug-override-metadata-version} <integer>
{--omit-clean-shutdown}
"""
Scenario: missing input file
Given the dev file metadata.bin
When I run cache_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 cache_restore with -i foo.xml -o metadata.bin
Then it should fail
Scenario: missing output file
When I run cache_restore with -i metadata.xml
Then it should fail with:
"""
No output file provided.
"""
Scenario: successfully restores a valid xml file
Given a small xml file
And an empty dev file
When I run cache_restore with -i metadata.xml -o metadata.bin
Then it should pass
Scenario: accepts --debug-override-metadata-version
Given a small xml file
And an empty dev file
When I run cache_restore with -i metadata.xml -o metadata.bin --debug-override-metadata-version 10298
Then it should pass
Scenario: accepts --omit-clean-shutdown
Given a small xml file
And an empty dev file
When I run cache_restore with -i metadata.xml -o metadata.bin --omit-clean-shutdown
Then it should pass
Scenario: --quiet is accepted
Given valid cache metadata
When I run cache_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 cache metadata
When I run cache_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 cache metadata
When I cache dump
And I cache restore
And I cache dump
Then dumps 1 and 2 should be identical