4 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
5 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
6 // Stefan Bund <stefan.bund@fokus.fraunhofer.de>
8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU General Public License for more details.
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the
20 // Free Software Foundation, Inc.,
21 // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 //#include "UDPPacket.test.hh"
26 //#include "UDPPacket.test.ih"
29 #include "UDPPacket.hh"
30 #include "IpV4Packet.hh"
32 #include "../../Utils/auto_unit_test.hh"
33 #include <boost/test/test_tools.hpp>
36 ///////////////////////////////cc.p////////////////////////////////////////
38 BOOST_AUTO_UNIT_TEST(udpPacket_packet)
41 unsigned char data[] = { 0x01, 0x02, 0x03, 0x04,
42 0x05, 0x06, 0x07, 0x08
45 senf::UDPPacket p (senf::UDPPacket::create(data));
47 BOOST_CHECK_EQUAL( p->source(), 0x0102 );
48 BOOST_CHECK_EQUAL( p->destination(), 0x0304 );
49 BOOST_CHECK_EQUAL( p->length(), 0x0506 );
50 BOOST_CHECK_EQUAL( p->checksum(), 0x0708 );
53 BOOST_AUTO_UNIT_TEST(udpPacket_create)
55 unsigned char data[] = { 0x45, 0x00, 0x00, 0x26, 0x00, 0x00, 0x40, 0x00,
56 0x40, 0x11, 0x3c, 0xc5, 0x7f, 0x00, 0x00, 0x01,
57 0x7f, 0x00, 0x00, 0x01, 0x5b, 0xa0, 0x30, 0x39,
58 0x00, 0x12, 0xfa, 0x6e, 0x54, 0x45, 0x53, 0x54,
59 0x2d, 0x57, 0x52, 0x49, 0x54, 0x45 };
61 senf::IpV4Packet ip (senf::IpV4Packet::create());
62 ip->source() = senf::INet4Address::Loopback;
63 ip->destination() = senf::INet4Address::Loopback;
67 senf::UDPPacket udp (senf::UDPPacket::createAfter(ip));
68 udp->source() = 23456;
69 udp->destination() = 12345;
71 senf::DataPacket::createAfter(udp,std::string("TEST-WRITE"));
73 // validates, since the checksum is 0 and thus ignored !
74 BOOST_CHECK( udp->validateChecksum() );
77 BOOST_CHECK_EQUAL_COLLECTIONS( data, data+sizeof(data),
78 ip.data().begin(), ip.data().end() );
79 BOOST_CHECK( udp->validateChecksum() );
83 ///////////////////////////////cc.e////////////////////////////////////////
90 // c-file-style: "senf"
91 // indent-tabs-mode: nil
92 // ispell-local-dictionary: "american"
93 // compile-command: "scons -u test"