diff options
author | Steve Kemp <steve@steve.org.uk> | 2013-02-19 11:27:33 +0000 |
---|---|---|
committer | Steve Kemp <steve@steve.org.uk> | 2013-02-19 11:27:33 +0000 |
commit | 8d97779be86177f3e15ba8edf43fb6831c843528 (patch) | |
tree | fce12371002017f5aa08f801c5c4e5b4cbc02e63 | |
parent | 86075d93e40765e2abd18ed049d4f15516798db8 (diff) |
Period definitions for tests.release-0.9-6
For example:
example.vm must run ping between 09-17 otherwise 'daytime ping failed'.
-rw-r--r-- | lib/custodian/parser.rb | 26 | ||||
-rwxr-xr-x | t/test-custodian-parser.rb | 7 |
2 files changed, 33 insertions, 0 deletions
diff --git a/lib/custodian/parser.rb b/lib/custodian/parser.rb index 7ed0725..764a03b 100644 --- a/lib/custodian/parser.rb +++ b/lib/custodian/parser.rb @@ -254,6 +254,32 @@ module Custodian return nil if ( ( line.nil? ) || ( line =~ /^#/ ) || ( line.length < 1 ) ) # + # Look for a time period. + # + if ( line =~ /between\s+([0-9]+)-([0-9]+)/i ) + p_start = $1.dup.to_i + p_end = $2.dup.to_i + + # + # Get the current hour. + # + hour = Time.now.hour + + # + # Should we exclude the test? + # + if ( line =~ /except\s+between/i ) + if ( hour > p_start && hour < p_end ) + return nil + end + else + if ( hour < p_start || hour > p_end ) + return nil + end + end + end + + # # Look for macro definitions, inline # if ( line =~ /^([0-9A-Z]_+)\s+are\s+fetched\s+from\s+([^\s]+)\.?/ ) diff --git a/t/test-custodian-parser.rb b/t/test-custodian-parser.rb index 5676d5b..811cbb5 100755 --- a/t/test-custodian-parser.rb +++ b/t/test-custodian-parser.rb @@ -49,6 +49,13 @@ class TestCustodianParser < Test::Unit::TestCase end + def test_period + parser = Custodian::Parser.new() + result = parser.parse_line( "example.vm.bytemark.co.uk must run ping except between 00-24" ) + assert( result.nil? ) + end + + # # Test the different kinds of parsing: |