You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by dr...@apache.org on 2017/11/28 22:54:34 UTC

[trafficserver] branch master updated: Fix a number of tests

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

dragon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new ecb9b9c  Fix a number of tests
ecb9b9c is described below

commit ecb9b9c82d1d1ffbef5430f63b6415a2e665f7e7
Author: Jason Kenny <dr...@live.com>
AuthorDate: Tue Nov 28 15:53:58 2017 -0600

    Fix a number of tests
    
    change return code test as we can now shut doiwn better
    Update min version of Autest
    Change times on txn and double test to have time for metrics to be collection via contniuation.
    clean up test general-connection-failure
    change kill timeout to 30 sec
---
 tests/gold_tests/autest-site/init.cli.ext          |  4 +-
 tests/gold_tests/autest-site/microDNS.test.ext     |  2 +-
 tests/gold_tests/autest-site/microserver.test.ext  |  2 +-
 tests/gold_tests/autest-site/setup.cli.ext         |  1 +
 .../gold_tests/autest-site/trafficserver.test.ext  | 13 +++++-
 tests/gold_tests/basic/basic-manager.test.py       |  3 +-
 tests/gold_tests/continuations/double.test.py      |  4 +-
 .../headers/general-connection-failure-502.test.py | 22 +++-------
 tests/gold_tests/redirect/redirect_post.test.py    |  2 +-
 tests/gold_tests/transaction/txn.test.py           | 50 ++++++++++++++--------
 10 files changed, 59 insertions(+), 44 deletions(-)

diff --git a/tests/gold_tests/autest-site/init.cli.ext b/tests/gold_tests/autest-site/init.cli.ext
index 24f84cd..dbff075 100644
--- a/tests/gold_tests/autest-site/init.cli.ext
+++ b/tests/gold_tests/autest-site/init.cli.ext
@@ -23,9 +23,9 @@ if sys.version_info < (3, 5, 0):
     host.WriteError(
         "You need python 3.5 or later to run these tests\n", show_stack=False)
 
