cuke: test file options
This commit is contained in:
parent
7048dd754d
commit
9e10b94339
27
features/options/files.feature
Normal file
27
features/options/files.feature
Normal file
@ -0,0 +1,27 @@
|
||||
@routing @options @files
|
||||
Feature: Command line options: files
|
||||
Normally when launching osrm-routed, it will keep running as a server until it's shut down.
|
||||
For testing program options, the --trial option is used, which causes osrm-routed to quit
|
||||
immediately after initialization. This makes testing easier and faster.
|
||||
|
||||
The {base} part of the options to osrm-routed will be expanded to the actual base path of
|
||||
the preprocessed file.
|
||||
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
And the node map
|
||||
| a | b |
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
And I preprocess data
|
||||
|
||||
Scenario: Passing base file
|
||||
When I run "osrm-routed {base}.osrm --trial"
|
||||
Then stdout should contain /^\[info\] starting up engines/
|
||||
And stdout should contain /\d{1,2}\.\d{1,2}\.\d{1,2}/
|
||||
And stdout should contain /compiled at/
|
||||
And stdout should contain /^\[info\] loaded plugin: viaroute/
|
||||
And stdout should contain /^\[server\] trial run/
|
||||
And stdout should contain /^\[server\] shutdown completed/
|
||||
And it should exit with code 0
|
@ -4,8 +4,8 @@ Feature: Command line options: help
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
|
||||
Scenario: No options should show help
|
||||
When I run "osrm-routed"
|
||||
Scenario Outline: Help
|
||||
When I run "osrm-routed <program_options>"
|
||||
Then stderr should be empty
|
||||
And stdout should contain "osrm-routed <base.osrm> [<options>]:"
|
||||
And stdout should contain "Options:"
|
||||
@ -27,48 +27,8 @@ Feature: Command line options: help
|
||||
And stdout should contain "--sharedmemory"
|
||||
And it should exit with code 0
|
||||
|
||||
Scenario: Help, short
|
||||
When I run "osrm-routed -h"
|
||||
Then stderr should be empty
|
||||
And stdout should contain "osrm-routed <base.osrm> [<options>]:"
|
||||
And stdout should contain "Options:"
|
||||
And stdout should contain "--version"
|
||||
And stdout should contain "--help"
|
||||
And stdout should contain "--config"
|
||||
And stdout should contain "--trial"
|
||||
And stdout should contain "Configuration:"
|
||||
And stdout should contain "--hsgrdata arg"
|
||||
And stdout should contain "--nodesdata arg"
|
||||
And stdout should contain "--edgesdata arg"
|
||||
And stdout should contain "--ramindex arg"
|
||||
And stdout should contain "--fileindex arg"
|
||||
And stdout should contain "--namesdata arg"
|
||||
And stdout should contain "--timestamp arg"
|
||||
And stdout should contain "--ip"
|
||||
And stdout should contain "--port"
|
||||
And stdout should contain "--threads"
|
||||
And stdout should contain "--sharedmemory"
|
||||
And it should exit with code 0
|
||||
|
||||
Scenario: Help, long
|
||||
When I run "osrm-routed --help"
|
||||
Then stderr should be empty
|
||||
And stdout should contain "osrm-routed <base.osrm> [<options>]:"
|
||||
And stdout should contain "Options:"
|
||||
And stdout should contain "--version"
|
||||
And stdout should contain "--help"
|
||||
And stdout should contain "--config"
|
||||
And stdout should contain "--trial"
|
||||
And stdout should contain "Configuration:"
|
||||
And stdout should contain "--hsgrdata arg"
|
||||
And stdout should contain "--nodesdata arg"
|
||||
And stdout should contain "--edgesdata arg"
|
||||
And stdout should contain "--ramindex arg"
|
||||
And stdout should contain "--fileindex arg"
|
||||
And stdout should contain "--namesdata arg"
|
||||
And stdout should contain "--timestamp arg"
|
||||
And stdout should contain "--ip"
|
||||
And stdout should contain "--port"
|
||||
And stdout should contain "--threads"
|
||||
And stdout should contain "--sharedmemory"
|
||||
And it should exit with code 0
|
||||
Examples:
|
||||
| program_options |
|
||||
| |
|
||||
| -h |
|
||||
| --help |
|
@ -16,5 +16,4 @@ Feature: Command line options: invalid options
|
||||
Then stdout should contain "over-the-rainbow.osrm"
|
||||
And stderr should contain "exception"
|
||||
And stderr should contain "does not exist"
|
||||
And it should exit with code 255
|
||||
|
||||
And it should exit with code 255
|
@ -3,15 +3,15 @@ Feature: Command line options: version
|
||||
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
|
||||
Scenario: Version, short
|
||||
When I run "osrm-routed -v"
|
||||
|
||||
Scenario Outline: Version
|
||||
When I run "osrm-routed <program_options>"
|
||||
Then stderr should be empty
|
||||
And stdout should contain " v0."
|
||||
And stdout should contain 1 line
|
||||
And stdout should contain /v\d{1,2}\.\d{1,2}\.\d{1,2}/
|
||||
And it should exit with code 0
|
||||
|
||||
Scenario: Version, long
|
||||
When I run "osrm-routed --version"
|
||||
Then stderr should be empty
|
||||
And stdout should contain " v0."
|
||||
And it should exit with code 0
|
||||
Examples:
|
||||
| program_options |
|
||||
| -v |
|
||||
| --version |
|
||||
|
@ -1,16 +1,21 @@
|
||||
When(/^I run "osrm\-routed\s?(.*?)"$/) do |options|
|
||||
Dir.chdir TEST_FOLDER do
|
||||
if options.include? '{base}'
|
||||
# expand {base} to base path of preprocessed data file
|
||||
raise "*** Cannot expand {base} without a preprocessed file." unless @osm_file
|
||||
options_expanded = options.gsub "{base}", "#{@osm_file}"
|
||||
else
|
||||
options_expanded = options
|
||||
end
|
||||
|
||||
begin
|
||||
Timeout.timeout(1) do
|
||||
@stdout = `#{BIN_PATH}/osrm-routed #{options} 2>error.log`
|
||||
@stdout = `#{BIN_PATH}/osrm-routed #{options_expanded} 2>error.log`
|
||||
@stderr = File.read 'error.log'
|
||||
@exit_code = $?.exitstatus
|
||||
end
|
||||
rescue
|
||||
# TODO would be easy to handle there was an option to make osrm exit right after completing initialization
|
||||
@stdout = nil
|
||||
@stderr = nil
|
||||
@exit_code = nil
|
||||
rescue Timeout::Error
|
||||
raise "*** osrm-routed didn't quit. Maybe the --trial option wasn't used?"
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -20,11 +25,21 @@ Then /^it should exit with code (\d+)$/ do |code|
|
||||
end
|
||||
|
||||
Then /^stdout should contain "(.*?)"$/ do |str|
|
||||
@stdout.include?(str).should == true
|
||||
@stdout.should include(str)
|
||||
end
|
||||
|
||||
Then /^stderr should contain "(.*?)"$/ do |str|
|
||||
@stderr.include?(str).should == true
|
||||
@stderr.should include(str)
|
||||
end
|
||||
|
||||
Then(/^stdout should contain \/(.*)\/$/) do |regex_str|
|
||||
regex = Regexp.new regex_str
|
||||
@stdout.should =~ regex
|
||||
end
|
||||
|
||||
Then(/^stderr should contain \/(.*)\/$/) do |regex_str|
|
||||
regex = Regexp.new regex_str
|
||||
@stderr.should =~ regex
|
||||
end
|
||||
|
||||
Then /^stdout should be empty$/ do
|
||||
@ -34,3 +49,7 @@ end
|
||||
Then /^stderr should be empty$/ do
|
||||
@stderr.should == ""
|
||||
end
|
||||
|
||||
Then /^stdout should contain (\d+) lines?$/ do |lines|
|
||||
@stdout.lines.count.should == lines.to_i
|
||||
end
|
||||
|
@ -2,7 +2,23 @@
|
||||
STRESS_TIMEOUT = 300
|
||||
|
||||
Before do |scenario|
|
||||
@scenario_title = scenario.title
|
||||
# feature name
|
||||
case scenario
|
||||
when Cucumber::Ast::Scenario
|
||||
@feature_name = scenario.feature.name
|
||||
when Cucumber::Ast::OutlineTable::ExampleRow
|
||||
@feature_name = scenario.scenario_outline.feature.name
|
||||
end
|
||||
|
||||
# scenario name
|
||||
case scenario
|
||||
when Cucumber::Ast::Scenario
|
||||
@scenario_title = scenario.name
|
||||
when Cucumber::Ast::OutlineTable::ExampleRow
|
||||
@scenario_title = scenario.scenario_outline.name
|
||||
end
|
||||
|
||||
|
||||
@scenario_time = Time.now.strftime("%Y-%m-%dT%H:%m:%SZ")
|
||||
reset_data
|
||||
@has_logged_preprocess_info = false
|
||||
|
Loading…
Reference in New Issue
Block a user