Fixed problems due to missing NSC.
authorMitch Watrous <watrous@u.washington.edu>
Fri, 08 Oct 2010 10:01:00 -0700
changeset 6619 c6e03f378655
parent 6618 9ee672f7499d
child 6620 6ddd35f37248
Fixed problems due to missing NSC.
src/internet-stack/wscript
src/test/ns3tcp/wscript
test.py
--- a/src/internet-stack/wscript	Fri Oct 08 09:43:42 2010 -0700
+++ b/src/internet-stack/wscript	Fri Oct 08 10:01:00 2010 -0700
@@ -59,13 +59,14 @@
         arch = None
     ok = False
     if arch in ('x86_64', 'i686', 'i586', 'i486', 'i386'):
-        conf.env['NSC_ENABLED'] = 'yes'
+        conf.env['NSC_ENABLED'] = True
         conf.env.append_value('CXXDEFINES', 'NETWORK_SIMULATION_CRADLE')
         conf.check(mandatory=True, lib='dl', define_name='HAVE_DL', uselib='DL')
         ok = True
     conf.check_message('NSC supported architecture', arch, ok)
     
     if not ok:
+        conf.env['NSC_ENABLED'] = False
         conf.report_optional_feature("nsc", "Network Simulation Cradle", False,
                                      "architecture %r not supported" % arch)
         return
@@ -73,6 +74,7 @@
     lib_to_check = 'liblinux2.6.26.so'
 
     if not os.path.exists(os.path.join(conf.env['WITH_NSC'], lib_to_check)):
+        conf.env['NSC_ENABLED'] = False
         conf.report_optional_feature("nsc", "Network Simulation Cradle", False,
             "NSC library %s is missing: NSC has not been built?" % lib_to_check)
         return
--- a/src/test/ns3tcp/wscript	Fri Oct 08 09:43:42 2010 -0700
+++ b/src/test/ns3tcp/wscript	Fri Oct 08 10:01:00 2010 -0700
@@ -12,9 +12,9 @@
         ]
     ns3tcp.source = [
         'ns3tcp-socket-writer.cc',
+        'ns3tcp-socket-test-suite.cc',
         'ns3tcp-loss-test-suite.cc',
         ]
     if bld.env['NSC_ENABLED']:
         ns3tcp.source.append ('ns3tcp-interop-test-suite.cc')
         ns3tcp.source.append ('ns3tcp-cwnd-test-suite.cc')
-        ns3tcp.source.append ('ns3tcp-socket-test-suite.cc')
--- a/test.py	Fri Oct 08 09:43:42 2010 -0700
+++ b/test.py	Fri Oct 08 10:01:00 2010 -0700
@@ -42,13 +42,13 @@
 interesting_config_items = [
     "NS3_BUILDDIR",
     "NS3_MODULE_PATH",
-    "ENABLE_NSC",
+    "NSC_ENABLED",
     "ENABLE_REAL_TIME",
     "ENABLE_EXAMPLES",
     "ENABLE_PYTHON_BINDINGS",
 ]
 
-ENABLE_NSC = False
+NSC_ENABLED = False
 ENABLE_REAL_TIME = False
 ENABLE_EXAMPLES = True
 
@@ -68,6 +68,16 @@
     "ns3-tcp-interoperability",
 ]
 
+# 
+# There are some special cases for test suites that fail when NSC is
+# missing.
+#
+core_nsc_missing_skip_tests = [
+    "ns3-tcp-cwnd",
+    "nsc-tcp-loss",
+    "ns3-tcp-interoperability",
+]
+
 #
 # A list of examples to run as smoke tests just to ensure that they remain 
 # buildable and runnable over time.  Also a condition under which to run
@@ -128,8 +138,8 @@
 
     ("tcp/star", "True", "True"),
     ("tcp/tcp-large-transfer", "True", "True"),
-    ("tcp/tcp-nsc-lfn", "ENABLE_NSC == True", "True"),
-    ("tcp/tcp-nsc-zoo", "ENABLE_NSC == True", "True"),
+    ("tcp/tcp-nsc-lfn", "NSC_ENABLED == True", "False"),
+    ("tcp/tcp-nsc-zoo", "NSC_ENABLED == True", "False"),
     ("tcp/tcp-star-server", "True", "True"),
 
     ("topology-read/topology-read --input=../../examples/topology-read/Inet_small_toposample.txt", "True", "True"),
@@ -1210,6 +1220,10 @@
             if options.valgrind and test in core_valgrind_skip_tests:
                 job.set_is_skip(True)
 
+            # Skip tests that will fail if NSC is missing.
+            if not NSC_ENABLED and test in core_nsc_missing_skip_tests:
+                job.set_is_skip(True)
+
             if options.verbose:
                 print "Queue %s" % test
 
@@ -1227,10 +1241,10 @@
     # on NSC being configured by waf, that example should have a condition
     # that evaluates to true if NSC is enabled.  For example,
     #
-    #      ("tcp-nsc-zoo", "ENABLE_NSC == True"),
+    #      ("tcp-nsc-zoo", "NSC_ENABLED == True"),
     #
     # In this case, the example "tcp-nsc-zoo" will only be run if we find the
-    # waf configuration variable "ENABLE_NSC" to be True.
+    # waf configuration variable "NSC_ENABLED" to be True.
     #
     # We don't care at all how the trace files come out, so we just write them 
     # to a single temporary directory.
@@ -1650,7 +1664,7 @@
     global options
     options = parser.parse_args()[0]
     signal.signal(signal.SIGINT, sigint_hook)
-    
+
     return run_tests()
 
 if __name__ == '__main__':