summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYuichi Ito <ito.yuichi0@gmail.com>2014-03-28 13:18:48 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2014-03-30 10:43:06 +0900
commit3b7b40d9a659c6fda058cbb2b8018da45fb1dda5 (patch)
treed75def696c1c875f99384cf936325ad5a56bbbca
parentf9f88f44096ae2e3a2414089f1abb24f918a8cb5 (diff)
sw test tool: Enable parsing a new 'ingress' format
The format is for sending packets continuously. Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka1@gmail.com> Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/tests/switch/tester.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/ryu/tests/switch/tester.py b/ryu/tests/switch/tester.py
index 171d552c..b43cb9f1 100644
--- a/ryu/tests/switch/tester.py
+++ b/ryu/tests/switch/tester.py
@@ -82,6 +82,10 @@ TARGET_RECEIVE_PORT = 1
INTERVAL = 1 # sec
WAIT_TIMER = 3 # sec
+# Default settings for 'ingress: packets'
+DEFAULT_DURATION_TIME = 30
+DEFAULT_PKTPS = 1000
+
# Test file format.
KEY_DESC = 'description'
KEY_PREREQ = 'prerequisite'
@@ -92,6 +96,10 @@ KEY_INGRESS = 'ingress'
KEY_EGRESS = 'egress'
KEY_PKT_IN = 'PACKET_IN'
KEY_TBL_MISS = 'table-miss'
+KEY_PACKETS = 'packets'
+KEY_DATA = 'data'
+KEY_PKTPS = 'pktps'
+KEY_DURATION_TIME = 'duration_time'
# Test state.
STATE_INIT_FLOW = 0
@@ -1012,7 +1020,18 @@ class Test(stringify.StringifyMixin):
# parse 'ingress'
if not KEY_INGRESS in test:
raise ValueError('a test requires "%s" field.' % KEY_INGRESS)
- test_pkt[KEY_INGRESS] = __test_pkt_from_json(test[KEY_INGRESS])
+ if isinstance(test[KEY_INGRESS], list):
+ test_pkt[KEY_INGRESS] = __test_pkt_from_json(test[KEY_INGRESS])
+ elif isinstance(test[KEY_INGRESS], dict):
+ test_pkt[KEY_PACKETS] = {
+ KEY_DATA: __test_pkt_from_json(
+ test[KEY_INGRESS][KEY_PACKETS][KEY_DATA]),
+ KEY_DURATION_TIME: test[KEY_INGRESS][KEY_PACKETS].get(
+ KEY_DURATION_TIME, DEFAULT_DURATION_TIME),
+ KEY_PKTPS: test[KEY_INGRESS][KEY_PACKETS].get(
+ KEY_PKTPS, DEFAULT_PKTPS)}
+ else:
+ raise ValueError('invalid format: "%s" field' % KEY_INGRESS)
# parse 'egress' or 'PACKET_IN' or 'table-miss'
if KEY_EGRESS in test:
test_pkt[KEY_EGRESS] = __test_pkt_from_json(test[KEY_EGRESS])