install-apps: script to install NDN applications required for testing
test-ndntlvping: sample test case for testing ndn-tlv-ping

Change-Id: Ib54bd606f6854672ed890d3971ff5827197435e8
refs: #1220
diff --git a/run_tests.py b/run_tests.py
new file mode 100755
index 0000000..a71fd3b
--- /dev/null
+++ b/run_tests.py
@@ -0,0 +1,62 @@
+#!/usr/bin/python2
+import os
+import sys
+import glob
+import inspect
+import unittest
+from sets import Set
+
+def usage(testCases):
+    print "\nUSAGE:"
+    print "  ./run_tests.py [OPTIONS]\n"
+    print "  Run a subset of NFD integration test cases"
+    print "  The test case(s) to be executed should be provided as command line option(s)"
+    print "\nOPTIONS:"
+    for testCase in testCases:
+        print "  " + testCase
+    print "  test_all           - run all the above tests"
+    print "  help               - print this message and exit\n"
+
+
+def main():
+    cmd_subfolder = os.path.realpath(
+        os.path.abspath(os.path.join(os.path.split(
+            inspect.getfile(inspect.currentframe()))[0], "library_helpers")))
+    if cmd_subfolder not in sys.path:
+        sys.path.insert(0, cmd_subfolder)
+    validOptions = [ "test_all",
+                     "help" ]
+    testCases = glob.glob('test_*')
+    validOptions.extend(testCases)
+
+    if len(sys.argv) > 1:
+        actionList = Set(sys.argv[1:])
+        optionStatus = 0
+        for action in actionList:
+            if action not in validOptions:
+                print "Invalid option provided - " + action
+                optionStatus = -1
+                break
+        if optionStatus == 0 and "help" not in actionList:
+            if "test_all" in actionList:
+                actionList.remove("test_all")
+                actionList = Set(testCases)
+            suiteList = []
+            for action in actionList:
+                cmd_subfolder = os.path.realpath(
+                    os.path.abspath(os.path.join(os.path.split(
+                        inspect.getfile(inspect.currentframe()))[0], action)))
+                if cmd_subfolder not in sys.path:
+                    sys.path.insert(0, cmd_subfolder)
+                suiteList.append(
+                    unittest.defaultTestLoader.loadTestsFromName(action + "." + action))
+            mainSuite = unittest.TestSuite(suiteList)
+            unittest.TextTestRunner().run(mainSuite)
+        else:
+            usage(testCases)
+    else:
+        usage(testCases)
+
+
+if __name__ == "__main__":
+    main()