diff options
author | Steve Kemp <steve@steve.org.uk> | 2015-02-18 05:41:02 +0000 |
---|---|---|
committer | Steve Kemp <steve@steve.org.uk> | 2015-02-18 05:41:02 +0000 |
commit | 1fd332a69d222293581b25fb2fa892ddbccd305c (patch) | |
tree | 7c67237038fc400610005f34c0feea13043d1c1c | |
parent | c235dbb7ca0d09008224f80e96457bf29efcc3d3 (diff) |
Correctly parse tests with multiple implementation-types.
We now parse a single test-definition into multiple
test-implementations. This isn't required here because
the parser only needs to know that the configuration file
*can* be parsed, not what the result is.
Validate that we got an array, but otherwise ignore the
results after the first.
-rw-r--r-- | lib/custodian/parser.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/custodian/parser.rb b/lib/custodian/parser.rb index d32b9c9..fb35cd5 100644 --- a/lib/custodian/parser.rb +++ b/lib/custodian/parser.rb @@ -337,8 +337,23 @@ module Custodian job = nil begin + + # + # We need to parse the job with the class-factory + # + # BUT the key thing here is that the line is parseable, + # not that we care about the result of that parsing. + # + # The result of the parsing will be an array and if so + # we just need to store the first job. Since it is duplicated + # if there are multiple handlers and we should always have one - + # or an unknown job-type of course! + # job = Custodian::TestFactory.create( macro_expanded ) - ret.push( job ) + + if ( job && ( job.kind_of? Array ) ) + ret.push( job[0].to_s ) + end rescue => ex raise ArgumentError, "Parsing a line to a protocol test gave the error: #{ex}" return nil |