unittest NSE Script

2014-01-03T21:10:01
ID NMAP:UNITTEST.NSE
Type nmap
Reporter Daniel Miller
Modified 2015-11-05T20:41:05

Description

Runs unit tests on all NSE libraries.

Script Arguments

unittest.run

Run tests. Causes unittest.testing() to return true.

unittest.tests

Run tests from only these libraries (defaults to all)

Example Usage

nmap --script unittest --script-args unittest.run

Script Output

Pre-scan script results:
| unittest:
|_ All tests passed

Requires

  • stdnse
  • unittest

                                        
                                            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