diff --git a/examples/simple-alternate-routing.cc b/examples/simple-alternate-routing.cc index c13bb3e89..acbd45270 100644 --- a/examples/simple-alternate-routing.cc +++ b/examples/simple-alternate-routing.cc @@ -54,32 +54,12 @@ main (int argc, char *argv[]) #if 0 LogComponentEnable("GlobalRouteManager", LOG_LOGIC); LogComponentEnable("GlobalRouter", LOG_LOGIC); - LogComponentEnable("Object", LOG_LEVEL_ALL); - LogComponentEnable("Queue", LOG_LEVEL_ALL); - LogComponentEnable("DropTailQueue", LOG_LEVEL_ALL); - LogComponentEnable("Channel", LOG_LEVEL_ALL); - LogComponentEnable("CsmaChannel", LOG_LEVEL_ALL); - LogComponentEnable("NetDevice", LOG_LEVEL_ALL); - LogComponentEnable("CsmaNetDevice", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL); - LogComponentEnable("PacketSocket", LOG_LEVEL_ALL); - LogComponentEnable("Socket", LOG_LEVEL_ALL); - LogComponentEnable("UdpSocket", LOG_LEVEL_ALL); - LogComponentEnable("UdpL4Protocol", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4StaticRouting", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4Interface", LOG_LEVEL_ALL); - LogComponentEnable("ArpIpv4Interface", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4LoopbackInterface", LOG_LEVEL_ALL); - LogComponentEnable("OnOffApplication", LOG_LEVEL_ALL); - LogComponentEnable("PacketSinkApplication", LOG_LEVEL_ALL); - LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_ALL); - LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_ALL); #endif - // Set up some default values for the simulation. Use the - // DefaultValue::Bind () technique to tell the system what subclass of - // Queue to use, and what the queue limit is + // + // Make the random number generators generate reproducible results. + // + RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8); Config::SetDefault ("ns3::OnOffApplication::PacketSize", Uinteger (210)); Config::SetDefault ("ns3::OnOffApplication::DataRate", DataRate ("300b/s")); diff --git a/examples/simple-error-model.cc b/examples/simple-error-model.cc index acea35e77..381136353 100644 --- a/examples/simple-error-model.cc +++ b/examples/simple-error-model.cc @@ -58,6 +58,11 @@ main (int argc, char *argv[]) LogComponentEnable ("SimplePointToPointExample", LOG_LEVEL_INFO); #endif + // + // Make the random number generators generate reproducible results. + // + RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8); + // Set a few parameters Config::SetDefault ("ns3::RateErrorModel::ErrorRate", Double (0.01)); Config::SetDefault ("ns3::RateErrorModel::ErrorUnit", String ("EU_PKT")); diff --git a/examples/simple-global-routing.cc b/examples/simple-global-routing.cc index 210492eb0..f6468f3bd 100644 --- a/examples/simple-global-routing.cc +++ b/examples/simple-global-routing.cc @@ -58,31 +58,14 @@ main (int argc, char *argv[]) // for selected modules; the below lines suggest how to do this #if 0 LogComponentEnable ("SimpleGlobalRoutingExample", LOG_LEVEL_INFO); - - LogComponentEnable("Object", LOG_LEVEL_ALL); - LogComponentEnable("Queue", LOG_LEVEL_ALL); - LogComponentEnable("DropTailQueue", LOG_LEVEL_ALL); - LogComponentEnable("Channel", LOG_LEVEL_ALL); - LogComponentEnable("CsmaChannel", LOG_LEVEL_ALL); - LogComponentEnable("NetDevice", LOG_LEVEL_ALL); - LogComponentEnable("CsmaNetDevice", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL); - LogComponentEnable("PacketSocket", LOG_LEVEL_ALL); - LogComponentEnable("Socket", LOG_LEVEL_ALL); - LogComponentEnable("UdpSocket", LOG_LEVEL_ALL); - LogComponentEnable("UdpL4Protocol", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4StaticRouting", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4Interface", LOG_LEVEL_ALL); - LogComponentEnable("ArpIpv4Interface", LOG_LEVEL_ALL); - LogComponentEnable("Ipv4LoopbackInterface", LOG_LEVEL_ALL); - LogComponentEnable("OnOffApplication", LOG_LEVEL_ALL); - LogComponentEnable("PacketSinkApplication", LOG_LEVEL_ALL); - LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_ALL); - LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_ALL); #endif - // Set up some default values for the simulation. Use the + // + // Make the random number generators generate reproducible results. + // + RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8); + + // Set up some default values for the simulation. Use the Config::SetDefault ("ns3::OnOffApplication::PacketSize", Uinteger (210)); Config::SetDefault ("ns3::OnOffApplication::DataRate", DataRate ("448kb/s")); diff --git a/regression/regression.py b/regression/regression.py index 9932f0513..b339a0300 100644 --- a/regression/regression.py +++ b/regression/regression.py @@ -48,6 +48,8 @@ def main(tests = None, testdir = None): userName = "craigdo/" repoName = "ns-3-ref-traces/" + print "Synchronizing reference traces." + if not os.path.exists(repoName): cloneCmd = "hg clone http://code.nsnam.org/" + userName + repoName + " >& /dev/null" os.system(cloneCmd) @@ -57,6 +59,8 @@ def main(tests = None, testdir = None): os.system(pullCmd) os.chdir("..") + print "Done." + bad = [] if not testdir: diff --git a/regression/tests/test-simple-error-model.py b/regression/tests/test-simple-error-model.py new file mode 100644 index 000000000..9b6b62ef0 --- /dev/null +++ b/regression/tests/test-simple-error-model.py @@ -0,0 +1,41 @@ +#! /usr/bin/env python + +"""Generic trace-comparison-type regression test.""" + +import os +import shutil + +def run(verbose, generate): + """Execute a test.""" + + testName = "simple-error-model" + repoName = "ns-3-ref-traces/" + refDirName = testName + ".ref" + + if not os.path.exists(repoName): + print"No reference trace repository" + return 1 + + if generate: + if not os.path.exists(repoName + refDirName): + print "creating new " + repoName + refDirName + os.mkdir(repoName + refDirName) + + os.system("./waf --cwd regression/" + repoName + refDirName + + " --run " + testName + " >& /dev/null") + + print "Remember to commit " + repoName + refDirName + return 0 + else: + if not os.path.exists(repoName + refDirName): + print "Cannot locate reference traces" + return 1 + + shutil.rmtree("traces"); + os.mkdir("traces") + + os.system("./waf --cwd regression/traces --run " + + testName + " >& /dev/null") + + return os.system("diff -q traces " + repoName + refDirName + + " >& /dev/null") diff --git a/regression/tests/test-simple-global-routing.py b/regression/tests/test-simple-global-routing.py new file mode 100644 index 000000000..d47207866 --- /dev/null +++ b/regression/tests/test-simple-global-routing.py @@ -0,0 +1,41 @@ +#! /usr/bin/env python + +"""Generic trace-comparison-type regression test.""" + +import os +import shutil + +def run(verbose, generate): + """Execute a test.""" + + testName = "simple-global-routing" + repoName = "ns-3-ref-traces/" + refDirName = testName + ".ref" + + if not os.path.exists(repoName): + print"No reference trace repository" + return 1 + + if generate: + if not os.path.exists(repoName + refDirName): + print "creating new " + repoName + refDirName + os.mkdir(repoName + refDirName) + + os.system("./waf --cwd regression/" + repoName + refDirName + + " --run " + testName + " >& /dev/null") + + print "Remember to commit " + repoName + refDirName + return 0 + else: + if not os.path.exists(repoName + refDirName): + print "Cannot locate reference traces" + return 1 + + shutil.rmtree("traces"); + os.mkdir("traces") + + os.system("./waf --cwd regression/traces --run " + + testName + " >& /dev/null") + + return os.system("diff -q traces " + repoName + refDirName + + " >& /dev/null")