A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
tc-regression-test.cc
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2009 IITP RAS
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Authors: Pavel Boyko <boyko@iitp.ru>
19
*/
20
21
#include "
tc-regression-test.h
"
22
#include "ns3/simulator.h"
23
#include "ns3/random-variable-stream.h"
24
#include "ns3/rng-seed-manager.h"
25
#include "ns3/boolean.h"
26
#include "ns3/double.h"
27
#include "ns3/uinteger.h"
28
#include "ns3/string.h"
29
#include "ns3/pcap-test.h"
30
#include "ns3/pcap-file.h"
31
#include "ns3/olsr-helper.h"
32
#include "ns3/internet-stack-helper.h"
33
#include "ns3/point-to-point-helper.h"
34
#include "ns3/ipv4-address-helper.h"
35
#include "ns3/abort.h"
36
#include "ns3/yans-wifi-helper.h"
37
#include "ns3/mobility-helper.h"
38
#include "ns3/nqos-wifi-mac-helper.h"
39
40
namespace
ns3
41
{
42
namespace
olsr
43
{
44
45
const
char
*
const
TcRegressionTest::PREFIX
=
"olsr-tc-regression-test"
;
46
47
TcRegressionTest::TcRegressionTest
() :
48
TestCase
(
"Test OLSR Topology Control message generation"
),
49
m_time (
Seconds
(20)),
50
m_step (120)
51
{
52
}
53
54
TcRegressionTest::~TcRegressionTest
()
55
{
56
}
57
58
void
59
TcRegressionTest::DoRun
()
60
{
61
RngSeedManager::SetSeed
(12345);
62
RngSeedManager::SetRun
(7);
63
CreateNodes
();
64
65
Simulator::Stop
(
m_time
);
66
Simulator::Run
();
67
Simulator::Destroy
();
68
69
CheckResults
();
70
}
71
72
void
73
TcRegressionTest::CreateNodes
()
74
{
75
// create 3 nodes
76
NodeContainer
c;
77
c.
Create
(3);
78
79
// place nodes in the chain
80
MobilityHelper
mobility;
81
mobility.
SetPositionAllocator
(
"ns3::GridPositionAllocator"
,
82
"MinX"
,
DoubleValue
(0.0),
83
"MinY"
,
DoubleValue
(0.0),
84
"DeltaX"
,
DoubleValue
(
m_step
),
85
"DeltaY"
,
DoubleValue
(0),
86
"GridWidth"
,
UintegerValue
(3),
87
"LayoutType"
,
StringValue
(
"RowFirst"
));
88
mobility.
SetMobilityModel
(
"ns3::ConstantPositionMobilityModel"
);
89
mobility.
Install
(c);
90
91
// install TCP/IP & OLSR
92
OlsrHelper
olsr;
93
InternetStackHelper
internet;
94
internet.
SetRoutingHelper
(olsr);
95
internet.
Install
(c);
96
int64_t streamsUsed = olsr.
AssignStreams
(c, 0);
97
NS_TEST_EXPECT_MSG_EQ
(streamsUsed, 3,
"Should have assigned 2 streams"
);
98
99
// create wifi channel & devices
100
NqosWifiMacHelper
wifiMac =
NqosWifiMacHelper::Default
();
101
wifiMac.
SetType
(
"ns3::AdhocWifiMac"
);
102
YansWifiPhyHelper
wifiPhy =
YansWifiPhyHelper::Default
();
103
YansWifiChannelHelper
wifiChannel =
YansWifiChannelHelper::Default
();
104
wifiPhy.
SetChannel
(wifiChannel.
Create
());
105
// This test suite output was originally based on YansErrorRateModel
106
wifiPhy.
SetErrorRateModel
(
"ns3::YansErrorRateModel"
);
107
WifiHelper
wifi =
WifiHelper::Default
();
108
wifi.
SetStandard
(
WIFI_PHY_STANDARD_80211a
);
109
wifi.
SetRemoteStationManager
(
"ns3::ConstantRateWifiManager"
,
"DataMode"
,
StringValue
(
"OfdmRate6Mbps"
),
"RtsCtsThreshold"
,
StringValue
(
"2200"
));
110
NetDeviceContainer
nd = wifi.
Install
(wifiPhy, wifiMac, c);
111
112
// setup IP addresses
113
Ipv4AddressHelper
ipv4;
114
ipv4.
SetBase
(
"10.1.1.0"
,
"255.255.255.0"
);
115
ipv4.
Assign
(nd);
116
117
// setup PCAP traces
118
wifiPhy.
EnablePcapAll
(
CreateTempDirFilename
(
PREFIX
));
119
}
120
121
void
122
TcRegressionTest::CheckResults
()
123
{
124
for
(uint32_t i = 0; i < 3; ++i)
125
{
126
NS_PCAP_TEST_EXPECT_EQ
(
PREFIX
<<
"-"
<< i <<
"-1.pcap"
);
127
}
128
}
129
130
}
131
}
src
olsr
test
tc-regression-test.cc
Generated on Tue Oct 9 2012 16:45:45 for ns-3 by
1.8.1.2