The pcap files for Zebra protocol were generated by:
  v2: Quagga 0.99.24.1 (Ubuntu 14.04 LST packaged version)
  v3: Quagga 1.1.0 (from Git source)

Signed-off-by: IWASE Yusuke <[email protected]>
---
 ryu/tests/packet_data/pcap/zebra_v2.pcap | Bin 0 -> 1236 bytes
 ryu/tests/packet_data/pcap/zebra_v3.pcap | Bin 0 -> 1250 bytes
 ryu/tests/unit/packet/test_zebra.py      |  66 +++++++++++++++++++++++++++++++
 3 files changed, 66 insertions(+)
 create mode 100644 ryu/tests/packet_data/pcap/zebra_v2.pcap
 create mode 100644 ryu/tests/packet_data/pcap/zebra_v3.pcap
 create mode 100644 ryu/tests/unit/packet/test_zebra.py

diff --git a/ryu/tests/packet_data/pcap/zebra_v2.pcap 
b/ryu/tests/packet_data/pcap/zebra_v2.pcap
new file mode 100644
index 
0000000000000000000000000000000000000000..b5ca677b3e99cc9310f72770cbf7410be6456447
GIT binary patch
literal 1236
zcmai!&ubG=5Xa}e)ckn<Xq8k`PvR*GYAs$&i`}-Q##*b$B0Y%Up+#dvC{_FcHH)64
zCokef>`f3n_~YV_MDU=0fEPi%iT17{B3ZvP*|&XJiVn=?z1huYzVl{w-@kdhq^XNm
ztcw&jf1U@^z1IvK!kXQ+ER~4{8=gmAdg1DIBE{aUnqp;nVxSb<pRE`4!`2=IRn}0?
z_iph_sA)@%!Bv1OAhNqA;8J5`Rq*~8ygLC-1Dt2>EpVp*WOq%to_~(H-zKbJQ*2h5
z3DLtMcwd6M4&2S!Ai9m|_x`PVOjKXC^yoN-kzr2gtEpDZeG2Xk$Ypm;RA2OKqB?K6
zk?J|9E(`Z;LiGq#tC{&T{Vpq7Yi=!`?-^?c)_f#l7fT=aX=wWwmUPstrJHz`-8Gh^
zF8SwK($`H1Nl&b#uo_G1L+AUb7m`xoXwt7AT<I_164I_XXj=7ll4CxFElBX%Tjy$v
z+UvyZGWEZr4jz6RXG>9MHr(?pDE=MfBdlGB_wGVP*`l|CckUtCQWa@Fo~-=U3Gy^$
zO&G4!uL!XYQ}vE5Hj^)c>1U5N&?K)DH)Tu?eEQ8jIrYl+q**h?%;Jt;w?FGUGA092
zPd1Lu%iCyBV>cS1n7s`432@n66L#h2U1pEFBUoc@W^tz$_K?G7e%`W~B?qRDAj=1g
z<Vi%>U6U+Rjd9Mha5}D_{XHp{f~6nG^0GA=X9;AgwjxU=ms?M&kjJeQ7xRv}e*rpc
B-0J`U

literal 0
HcmV?d00001

diff --git a/ryu/tests/packet_data/pcap/zebra_v3.pcap 
b/ryu/tests/packet_data/pcap/zebra_v3.pcap
new file mode 100644
index 
0000000000000000000000000000000000000000..f2e01a91d2dd87ca915a87894e03ea4ab12de003
GIT binary patch
literal 1250
zcmaKsKWI}?6voeeY5HECwFHSa;vZ_KZcQCRg^Fp7w$<9k5~?8D$+omr6Y5f^7~Ued
zWzOWFR@|Iwnn4gmbP*J%PA={ajxT=a-1q15T0C$r_uf2y-*?YB<j2Q%FD&YzIC@Co
zFmlYheQVpM>)3Oe;m{SLi}ke<m3qI<Jtb0{yJdIy+pn2ov(@$+dF!n|ic96Vlp4D$
zndzoL8OSjDC(ze$;xt3h<Ms7J(U&50A%S)Ton!L3CpJ}p<TOLblio`vxBElW?(lAz
zsW3hzri%%3zmQK@A9l9B3^M;J`2TVKK%CEp{GcdP&DLI@@DF#cn7jq@b6DmyL!57W
zubBM)dq~#K_xj*`UdXkC^J#Ie?mu3I=7F%%a;37D^-t-2B2ImawRfRPe`cS_AXJY#
zl*LqVn!(PL<-HbX(VGKj)yUc3$k_@8VTA_784rU+QrJAI+ociX+VvY+s8Xe_4<99c
zG}cM|zKuu5UA$Gn`)Ee)*m!LIto|<cp~&L8I&vTTP~_?_qg6GcZLlezbA_5s3pjI{
zA)PDNYcdlPVdsLGm~XZ^L+D(`9}DYqVNvRnm6x4Dc?MA!#R{J`ZCV7H(+p9V_I6mI
zoemXr2RcLOz>>_yxTye@oG6?L1O&(`zoBvmCr&d&<%ai0`rJ*Z6eE?1gv!YSDvEnx
zEkkO5?g-t(fzu3;s?;~7WamSvpkzxZ84r8MFNabOZ&C^mIxSLmCUcZjK8OFE6j$yu
Glm7wJjoD5B

literal 0
HcmV?d00001

diff --git a/ryu/tests/unit/packet/test_zebra.py 
b/ryu/tests/unit/packet/test_zebra.py
new file mode 100644
index 0000000..19ff88d
--- /dev/null
+++ b/ryu/tests/unit/packet/test_zebra.py
@@ -0,0 +1,66 @@
+# Copyright (C) 2017 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed 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.
+
+from __future__ import print_function
+
+import os
+import sys
+import unittest
+
+from nose.tools import eq_
+from nose.tools import ok_
+import six
+
+from ryu.lib import pcaplib
+from ryu.lib.packet import packet
+from ryu.lib.packet import zebra
+from ryu.utils import binary_str
+
+
+PCAP_DATA_DIR = os.path.join(
+    os.path.dirname(sys.modules[__name__].__file__),
+    '../../packet_data/pcap/')
+
+
+class Test_zebra(unittest.TestCase):
+    """
+    Test case for ryu.lib.packet.zebra.
+    """
+
+    def test_pcap(self):
+        files = [
+            'zebra_v2',
+            'zebra_v3',
+        ]
+
+        for f in files:
+            zebra_pcap_file = os.path.join(PCAP_DATA_DIR, f + '.pcap')
+            # print('*** testing %s' % zebra_pcap_file)
+
+            for _, buf in pcaplib.Reader(open(zebra_pcap_file, 'rb')):
+                # Checks if Zebra message can be parsed as expected.
+                pkt = packet.Packet(buf)
+                zebra_pkts = pkt.get_protocols(zebra.ZebraMessage)
+                for zebra_pkt in zebra_pkts:
+                    ok_(isinstance(zebra_pkt, zebra.ZebraMessage),
+                        'Failed to parse Zebra message: %s' % pkt)
+                ok_(not isinstance(pkt.protocols[-1],
+                                   (six.binary_type, bytearray)),
+                    'Some messages could not be parsed: %s' % pkt)
+
+                # Checks if Zebra message can be serialized as expected.
+                pkt.serialize()
+                eq_(buf, pkt.data,
+                    "b'%s' != b'%s'" % (binary_str(buf), binary_str(pkt.data)))
-- 
2.7.4


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to