This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch 8.1.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/8.1.x by this push:
     new 794bcc8  Add header rewrite test to make sure we are not injecting end 
of rule char (#6340)
794bcc8 is described below

commit 794bcc87c13cea20d0b00b1cf13452ac8a151a41
Author: Evan Zelkowitz <e...@apache.org>
AuthorDate: Thu Jan 30 14:51:51 2020 -0700

    Add header rewrite test to make sure we are not injecting end of rule char 
(#6340)
    
    * Add header rewrite test to make sure we are not injecting end of rule
    characters in to an actual header
    
    This is a regression check for the issue fixed in #5423
    
    (cherry picked from commit a2e77e9db166b40c19240f0a1b64d302a711b74b)
---
 .../gold/header_rewrite-l_value.gold               | 16 ++++++
 .../header_rewrite/header_rewrite_l_value.test.py  | 64 ++++++++++++++++++++++
 .../header_rewrite/rules/rule_l_value.conf         | 21 +++++++
 3 files changed, 101 insertions(+)

diff --git 
a/tests/gold_tests/pluginTest/header_rewrite/gold/header_rewrite-l_value.gold 
b/tests/gold_tests/pluginTest/header_rewrite/gold/header_rewrite-l_value.gold
new file mode 100644
index 0000000..8c3cf66
--- /dev/null
+++ 
b/tests/gold_tests/pluginTest/header_rewrite/gold/header_rewrite-l_value.gold
@@ -0,0 +1,16 @@
+``
+> GET http://www.example.com``
+> Host: www.example.com``
+> User-Agent: curl/``
+> Accept: */*
+``
+< HTTP/1.1 200 OK
+< Date: ``
+< Age: ``
+< Transfer-Encoding: chunked
+< Proxy-Connection: keep-alive
+< Server: ATS/``
+< X-First: First
+< X-Last: Last
+< 
+``
diff --git 
a/tests/gold_tests/pluginTest/header_rewrite/header_rewrite_l_value.test.py 
b/tests/gold_tests/pluginTest/header_rewrite/header_rewrite_l_value.test.py
new file mode 100644
index 0000000..28247b0
--- /dev/null
+++ b/tests/gold_tests/pluginTest/header_rewrite/header_rewrite_l_value.test.py
@@ -0,0 +1,64 @@
+'''
+'''
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+Test.Summary = '''
+Test for a regression of the issue fixed in
+https://github.com/apache/trafficserver/pull/5423
+Insertion of header rewrite directives in to the output
+'''
+
+Test.ContinueOnFail = True
+# Define default ATS
+ts = Test.MakeATSProcess("ts")
+server = Test.MakeOriginServer("server")
+
+Test.testName = ""
+request_header = {"headers": "GET / HTTP/1.1\r\nHost: 
www.example.com\r\n\r\n", "timestamp": "1469733493.993", "body": ""}
+# expected response from the origin server
+response_header = {"headers": "HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n", 
"timestamp": "1469733493.993", "body": ""}
+
+# add response to the server dictionary
+server.addResponse("sessionfile.log", request_header, response_header)
+ts.Disk.records_config.update({
+    'proxy.config.diags.debug.enabled': 1,
+    'proxy.config.diags.debug.tags': 'header.*',
+})
+
+# The following rule adds X-First and X-Last headers
+ts.Setup.CopyAs('rules/rule_l_value.conf', Test.RunDirectory)
+
+ts.Disk.plugin_config.AddLine(
+    'header_rewrite.so {0}/rule_l_value.conf'.format(Test.RunDirectory)
+)
+ts.Disk.remap_config.AddLine(
+    'map http://www.example.com 
http://127.0.0.1:{0}'.format(server.Variables.Port)
+)
+ts.Disk.remap_config.AddLine(
+    'map http://www.example.com:8080 
http://127.0.0.1:{0}'.format(server.Variables.Port)
+)
+
+# [L] test
+tr = Test.AddTestRun("Header Rewrite End [L]")
+tr.Processes.Default.Command = 'curl --proxy 127.0.0.1:{0} 
"http://www.example.com"; -H "Proxy-Connection: keep-alive" --verbose'.format(
+    ts.Variables.port)
+tr.Processes.Default.ReturnCode = 0
+tr.Processes.Default.StartBefore(server, 
ready=When.PortOpen(server.Variables.Port))
+tr.Processes.Default.StartBefore(Test.Processes.ts)
+tr.Processes.Default.Streams.stderr = "gold/header_rewrite-l_value.gold"
+tr.StillRunningAfter = server
+ts.Streams.All = "gold/header_rewrite-tag.gold"
diff --git a/tests/gold_tests/pluginTest/header_rewrite/rules/rule_l_value.conf 
b/tests/gold_tests/pluginTest/header_rewrite/rules/rule_l_value.conf
new file mode 100644
index 0000000..e80a8e4
--- /dev/null
+++ b/tests/gold_tests/pluginTest/header_rewrite/rules/rule_l_value.conf
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cond %{SEND_RESPONSE_HDR_HOOK}
+ set-header X-First "First"
+ set-header X-Last "Last" [L]
+

Reply via email to