-if AuTestVersion() < "1.3.5":
+if AuTestVersion() < "1.4.0":
     host.WriteError(
-        "Tests need AuTest version 1.3.4 or better\n Please update AuTest:\n  pip install --upgrade autest\n", show_stack=False)
+        "Tests need AuTest version 1.4.0 or better\n Please update AuTest:\n  pip install --upgrade autest\n", show_stack=False)
 
 
 Settings.path_argument(["--ats-bin"],
diff --git a/tests/gold_tests/autest-site/microDNS.test.ext b/tests/gold_tests/autest-site/microDNS.test.ext
index 94cf299..adf5c1e 100644
--- a/tests/gold_tests/autest-site/microDNS.test.ext
+++ b/tests/gold_tests/autest-site/microDNS.test.ext
@@ -92,7 +92,7 @@ def MakeDNServer(obj, name, filename="dns_file.json", port=False, IP='127.0.0.1'
     p.Command = command
     p.Setup.MakeDir(data_dir)
     p.Variables.DataDir = data_dir
-    p.ReturnCode = None
+    p.ReturnCode = 0
     p.Ready = When.PortOpen(port)
     AddMethodToInstance(p, AddRecord)
     AddMethodToInstance(p, addRecords)
diff --git a/tests/gold_tests/autest-site/microserver.test.ext b/tests/gold_tests/autest-site/microserver.test.ext
index 0261789..206a983 100644
--- a/tests/gold_tests/autest-site/microserver.test.ext
+++ b/tests/gold_tests/autest-site/microserver.test.ext
@@ -124,7 +124,7 @@ def MakeOriginServer(obj, name, port=False, ip=False, delay=False, public_ip=Fal
     p.Setup.MakeDir(data_dir)
     p.Variables.DataDir = data_dir
     p.Ready = When.PortOpen(port, ip)
-    p.ReturnCode = None
+    p.ReturnCode = Any(None,0)
     AddMethodToInstance(p, addResponse)
     AddMethodToInstance(p, addTransactionToSession)
 
diff --git a/tests/gold_tests/autest-site/setup.cli.ext b/tests/gold_tests/autest-site/setup.cli.ext
index a67b9f1..5f2fe06 100644
--- a/tests/gold_tests/autest-site/setup.cli.ext
+++ b/tests/gold_tests/autest-site/setup.cli.ext
@@ -73,3 +73,4 @@ Variables.AtsTestToolsDir = os.path.join(AutestSitePath, '../../tools')
 # modify delay times as we always have to kill Trafficserver
 # no need to wait
 Variables.Autest.StopProcessLongDelaySeconds = 0
+Variables.Autest.KillDelaySecond = 30
diff --git a/tests/gold_tests/autest-site/trafficserver.test.ext b/tests/gold_tests/autest-site/trafficserver.test.ext
index b0a7a3e..33f4ef2 100755
--- a/tests/gold_tests/autest-site/trafficserver.test.ext
+++ b/tests/gold_tests/autest-site/trafficserver.test.ext
@@ -279,8 +279,17 @@ def MakeATSProcess(obj, name, command='traffic_server', select_ports=True):
     p.Env['PROXY_CONFIG_ADMIN_SYNTHETIC_PORT'] = str(p.Variables.admin_port)
     p.Env['PROXY_CONFIG_ADMIN_AUTOCONF_PORT'] = str(
         p.Variables.admin_port)  # support pre ATS 6.x
-    # since we always kill this
-    p.ReturnCode = None
+    # This is a hack to deal with a leak issue in traffic_cop
+    # I need to address this better in AuTest, however it is more complex at the 
+    # moment to deal with a rogue process in a process group than it is to do "old" behavior
+    if command == "traffic_cop":
+        p.ReturnCode = None
+        p.Variables.Autest.KillDelaySecond = 0
+    if command == "traffic_manager":
+        p.ReturnCode = 2
+    else:
+        p.ReturnCode = 0
+        
 
     return p
 
diff --git a/tests/gold_tests/basic/basic-manager.test.py b/tests/gold_tests/basic/basic-manager.test.py
index 24cb2bd..caa46fc 100644
--- a/tests/gold_tests/basic/basic-manager.test.py
+++ b/tests/gold_tests/basic/basic-manager.test.py
@@ -22,7 +22,8 @@ Test that Trafficserver starts with default configurations.
 
 Test.SkipUnless(Condition.HasProgram("curl", "Curl need to be installed on system for this test to work"))
 
-p = Test.MakeATSProcess("ts", command="traffic_manager", select_ports=False)
+ts = Test.MakeATSProcess("ts", command="traffic_manager", select_ports=False)
+
 t = Test.AddTestRun("Test traffic server started properly")
 t.StillRunningAfter = Test.Processes.ts
 
diff --git a/tests/gold_tests/continuations/double.test.py b/tests/gold_tests/continuations/double.test.py
index 0d5fd0a..6b95134 100644
--- a/tests/gold_tests/continuations/double.test.py
+++ b/tests/gold_tests/continuations/double.test.py
@@ -28,6 +28,7 @@ Test.SkipUnless(
 Test.ContinueOnFail = True
 # Define default ATS
 ts = Test.MakeATSProcess("ts", command="traffic_manager")
+
 server = Test.MakeOriginServer("server")
 
 Test.testName = ""
@@ -77,11 +78,10 @@ def file_is_ready():
 
 # number of sessions/transactions opened and closed are equal
 tr = Test.AddTestRun()
-tr.Processes.Process("filesleeper", "python -c 'from time import sleep; sleep(10)'")
+tr.DelayStart=10 
 tr.Processes.Default.Command = comparator_command.format('ssn')
 tr.Processes.Default.ReturnCode = 0
 tr.Processes.Default.Env = ts.Env
-tr.Processes.Default.StartBefore(tr.Processes.filesleeper, ready=file_is_ready)
 tr.Processes.Default.Streams.stdout = Testers.ContainsExpression("yes", 'should verify contents')
 tr.StillRunningAfter = ts
 # for debugging session number
diff --git a/tests/gold_tests/headers/general-connection-failure-502.test.py b/tests/gold_tests/headers/general-connection-failure-502.test.py
index 839190a..4d785a8 100644
--- a/tests/gold_tests/headers/general-connection-failure-502.test.py
+++ b/tests/gold_tests/headers/general-connection-failure-502.test.py
@@ -22,31 +22,23 @@ import os
 Test.Summary = '''
 Test response when connection to origin fails
 '''
-
-Test.ContinueOnFail = True
-
 ts = Test.MakeATSProcess("ts")
 
 HOST = 'www.connectfail502.test'
-
 ARBITRARY_LOOPBACK_IP='127.220.59.101' # This should fail to connect.
+
 ts.Disk.remap_config.AddLine(
-    'map http://{0} http://{1}'.format(HOST, ARBITRARY_LOOPBACK_IP)
+    'map http://{host} http://{ip}'.format(host=HOST, ip=ARBITRARY_LOOPBACK_IP)
 )
 
-Test.Setup.Copy(os.path.join(Test.Variables['AtsTestToolsDir'], 'tcp_client.py'))
-
-TEST_DATA_PATH=os.path.join(Test.TestDirectory, 'www.connectfail502.test-get.txt')
-with open(TEST_DATA_PATH, 'w') as f:
-    f.write("GET / HTTP/1.1\r\nHost: {}\r\n\r\n".format(HOST))
-Test.Setup.Copy(TEST_DATA_PATH)
+Test.Setup.Copy(os.path.join(Test.Variables.AtsTestToolsDir, 'tcp_client.py'))
 
-GOLD_FILE_PATH=os.path.join(Test.TestDirectory, 'general-connection-failure-502.gold')
-Test.Setup.Copy(GOLD_FILE_PATH)
+data_file=Test.Disk.File("www.connectfail502.test-get.txt", id="datafile")
+data_file.WriteOn("GET / HTTP/1.1\r\nHost: {host}\r\n\r\n".format(host=HOST))
 
 tr = Test.AddTestRun()
 tr.Processes.Default.StartBefore(Test.Processes.ts)
 tr.Processes.Default.Command = "python tcp_client.py 127.0.0.1 {0} {1} | egrep -v '^(Date: |Server: ATS/)'"\
-        .format(ts.Variables.port, os.path.basename(TEST_DATA_PATH))
+        .format(ts.Variables.port, "www.connectfail502.test-get.txt")
 tr.Processes.Default.ReturnCode = 0
-tr.Processes.Default.Streams.stdout = os.path.basename(GOLD_FILE_PATH)
+tr.Processes.Default.Streams.stdout = 'general-connection-failure-502.gold'
diff --git a/tests/gold_tests/redirect/redirect_post.test.py b/tests/gold_tests/redirect/redirect_post.test.py
index e631afd..3d25deb 100644
--- a/tests/gold_tests/redirect/redirect_post.test.py
+++ b/tests/gold_tests/redirect/redirect_post.test.py
@@ -63,7 +63,7 @@ ts.Disk.remap_config.AddLine(
 )
 
 tr = Test.AddTestRun()
-tr.Processes.Default.Command = 'touch largefile.txt && truncate largefile.txt -s 50M && curl -i http://127.0.0.1:{0}/redirect1 -F "filename=@./largefile.txt" && rm -f largefile.txt'.format(ts.Variables.port)
+tr.Processes.Default.Command = 'curl -i http://127.0.0.1:{0}/redirect1'.format(ts.Variables.port)
 tr.Processes.Default.StartBefore(ts)
 tr.Processes.Default.StartBefore(redirect_serv1)
 tr.Processes.Default.StartBefore(redirect_serv2)
diff --git a/tests/gold_tests/transaction/txn.test.py b/tests/gold_tests/transaction/txn.test.py
index 747ee9d..b285409 100644
--- a/tests/gold_tests/transaction/txn.test.py
+++ b/tests/gold_tests/transaction/txn.test.py
@@ -23,41 +23,49 @@ Test transactions and sessions, making sure they open and close in the proper or
 '''
 # need Apache Benchmark. For RHEL7, this is httpd-tools
 Test.SkipUnless(
-    Condition.HasProgram("ab", "apache benchmark (httpd-tools) needs to be installed on system for this test to work")
+    Condition.HasProgram(
+        "ab", "apache benchmark (httpd-tools) needs to be installed on system for this test to work")
 )
-Test.ContinueOnFail = True
+
 # Define default ATS
 ts = Test.MakeATSProcess("ts", command="traffic_manager")
+
 server = Test.MakeOriginServer("server")
 
 Test.testName = ""
-request_header = {"headers": "GET / HTTP/1.1\r\n\r\n", "timestamp": "1469733493.993", "body": ""}
+request_header = {"headers": "GET / HTTP/1.1\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": ""}
+response_header = {"headers": "HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n",
+                   "timestamp": "1469733493.993", "body": ""}
 
-Test.PreparePlugin(os.path.join(Test.Variables.AtsTestToolsDir, 'plugins', 'ssntxnorder_verify.cc'), ts)
+Test.PreparePlugin(os.path.join(Test.Variables.AtsTestToolsDir,
+                                'plugins', 'ssntxnorder_verify.cc'), ts)
 
 # 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': 'ssntxnorder_verify.*',
-    'proxy.config.http.cache.http' : 0, #disable cache to simply the test.
-    'proxy.config.cache.enable_read_while_writer' : 0
+    'proxy.config.http.cache.http': 0,  # disable cache to simply the test.
+    'proxy.config.cache.enable_read_while_writer': 0
 })
 
 ts.Disk.remap_config.AddLine(
-    'map http://127.0.0.1:{0} http://127.0.0.1:{1}'.format(ts.Variables.port, server.Variables.Port)
+    'map http://127.0.0.1:{0} http://127.0.0.1:{1}'.format(
+        ts.Variables.port, server.Variables.Port)
 )
 
 numberOfRequests = randint(1000, 1500)
 
 # Make a *ton* of calls to the proxy!
 tr = Test.AddTestRun()
-tr.Processes.Default.Command = 'ab -n {0} -c 10 http://127.0.0.1:{1}/;sleep 5'.format(numberOfRequests, ts.Variables.port)
+tr.Processes.Default.Command = 'ab -n {0} -c 10 http://127.0.0.1:{1}/;sleep 5'.format(
+    numberOfRequests, ts.Variables.port)
 tr.Processes.Default.ReturnCode = 0
 # time delay as proxy.config.http.wait_for_cache could be broken
-tr.Processes.Default.StartBefore(server, ready=When.PortOpen(server.Variables.Port))
+tr.Processes.Default.StartBefore(
+    server, ready=When.PortOpen(server.Variables.Port))
 tr.Processes.Default.StartBefore(ts, ready=When.PortOpen(ts.Variables.port))
 tr.StillRunningAfter = ts
 
@@ -65,21 +73,17 @@ tr.StillRunningAfter = ts
 records = ts.Disk.File(os.path.join(ts.Variables.RUNTIMEDIR, "records.snap"))
 
 
-def file_is_ready():
-    return os.path.exists(records.AbsPath)
-
-
 # Check our work on traffic_ctl
 # no errors happened,
 tr = Test.AddTestRun()
-tr.Processes.Process("filesleeper", "python -c 'from time import sleep; sleep(10)'")
+tr.DelayStart = 10
 tr.Processes.Default.Command = 'traffic_ctl metric get ssntxnorder_verify.err'
 tr.Processes.Default.ReturnCode = 0
 tr.Processes.Default.Env = ts.Env
-tr.Processes.Default.StartBefore(tr.Processes.filesleeper, ready=file_is_ready)
 tr.Processes.Default.Streams.All = Testers.ContainsExpression(
     'ssntxnorder_verify.err 0', 'incorrect statistic return, or possible error.')
 tr.StillRunningAfter = ts
+tr.StillRunningAfter = server
 
 comparator_command = '''
 if test "`traffic_ctl metric get ssntxnorder_verify.{0}.start | cut -d ' ' -f 2`" -eq "`traffic_ctl metric get ssntxnorder_verify.{0}.close | cut -d ' ' -f 2`" ; then\
@@ -94,22 +98,29 @@ tr = Test.AddTestRun()
 tr.Processes.Default.Command = comparator_command.format('ssn')
 tr.Processes.Default.ReturnCode = 0
 tr.Processes.Default.Env = ts.Env
-tr.Processes.Default.Streams.stdout = Testers.ContainsExpression("yes", 'should verify contents')
+tr.Processes.Default.Streams.stdout = Testers.ContainsExpression(
+    "yes", 'should verify contents')
 tr.StillRunningAfter = ts
+tr.StillRunningAfter = server
+
 tr = Test.AddTestRun()
 tr.Processes.Default.Command = comparator_command.format('txn')
 tr.Processes.Default.ReturnCode = 0
 tr.Processes.Default.Env = ts.Env
-tr.Processes.Default.Streams.stdout = Testers.ContainsExpression("yes", 'should verify contents')
+tr.Processes.Default.Streams.stdout = Testers.ContainsExpression(
+    "yes", 'should verify contents')
 tr.StillRunningAfter = ts
+tr.StillRunningAfter = server
 
 # session count is positive,
 tr = Test.AddTestRun()
 tr.Processes.Default.Command = "traffic_ctl metric get ssntxnorder_verify.ssn.start"
 tr.Processes.Default.ReturnCode = 0
 tr.Processes.Default.Env = ts.Env
-tr.Processes.Default.Streams.stdout = Testers.ExcludesExpression(" 0", 'should be nonzero')
+tr.Processes.Default.Streams.stdout = Testers.ExcludesExpression(
+    " 0", 'should be nonzero')
 tr.StillRunningAfter = ts
+tr.StillRunningAfter = server
 
 # and we receive the same number of transactions as we asked it to make
 tr = Test.AddTestRun()
@@ -119,3 +130,4 @@ tr.Processes.Default.Env = ts.Env
 tr.Processes.Default.Streams.stdout = Testers.ContainsExpression(
     "ssntxnorder_verify.txn.start {}".format(numberOfRequests), 'should be the number of transactions we made')
 tr.StillRunningAfter = ts
+tr.StillRunningAfter = server

-- 
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].