From 63b89acbfe85dede4d499a656a15ef379925ebca Mon Sep 17 00:00:00 2001 From: Susan Hinrichs Date: Wed, 26 May 2021 15:25:26 +0000 Subject: [PATCH 1/2] Test bad request behavior --- .../headers/good_request_after_bad.test.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/gold_tests/headers/good_request_after_bad.test.py b/tests/gold_tests/headers/good_request_after_bad.test.py index 27d4e65e457..bfafe1edf95 100644 --- a/tests/gold_tests/headers/good_request_after_bad.test.py +++ b/tests/gold_tests/headers/good_request_after_bad.test.py @@ -24,7 +24,7 @@ ''' Test.ContinueOnFail = True ts = Test.MakeATSProcess("ts", enable_cache=True) - +Test.ContinueOnFail = True ts.Disk.records_config.update({'proxy.config.diags.debug.tags': 'http', 'proxy.config.diags.debug.enabled': 0, }) @@ -50,17 +50,19 @@ tr.Processes.Default.ReturnCode = 0 tr = Test.AddTestRun("space after header name") -tr.Processes.Default.Command = 'printf "GET / HTTP/1.1\r\nHost : bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( +tr.Processes.Default.Command = 'printf "GET /foo HTTP/1.1\r\nHost : bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( ts.Variables.port) tr.Processes.Default.ReturnCode = 0 tr.Processes.Default.Streams.stdout = 'gold/bad_good_request.gold' -tr = Test.AddTestRun("Bad protocol number") -tr.Processes.Default.Command = 'printf "GET / HTTP/11.1\r\nhost: bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( +# invalid version number +tr = Test.AddTestRun("Invalid protocol version number") +tr.Processes.Default.Command = 'printf "GET / HTTP/1.9\r\nHost:bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( ts.Variables.port) tr.Processes.Default.ReturnCode = 0 tr.Processes.Default.Streams.stdout = 'gold/bad_protocol_number.gold' + tr = Test.AddTestRun("Unsupported Transfer Encoding value") tr.Processes.Default.Command = 'printf "GET / HTTP/1.1\r\nhost: bob\r\ntransfer-encoding: random\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( ts.Variables.port) @@ -99,3 +101,10 @@ ts.Variables.port) tr.Processes.Default.ReturnCode = 0 tr.Processes.Default.Streams.stdout = 'gold/bad_method.gold' + +# mangled termination +tr = Test.AddTestRun("mangled line termination") +tr.Processes.Default.Command = 'printf "GET / HTTP/1.1\r\nHost:bob\r\n \r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( + ts.Variables.port) +tr.Processes.Default.ReturnCode = 0 +tr.Processes.Default.Streams.stdout = 'gold/bad_good_request.gold' From 562b0337c6ece6b7eb6863ddb9e0a3c70be068b4 Mon Sep 17 00:00:00 2001 From: Susan Hinrichs Date: Mon, 28 Jun 2021 13:56:15 +0000 Subject: [PATCH 2/2] Remove unnnecessary changes --- tests/gold_tests/headers/good_request_after_bad.test.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tests/gold_tests/headers/good_request_after_bad.test.py b/tests/gold_tests/headers/good_request_after_bad.test.py index bfafe1edf95..9731f7bb813 100644 --- a/tests/gold_tests/headers/good_request_after_bad.test.py +++ b/tests/gold_tests/headers/good_request_after_bad.test.py @@ -50,19 +50,17 @@ tr.Processes.Default.ReturnCode = 0 tr = Test.AddTestRun("space after header name") -tr.Processes.Default.Command = 'printf "GET /foo HTTP/1.1\r\nHost : bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( +tr.Processes.Default.Command = 'printf "GET / HTTP/1.1\r\nHost : bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( ts.Variables.port) tr.Processes.Default.ReturnCode = 0 tr.Processes.Default.Streams.stdout = 'gold/bad_good_request.gold' -# invalid version number -tr = Test.AddTestRun("Invalid protocol version number") -tr.Processes.Default.Command = 'printf "GET / HTTP/1.9\r\nHost:bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( +tr = Test.AddTestRun("Bad protocol number") +tr.Processes.Default.Command = 'printf "GET / HTTP/11.1\r\nhost: bob\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( ts.Variables.port) tr.Processes.Default.ReturnCode = 0 tr.Processes.Default.Streams.stdout = 'gold/bad_protocol_number.gold' - tr = Test.AddTestRun("Unsupported Transfer Encoding value") tr.Processes.Default.Command = 'printf "GET / HTTP/1.1\r\nhost: bob\r\ntransfer-encoding: random\r\n\r\nGET / HTTP/1.1\r\nHost: boa\r\n\r\n" | nc 127.0.0.1 {}'.format( ts.Variables.port)