--- a/examples/wifi-ap.cc Thu Oct 01 11:53:19 2009 -0700
+++ b/examples/wifi-ap.cc Thu Oct 01 14:12:56 2009 -0700
@@ -32,53 +32,73 @@
using namespace ns3;
+static bool g_verbose = true;
+
void
DevTxTrace (std::string context, Ptr<const Packet> p)
{
- std::cout << " TX p: " << *p << std::endl;
+ if (g_verbose)
+ {
+ std::cout << " TX p: " << *p << std::endl;
+ }
}
void
DevRxTrace (std::string context, Ptr<const Packet> p)
{
- std::cout << " RX p: " << *p << std::endl;
+ if (g_verbose)
+ {
+ std::cout << " RX p: " << *p << std::endl;
+ }
}
void
PhyRxOkTrace (std::string context, Ptr<const Packet> packet, double snr, WifiMode mode, enum WifiPreamble preamble)
{
- std::cout << "PHYRXOK mode=" << mode << " snr=" << snr << " " << *packet << std::endl;
+ if (g_verbose)
+ {
+ std::cout << "PHYRXOK mode=" << mode << " snr=" << snr << " " << *packet << std::endl;
+ }
}
void
PhyRxErrorTrace (std::string context, Ptr<const Packet> packet, double snr)
{
- std::cout << "PHYRXERROR snr=" << snr << " " << *packet << std::endl;
+ if (g_verbose)
+ {
+ std::cout << "PHYRXERROR snr=" << snr << " " << *packet << std::endl;
+ }
}
void
PhyTxTrace (std::string context, Ptr<const Packet> packet, WifiMode mode, WifiPreamble preamble, uint8_t txPower)
{
- std::cout << "PHYTX mode=" << mode << " " << *packet << std::endl;
+ if (g_verbose)
+ {
+ std::cout << "PHYTX mode=" << mode << " " << *packet << std::endl;
+ }
}
void
PhyStateTrace (std::string context, Time start, Time duration, enum WifiPhy::State state)
{
- std::cout << " state=";
- switch (state) {
- case WifiPhy::SWITCHING:
- std::cout << "switchng";
- break;
- case WifiPhy::TX:
- std::cout << "tx ";
- break;
- case WifiPhy::SYNC:
- std::cout << "sync ";
- break;
- case WifiPhy::CCA_BUSY:
- std::cout << "cca-busy";
- break;
- case WifiPhy::IDLE:
- std::cout << "idle ";
- break;
- }
- std::cout << " start="<<start<<" duration="<<duration<<std::endl;
+ if (g_verbose)
+ {
+ std::cout << " state=";
+ switch (state) {
+ case WifiPhy::SWITCHING:
+ std::cout << "switchng";
+ break;
+ case WifiPhy::TX:
+ std::cout << "tx ";
+ break;
+ case WifiPhy::SYNC:
+ std::cout << "sync ";
+ break;
+ case WifiPhy::CCA_BUSY:
+ std::cout << "cca-busy";
+ break;
+ case WifiPhy::IDLE:
+ std::cout << "idle ";
+ break;
+ }
+ std::cout << " start="<<start<<" duration="<<duration<<std::endl;
+ }
}
static void
@@ -105,17 +125,20 @@
return;
}
SetPosition (node, pos);
- //std::cout << "x="<<pos.x << std::endl;
+
+ if (g_verbose)
+ {
+ //std::cout << "x="<<pos.x << std::endl;
+ }
Simulator::Schedule (Seconds (1.0), &AdvancePosition, node);
}
-
-
-
int main (int argc, char *argv[])
{
CommandLine cmd;
- cmd.Parse (argc, argv);
+ cmd.AddValue ("verbose", "Print trace information if true", g_verbose);
+
+ cmd.Parse (argc, argv);
Packet::EnablePrinting ();
--- a/test.py Thu Oct 01 11:53:19 2009 -0700
+++ b/test.py Thu Oct 01 14:12:56 2009 -0700
@@ -100,7 +100,7 @@
("udp-echo", "True"),
("virtual-net-device", "True"),
("wifi-adhoc", "False"), # takes forever to run
- ("wifi-ap", "True"),
+ ("wifi-ap --verbose=0", "True"), # don't let it spew
("wifi-wired-bridging", "True"),
]
@@ -509,8 +509,8 @@
if options.verbose:
print "Synchronously execute %s" % cmd
proc = subprocess.Popen(cmd, shell=True, cwd=directory, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- stdout_results = proc.communicate()[0]
- return (proc.returncode, stdout_results)
+ stdout_results, stderr_results = proc.communicate()
+ return (proc.returncode, stdout_results, stderr_results)
#
# This class defines a unit of testing work. It will typically refer to
@@ -641,18 +641,22 @@
# If we have an example, the shell command is all we need to
# know. It will be something like "examples/udp-echo"
#
- (job.returncode, standard_out) = run_job_synchronously(job.shell_command, job.cwd)
+ (job.returncode, standard_out, standard_err) = run_job_synchronously(job.shell_command, job.cwd)
else:
#
# If we're a test suite, we need to provide a little more info
# to the test runner, specifically the base directory and temp
# file name
#
- (job.returncode, standard_out) = run_job_synchronously(job.shell_command + " --basedir=%s --out=%s" %
- (job.basedir, job.tmp_file_name), job.cwd)
+ (job.returncode, standard_out, standard_err) = run_job_synchronously(job.shell_command +
+ " --basedir=%s --out=%s" % (job.basedir, job.tmp_file_name), job.cwd)
if options.verbose:
+ print "---------- beign standard out ----------"
print standard_out
+ print "---------- begin standard err ----------"
+ print standard_err
+ print "---------- end standard err ----------"
self.output_queue.put(job)
@@ -685,11 +689,11 @@
# handle them without doing all of the hard work.
#
if options.kinds:
- (rc, standard_out) = run_job_synchronously("utils/test-runner --kinds", os.getcwd())
+ (rc, standard_out, standard_err) = run_job_synchronously("utils/test-runner --kinds", os.getcwd())
print standard_out
if options.list:
- (rc, standard_out) = run_job_synchronously("utils/test-runner --list", os.getcwd())
+ (rc, standard_out, standard_err) = run_job_synchronously("utils/test-runner --list", os.getcwd())
print standard_out
if options.kinds or options.list:
@@ -755,9 +759,10 @@
suites = options.suite + "\n"
elif len(options.example) == 0:
if len(options.constrain):
- (rc, suites) = run_job_synchronously("utils/test-runner --list --constrain=%s" % options.constrain, os.getcwd())
+ (rc, suites, standard_err) = run_job_synchronously("utils/test-runner --list --constrain=%s" %
+ options.constrain, os.getcwd())
else:
- (rc, suites) = run_job_synchronously("utils/test-runner --list", os.getcwd())
+ (rc, suites, standard_err) = run_job_synchronously("utils/test-runner --list", os.getcwd())
else:
suites = ""
@@ -1055,9 +1060,9 @@
shutil.copyfile(xml_results_file, options.xml)
if passed_tests == total_tests:
- return 0
+ return 0 # success
else:
- return -1
+ return 1 # catchall for general errors
def main(argv):
random.seed()