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
