diff options
author | Yuichi Ito <ito.yuichi0@gmail.com> | 2014-05-21 17:23:11 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2014-05-21 17:50:52 +0900 |
commit | 0356f5ff221812029acc2dd702cdae26dca7322f (patch) | |
tree | cad814167ded5cff0a3d111c586143c1a0da0a11 | |
parent | 5ad4f2c212ba9b44d5c89fc47bb861f5a8dfe0a1 (diff) |
sw test tool: Reduce similar methods of checking entries exist
All of _test_xxx_exist_chk() are merged as _test_exist_chk().
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.py | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/ryu/tests/switch/tester.py b/ryu/tests/switch/tester.py index a5cd74f9..8622cbaa 100644 --- a/ryu/tests/switch/tester.py +++ b/ryu/tests/switch/tester.py @@ -388,10 +388,12 @@ class OfTester(app_manager.RyuApp): for flow in test.prerequisite: if isinstance(flow, ofproto_v1_3_parser.OFPFlowMod): self._test(STATE_FLOW_INSTALL, self.target_sw, flow) - self._test(STATE_FLOW_EXIST_CHK, self.target_sw, flow) + self._test(STATE_FLOW_EXIST_CHK, + self.target_sw.send_flow_stats, flow) elif isinstance(flow, ofproto_v1_3_parser.OFPMeterMod): self._test(STATE_METER_INSTALL, self.target_sw, flow) - self._test(STATE_METER_EXIST_CHK, flow) + self._test(STATE_METER_EXIST_CHK, + self.target_sw.send_meter_config_stats, flow) # Do tests. for pkt in test.tests: @@ -408,7 +410,7 @@ class OfTester(app_manager.RyuApp): self._test(STATE_THROUGHPUT_FLOW_INSTALL, self.tester_sw, flow) self._test(STATE_THROUGHPUT_FLOW_EXIST_CHK, - self.tester_sw, flow) + self.tester_sw.send_flow_stats, flow) start = self._test(STATE_GET_THROUGHPUT) elif KEY_TBL_MISS in pkt: before_stats = self._test(STATE_GET_MATCH_COUNT) @@ -497,9 +499,9 @@ class OfTester(app_manager.RyuApp): STATE_FLOW_INSTALL: self._test_msg_install, STATE_THROUGHPUT_FLOW_INSTALL: self._test_msg_install, STATE_METER_INSTALL: self._test_msg_install, - STATE_FLOW_EXIST_CHK: self._test_flow_exist_check, - STATE_THROUGHPUT_FLOW_EXIST_CHK: self._test_flow_exist_check, - STATE_METER_EXIST_CHK: self._test_meter_exist_check, + STATE_FLOW_EXIST_CHK: self._test_exist_check, + STATE_THROUGHPUT_FLOW_EXIST_CHK: self._test_exist_check, + STATE_METER_EXIST_CHK: self._test_exist_check, STATE_TARGET_PKT_COUNT: self._test_get_packet_count, STATE_TESTER_PKT_COUNT: self._test_get_packet_count, STATE_FLOW_MATCH_CHK: self._test_flow_matching_check, @@ -540,38 +542,39 @@ class OfTester(app_manager.RyuApp): msg = self.rcv_msgs[0] assert isinstance(msg, ofproto_v1_3_parser.OFPBarrierReply) - def _test_flow_exist_check(self, datapath, flow_mod): - xid = datapath.send_flow_stats() + def _test_exist_check(self, method, message): + method_dict = { + OpenFlowSw.send_flow_stats.__name__: { + 'reply': ofproto_v1_3_parser.OFPFlowStatsReply, + 'compare': self._compare_flow + }, + OpenFlowSw.send_meter_config_stats.__name__: { + 'reply': ofproto_v1_3_parser.OFPMeterConfigStatsReply, + 'compare': self._compare_meter + } + } + xid = method() self.send_msg_xids.append(xid) self._wait() ng_stats = [] for msg in self.rcv_msgs: - assert isinstance(msg, ofproto_v1_3_parser.OFPFlowStatsReply) + assert isinstance(msg, method_dict[method.__name__]['reply']) for stats in msg.body: - result, stats = self._compare_flow(stats, flow_mod) + result, stats = method_dict[method.__name__]['compare']( + stats, message) if result: return else: ng_stats.append(stats) - raise TestFailure(self.state, flows=', '.join(ng_stats)) - def _test_meter_exist_check(self, meter_mod): - xid = self.target_sw.send_meter_config_stats() - self.send_msg_xids.append(xid) - self._wait() - - ng_stats = [] - for msg in self.rcv_msgs: - assert isinstance( - msg, ofproto_v1_3_parser.OFPMeterConfigStatsReply) - for stats in msg.body: - result, stats = self._compare_meter(stats, meter_mod) - if result: - return - else: - ng_stats.append(stats) - raise TestFailure(self.state, meters=', '.join(ng_stats)) + error_dict = { + OpenFlowSw.send_flow_stats.__name__: + {'flows': ', '.join(ng_stats)}, + OpenFlowSw.send_meter_config_stats.__name__: + {'meters': ', '.join(ng_stats)} + } + raise TestFailure(self.state, **error_dict[method.__name__]) def _test_get_packet_count(self, is_target): sw = self.target_sw if is_target else self.tester_sw |