summaryrefslogtreecommitdiffstats
path: root/scripts/unittest.nse
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/unittest.nse')
-rw-r--r--scripts/unittest.nse44
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/unittest.nse b/scripts/unittest.nse
new file mode 100644
index 0000000..ee18abb
--- /dev/null
+++ b/scripts/unittest.nse
@@ -0,0 +1,44 @@
+local stdnse = require "stdnse"
+local unittest = require "unittest"
+
+description = [[
+Runs unit tests on all NSE libraries.
+]]
+
+---
+-- @args unittest.run Run tests. Causes <code>unittest.testing()</code> to
+-- return true.
+--
+-- @args unittest.tests Run tests from only these libraries (defaults to all)
+--
+-- @usage
+-- nmap --script unittest --script-args unittest.run
+--
+-- @output
+-- Pre-scan script results:
+-- | unittest:
+-- |_ All tests passed
+
+author = "Daniel Miller"
+
+license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
+
+categories = {"safe"}
+
+
+prerule = unittest.testing
+
+action = function()
+ local libs = stdnse.get_script_args("unittest.tests")
+ local result
+ if libs then
+ result = unittest.run_tests(libs)
+ else
+ result = unittest.run_tests()
+ end
+ if #result == 0 then
+ return "All tests passed"
+ else
+ return result
+ end
+end