Create a template module
authorMitch Watrous <watrous@u.washington.edu>
Wed, 04 May 2011 20:02:57 -0700
changeset 7134 40b3cffdda99
parent 7133 db7061624ae6
child 7135 05abc145c1c9
Create a template module
src/template/examples/wscript
src/template/test/examples-to-run.py
src/template/test/sample-test-suite.cc
src/template/wscript
src/test/sample-test-suite.cc
src/test/wscript
src/wscript
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/template/examples/wscript	Wed May 04 20:02:57 2011 -0700
@@ -0,0 +1,5 @@
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def build(bld):
+    if not bld.env['ENABLE_EXAMPLES']:
+        return;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/template/test/examples-to-run.py	Wed May 04 20:02:57 2011 -0700
@@ -0,0 +1,18 @@
+#! /usr/bin/env python
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+# A list of C++ examples to run in order to ensure that they remain
+# buildable and runnable over time.  Each tuple in the list contains
+#
+#     (example_name, do_run, do_valgrind_run).
+#
+# See test.py for more information.
+cpp_examples = []
+
+# A list of Python examples to run in order to ensure that they remain
+# runnable over time.  Each tuple in the list contains
+#
+#     (example_name, do_run).
+#
+# See test.py for more information.
+python_examples = []
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/template/test/sample-test-suite.cc	Wed May 04 20:02:57 2011 -0700
@@ -0,0 +1,63 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+
+// An essential include is test.h
+#include "ns3/test.h"
+
+// Do not put your test classes in namespace ns3.  You may find it useful
+// to use the using directive to access the ns3 namespace directly
+using namespace ns3;
+
+// This is an example TestCase.  
+class SampleTestCase1 : public TestCase
+{
+public:
+  SampleTestCase1 ();
+  virtual ~SampleTestCase1 ();
+
+private:
+  virtual void DoRun (void);
+};
+
+// Add some help text to this case to describe what it is intended to test
+SampleTestCase1::SampleTestCase1 ()
+  : TestCase ("Sample test case (does nothing)")
+{
+}
+
+// This destructor does nothing but we include it as a reminder that
+// the test case should clean up after itself
+SampleTestCase1::~SampleTestCase1 ()
+{
+}
+
+//
+// This method is the pure virtual method from class TestCase that every
+// TestCase must implement
+//
+void
+SampleTestCase1::DoRun (void)
+{
+  // A wide variety of test macros are available in src/core/test.h
+  NS_TEST_ASSERT_MSG_EQ (true, true, "true doesn't equal true for some reason");
+  // Use this one for floating point comparisons
+  NS_TEST_ASSERT_MSG_EQ_TOL (0.01, 0.01, 0.001, "Numbers are not equal within tolerance");
+}
+
+// The TestSuite class names the TestSuite, identifies what type of TestSuite,
+// and enables the TestCases to be run.  Typically, only the constructor for
+// this class must be defined
+//
+class SampleTestSuite : public TestSuite
+{
+public:
+  SampleTestSuite ();
+};
+
+SampleTestSuite::SampleTestSuite ()
+  : TestSuite ("sample", UNIT)
+{
+  AddTestCase (new SampleTestCase1);
+}
+
+// Do not forget to allocate an instance of this TestSuite
+static SampleTestSuite sampleTestSuite;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/template/wscript	Wed May 04 20:02:57 2011 -0700
@@ -0,0 +1,19 @@
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def build(bld):
+    module = bld.create_ns3_module('template', ['core'])
+    module.source = [
+        ]
+
+    test_library = bld.create_ns3_module_test_library('template')
+    test_library.source = [
+        'test/sample-test-suite.cc',
+        ]
+
+    headers = bld.new_task_gen('ns3header')
+    headers.module = 'template'
+    headers.source = [
+        ]
+
+    if (bld.env['ENABLE_EXAMPLES']):
+        bld.add_subdirs('examples')
--- a/src/test/sample-test-suite.cc	Wed May 04 15:11:58 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-
-// An essential include is test.h
-#include "ns3/test.h"
-
-// Do not put your test classes in namespace ns3.  You may find it useful
-// to use the using directive to access the ns3 namespace directly
-using namespace ns3;
-
-// This is an example TestCase.  
-class SampleTestCase1 : public TestCase
-{
-public:
-  SampleTestCase1 ();
-  virtual ~SampleTestCase1 ();
-
-private:
-  virtual void DoRun (void);
-};
-
-// Add some help text to this case to describe what it is intended to test
-SampleTestCase1::SampleTestCase1 ()
-  : TestCase ("Sample test case (does nothing)")
-{
-}
-
-// This destructor does nothing but we include it as a reminder that
-// the test case should clean up after itself
-SampleTestCase1::~SampleTestCase1 ()
-{
-}
-
-//
-// This method is the pure virtual method from class TestCase that every
-// TestCase must implement
-//
-void
-SampleTestCase1::DoRun (void)
-{
-  // A wide variety of test macros are available in src/core/test.h
-  NS_TEST_ASSERT_MSG_EQ (true, true, "true doesn't equal true for some reason");
-  // Use this one for floating point comparisons
-  NS_TEST_ASSERT_MSG_EQ_TOL (0.01, 0.01, 0.001, "Numbers are not equal within tolerance");
-}
-
-// The TestSuite class names the TestSuite, identifies what type of TestSuite,
-// and enables the TestCases to be run.  Typically, only the constructor for
-// this class must be defined
-//
-class SampleTestSuite : public TestSuite
-{
-public:
-  SampleTestSuite ();
-};
-
-SampleTestSuite::SampleTestSuite ()
-  : TestSuite ("sample", UNIT)
-{
-  AddTestCase (new SampleTestCase1);
-}
-
-// Do not forget to allocate an instance of this TestSuite
-static SampleTestSuite sampleTestSuite;
--- a/src/test/wscript	Wed May 04 15:11:58 2011 -0700
+++ b/src/test/wscript	Wed May 04 20:02:57 2011 -0700
@@ -12,7 +12,6 @@
     test_test.source = [
         'csma-system-test-suite.cc',
         'global-routing-test-suite.cc',
-        'sample-test-suite.cc',
         'static-routing-test-suite.cc',
         'error-model-test-suite.cc',
         'mobility-test-suite.cc',
--- a/src/wscript	Wed May 04 15:11:58 2011 -0700
+++ b/src/wscript	Wed May 04 20:02:57 2011 -0700
@@ -59,6 +59,7 @@
     'visualizer',
     'point-to-point-layout',
     'csma-layout',
+    'template',
     )
 
 def set_options(opt):