Updates test.py entries for Click, fixes Click test case, and makes Ipv4ClickRouting::GetInterfaceId() do a sanity check.
--- a/src/click/model/ipv4-click-routing.cc Sun Mar 06 20:04:16 2011 +0000
+++ b/src/click/model/ipv4-click-routing.cc Sun Mar 06 21:07:02 2011 +0000
@@ -189,6 +189,15 @@
}
}
+ // This protects against a possible inconsistency of having
+ // more interfaces defined in the Click graph
+ // for a Click node than are defined for it in
+ // the simulation script
+ if (retval >= (int) m_ipv4->GetNInterfaces ())
+ {
+ return -1;
+ }
+
return retval;
}
--- a/src/click/test/ipv4-click-routing-test.cc Sun Mar 06 20:04:16 2011 +0000
+++ b/src/click/test/ipv4-click-routing-test.cc Sun Mar 06 21:07:02 2011 +0000
@@ -47,7 +47,7 @@
// Setup Click instance
Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> ();
Ptr<Ipv4ClickRouting> click = CreateObject<Ipv4ClickRouting> ();
- click->SetClickFile ("examples/click/nsclick-lan-single-interface.click");
+ click->SetClickFile ("src/click/examples/nsclick-lan-single-interface.click");
ipv4->SetRoutingProtocol (click);
}
@@ -200,7 +200,7 @@
NS_TEST_EXPECT_MSG_EQ (ret, 1, "eth0 is ready");
ret = simclick_sim_command (click->m_simNode, SIMCLICK_IF_READY, 2);
- NS_TEST_EXPECT_MSG_EQ (ret, -1, "eth1 does not exist, so return -1");
+ NS_TEST_EXPECT_MSG_EQ (ret, 0, "eth1 does not exist, so return 0");
delete [] buf;
ret = 1;