[era_restore] add some cucumber tests

This commit is contained in:
Joe Thornber 2014-08-21 11:27:52 +01:00
parent feb8a03d5f
commit e3d459a148
2 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,66 @@
Feature: thin_restore
Scenario: print version (-V flag)
When I run era_restore with -V
Then it should pass with version
Scenario: print version (--version flag)
When I run era_restore with --version
Then it should pass with version
Scenario: print help (-h)
When I run era_restore with -h
Then it should pass
And the output should contain exactly:
"""
Usage: era_restore [options]
Options:
{-h|--help}
{-i|--input} <input xml file>
{-o|--output} <output device or file>
{-V|--version}
"""
Scenario: print help (--help)
When I run era_restore with -h
Then it should pass
And the output should contain exactly:
"""
Usage: era_restore [options]
Options:
{-h|--help}
{-i|--input} <input xml file>
{-o|--output} <output device or file>
{-V|--version}
"""
Scenario: missing input file
Given the dev file metadata.bin
When I run era_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 era_restore with -i foo.xml -o metadata.bin
Then it should fail
Scenario: missing output file
When I run era_restore with -i metadata.xml
Then it should fail with:
"""
No output file provided.
"""
Scenario: successfully restores a valid xml file
Given a small era xml file
And an empty dev file
When I run era_restore with -i metadata.xml -o metadata.bin
Then it should pass
And the metadata should be valid

View File

@ -14,3 +14,18 @@ end
Then /^era_usage to stderr$/ do
assert_partial_output(ERA_USAGE, all_stderr)
end
When(/^I run era_restore with (.*?)$/) do |opts|
run_simple("era_restore #{opts}", false)
end
Given(/^a small era xml file$/) do
in_current_dir do
system("era_xml create --nr-blocks 100 --nr-writesets 2 --current-era 1000 > #{xml_file}")
end
end
Then(/^the metadata should be valid$/) do
run_simple("era_check #{dev_file}", true)
end