[tor-commits] [onionperf/master] Removes unecessary raise and adds unit tests to validate behaviour

irl at torproject.org irl at torproject.org
Tue Jul 2 09:50:36 UTC 2019


commit 60fff2d9a1b212013cc854f00b8e1450eec7ea46
Author: Ana Custura <ana at netstat.org.uk>
Date:   Thu Jun 27 02:04:29 2019 +0100

    Removes unecessary raise and adds unit tests to validate behaviour
---
 onionperf/analysis.py            |  1 -
 onionperf/tests/data/parse_error |  1 +
 onionperf/tests/test_analysis.py | 15 +++++++++++++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/onionperf/analysis.py b/onionperf/analysis.py
index 0bc1811..e90d005 100644
--- a/onionperf/analysis.py
+++ b/onionperf/analysis.py
@@ -532,7 +532,6 @@ class TGenParser(Parser):
                     break
             except:
                 logging.warning("TGenParser: skipping line due to parsing error: {0}".format(line))
-                raise
                 continue
         source.close()
 
diff --git a/onionperf/tests/data/parse_error b/onionperf/tests/data/parse_error
new file mode 100644
index 0000000..3c8cde7
--- /dev/null
+++ b/onionperf/tests/data/parse_error
@@ -0,0 +1 @@
+2018-04-14 21:10:04 1523740204.809894 [message] [shd-tgen-transfer.c:803] [_tgentransfer_log] [transfer-error] transport TCP,17,NULL:37.218.247.40:26006,NULL:0.0.0.0:0,146.0.73.4:146.0.73.4:1313,state=SUCCESS,error=NONE transfer (null),26847,op-nl,NONE,0,(null),0,state=ERROR,error=AUTH total-bytes-read=1 total-bytes-write=0 payload-bytes-write=0/0 (-nan%) usecs-to-socket-create=0 usecs-to-socket-connect=8053676879205 usecs-to-proxy-init=-1 usecs-to-proxy-choice=-1 usecs-to-proxy-request=-1 usecs-to-proxy-response=-1 usecs-to-command=-1 usecs-to-response=-1 usecs-to-first-byte=-1 usecs-to-last-byte=-1 usecs-to-checksum=-1
diff --git a/onionperf/tests/test_analysis.py b/onionperf/tests/test_analysis.py
index 150e8f0..6463458 100644
--- a/onionperf/tests/test_analysis.py
+++ b/onionperf/tests/test_analysis.py
@@ -1,7 +1,7 @@
 import os
 import pkg_resources
 from nose.tools import *
-from onionperf import analysis
+from onionperf import analysis, util
 
 
 def absolute_data_path(relative_path=""):
@@ -11,10 +11,10 @@ def absolute_data_path(relative_path=""):
     return pkg_resources.resource_filename("onionperf",
                                            "tests/data/" + relative_path)
 
-
 DATA_DIR = absolute_data_path()
 LINE_ERROR = '2019-04-22 14:41:20 1555940480.647663 [message] [shd-tgen-transfer.c:1504] [_tgentransfer_log] [transfer-error] transport TCP,12,localhost:127.0.0.1:46878,localhost:127.0.0.1:43735,dc34og3c3aqdqntblnxkstzfvh7iy7llojd4fi5j23y2po32ock2k7ad.onion:0.0.0.0:8080,state=ERROR,error=READ transfer transfer5m,4,cyan,GET,5242880,(null),0,state=ERROR,error=PROXY total-bytes-read=0 total-bytes-write=0 payload-bytes-read=0/5242880 (0.00%) usecs-to-socket-create=11 usecs-to-socket-connect=210 usecs-to-proxy-init=283 usecs-to-proxy-choice=348 usecs-to-proxy-request=412 usecs-to-proxy-response=-1 usecs-to-command=-1 usecs-to-response=-1 usecs-to-first-byte=-1 usecs-to-last-byte=-1 usecs-to-checksum=-1'
 
+NO_PARSE_LINE = '2018-04-14 21:10:04 1523740204.809894 [message] [shd-tgen-transfer.c:803] [_tgentransfer_log] [transfer-error] transport TCP,17,NULL:37.218.247.40:26006,NULL:0.0.0.0:0,146.0.73.4:146.0.73.4:1313,state=SUCCESS,error=NONE transfer (null),26847,op-nl,NONE,0,(null),0,state=ERROR,error=AUTH total-bytes-read=1 total-bytes-write=0 payload-bytes-write=0/0 (-nan%) usecs-to-socket-create=0 usecs-to-socket-connect=8053676879205 usecs-to-proxy-init=-1 usecs-to-proxy-choice=-1 usecs-to-proxy-request=-1 usecs-to-proxy-response=-1 usecs-to-command=-1 usecs-to-response=-1 usecs-to-first-byte=-1 usecs-to-last-byte=-1 usecs-to-checksum=-1'
 
 def test_transfer_status_event():
     transfer = analysis.TransferStatusEvent(LINE_ERROR)
@@ -186,3 +186,14 @@ def test_transfer_object_end_to_end():
             'filesize_bytes':
             5242880
         })
+
+
+ at raises(ZeroDivisionError)
+def test_transfer_status_parse_error():
+    transfer = analysis.TransferStatusEvent(NO_PARSE_LINE)
+    t = analysis.Transfer(transfer.transfer_id)
+    t.add_event(transfer)
+
+def test_parsing_parse_error():
+    parser = analysis.TGenParser()
+    parser.parse(util.DataSource(DATA_DIR + 'parse_error'))





More information about the tor-commits mailing list