From 1bda31480aa43534313e0557c0d484caaceb4a08 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 10 Feb 2016 12:07:42 +0000 Subject: Don't allow limiting protocl on HTTP/HTTPS tests. We cannot allow HTTP/HTTPS to be limited by protocol, such as IPv4-only or IPv6-only. Raise an error in the parser if this is attempted. Added test-case to confirm, and this closes #12488. --- lib/custodian/protocoltest/http.rb | 6 ++++++ t/test-custodian-parser.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/lib/custodian/protocoltest/http.rb b/lib/custodian/protocoltest/http.rb index 05e71ae..4632630 100644 --- a/lib/custodian/protocoltest/http.rb +++ b/lib/custodian/protocoltest/http.rb @@ -143,6 +143,12 @@ module Custodian if line =~ /with host header '([^']+)'/ @host_override = $1.dup end + + # We can't test on IPv4-only or IPv6-only basis + if line =~ /ipv[46]_only/i + raise ArgumentError, "We cannot limit HTTP/HTTPS tests to IPv4/IPv6-only" + end + end diff --git a/t/test-custodian-parser.rb b/t/test-custodian-parser.rb index d3c3842..bc2bc2b 100755 --- a/t/test-custodian-parser.rb +++ b/t/test-custodian-parser.rb @@ -433,6 +433,33 @@ EOF + # + # HTTP/HTTPS tests don't like IPv4/IPv6-limits + # + def test_http_protocols + + parser = Custodian::Parser.new + + # + # A series of tests to parse + # + text = [] + text.push('https://example.com/ must run https ipv4_only') + text.push('https://example.com/ must run https ipv6_only') + text.push('http://example.com/ must run http ipv4_only') + text.push('http://example.com/ must run http ipv6_only') + + # + # Test the parser with this text + # + text.each do |txt| + assert_raise ArgumentError do + parser.parse_lines(txt) + end + end + end + + # # Test that the text we're going to use in alerters is present. # -- cgit v1.2.1