#!/usr/bin/env python
#
# mtr -- a network diagnostic tool
# Copyright (C) 2016 Matt Kimball
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
'''Test probe customization parameters'''
import sys
import unittest
import mtrpacket
@unittest.skipIf(sys.platform == 'cygwin', 'No Cygwin test')
class TestParameters(mtrpacket.MtrPacketTest):
'Use parameter arguments to mtr-packet and examine the resulting packet'
def test_size(self):
'Test probes sent with an explicit packet size'
with mtrpacket.PacketListen('-4') as listen:
cmd = '20 send-probe ip-4 127.0.0.1 size 512'
self.write_command(cmd)
self.assertEqual(listen.attrib['size'], '512')
def test_pattern(self):
'Test probes are filled with the requested bit pattern'
with mtrpacket.PacketListen('-4') as listen:
cmd = '20 send-probe ip-4 127.0.0.1 bit-pattern 44'
self.write_command(cmd)
self.assertEqual(listen.attrib['bitpattern'], '44')
def test_tos(self):
'Test setting the TOS field'
with mtrpacket.PacketListen('-4') as listen:
cmd = '20 send-probe ip-4 127.0.0.1 tos 62'
self.write_command(cmd)
self.assertEqual(listen.attrib['tos'], '62')
@unittest.skipIf(sys.platform == 'cygwin', 'No Cygwin test')
class TestIPv6Parameters(mtrpacket.MtrPacketTest):
'Test packet parameter customization for IPv6'
@unittest.skipUnless(mtrpacket.HAVE_IPV6, 'No IPv6')
def test_param(self):
'Test a variety of packet parameters'
with mtrpacket.PacketListen('-6') as listen:
param = 'size 256 bit-pattern 51 tos 77'
cmd = '20 send-probe ip-6 ::1 ' + param
self.write_command(cmd)
self.assertEqual(listen.attrib['size'], '256')
self.assertEqual(listen.attrib['bitpattern'], '51')
if __name__ == '__main__':
mtrpacket.check_running_as_root()
unittest.main()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>