A Discrete-Event Network Simulator
API
rocketfuel-topology-reader-test-suite.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2010 Hajime Tazaki
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  * Author: Hajime Tazaki (tazaki@sfc.wide.ad.jp)
19  */
20 
21 //-----------------------------------------------------------------------------
22 // Unit tests
23 //-----------------------------------------------------------------------------
24 
25 #include "ns3/test.h"
26 #include "ns3/rocketfuel-topology-reader.h"
27 #include "ns3/node-container.h"
28 #include "ns3/log.h"
29 #include "ns3/abort.h"
30 #include "ns3/attribute.h"
31 #include "ns3/object-factory.h"
32 #include "ns3/simulator.h"
33 
34 using namespace ns3;
53 {
54 public:
56 private:
57  virtual void DoRun (void);
58 };
59 
61  : TestCase ("RocketfuelTopologyReaderTest")
62 {
63 }
64 
65 
66 void
68 {
71 
72  std::string input ("./src/topology-read/examples/RocketFuel_toposample_1239_weights.txt");
73 
74  inFile = CreateObject<RocketfuelTopologyReader> ();
75  inFile->SetFileName (input);
76 
77  if (inFile != 0)
78  {
79  nodes = inFile->Read ();
80  }
81 
82  NS_TEST_ASSERT_MSG_NE (nodes.GetN (), 0, "Problems reading node information the topology file..");
83 
84  NS_TEST_ASSERT_MSG_NE (inFile->LinksSize (), 0, "Problems reading the topology file.");
85 
86  NS_TEST_EXPECT_MSG_EQ (nodes.GetN (),315, "noes");
87  NS_TEST_EXPECT_MSG_EQ (inFile->LinksSize (),972, "links");
88  Simulator::Destroy ();
89 }
90 
98 {
99 public:
101 private:
102 };
103 
105  : TestSuite ("rocketfuel-topology-reader", UNIT)
106 {
107  AddTestCase (new RocketfuelTopologyReaderTest (), TestCase::QUICK);
108 }
109 
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
A suite of tests to run.
Definition: test.h:1343
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Definition: test.h:283
encapsulates test code
Definition: test.h:1153
static RocketfuelTopologyReaderTestSuite g_rocketfuelTopologyReaderTestSuite
Static variable for test initialization.
nodes
Definition: first.py:32
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
Definition: test.cc:299
void SetFileName(const std::string &fileName)
Sets the input file name.
int LinksSize(void) const
Returns the number of links in this block.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
virtual NodeContainer Read(void)
Main topology reading function.
#define NS_TEST_ASSERT_MSG_NE(actual, limit, msg)
Test that an actual and expected (limit) value are not equal and report and abort if not...
Definition: test.h:622
virtual void DoRun(void)
Implementation to actually run this TestCase.