Skip to content

Commit

Permalink
[test] Added runtests to run all tests at once
Browse files Browse the repository at this point in the history
  • Loading branch information
devkapilbansal committed May 4, 2021
1 parent 50b0891 commit 10c662a
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 66 deletions.
18 changes: 8 additions & 10 deletions basic_functions.lua
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
local inspect = require('inspect')

basic_functions = {}
functions = {}
-- split function
function basic_functions.split(str, pat)
function functions.split(str, pat)
local t = {}
local fpat = "(.-)" .. pat
local last_end = 1
Expand All @@ -21,7 +19,7 @@ function basic_functions.split(str, pat)
return t
end

function basic_functions.has_value(tab, val)
function functions.has_value(tab, val)
for index, value in ipairs(tab) do
if value == val then
return true
Expand All @@ -30,24 +28,24 @@ function basic_functions.has_value(tab, val)
return false
end

function basic_functions.starts_with(str, start)
function functions.starts_with(str, start)
return str:sub(1, #start) == start
end

function basic_functions.is_table_empty(table_)
function functions.is_table_empty(table_)
return not table_ or next(table_) == nil
end

function basic_functions.array_concat(source, destination)
function functions.array_concat(source, destination)
table.foreach(source, function(key, value)
table.insert(destination, value)
end)
end

function basic_functions.dict_merge(source, destination)
function functions.dict_merge(source, destination)
table.foreach(source, function(key, value)
destination[key] = value
end)
end

return basic_functions
return functions
43 changes: 8 additions & 35 deletions netjson-monitoring.lua
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,13 @@
-- and return it as NetJSON Output
io = require('io')
ubus_lib = require('ubus')
neighbors_functions = require('neighbors_functions')
cjson = require('cjson')
nixio = require('nixio')
uci = require('uci')
uci_cursor = uci.cursor()

-- split function
function split(str, pat)
local t = {}
local fpat = "(.-)" .. pat
local last_end = 1
local s, e, cap = str:find(fpat, 1)
while s do
if s ~= 1 or cap ~= "" then
table.insert(t, cap)
end
last_end = e + 1
s, e, cap = str:find(fpat, last_end)
end
if last_end <= #str then
cap = str:sub(last_end)
table.insert(t, cap)
end
return t
end

local function has_value(tab, val)
for index, value in ipairs(tab) do
if value == val then
return true
end
end
return false
end
neighbors_functions = require('neighbors_functions')
basic_functions = require('basic_functions')

local function starts_with(str, start)
return str:sub(1, #start) == start
Expand Down Expand Up @@ -143,7 +116,7 @@ iwinfo_modes = {
system_info = ubus:call('system', 'info', {})
board = ubus:call('system', 'board', {})
loadavg_output = io.popen('cat /proc/loadavg'):read()
loadavg_output = split(loadavg_output, ' ')
loadavg_output = basic_functions.split(loadavg_output, ' ')
load_average = {tonumber(loadavg_output[1]), tonumber(loadavg_output[2]), tonumber(loadavg_output[3])}

function parse_disk_usage()
Expand Down Expand Up @@ -225,8 +198,8 @@ end
-- determine the interfaces to monitor
traffic_monitored = arg[1]
include_stats = {}
if traffic_monitored and traffic_monitored ~= '*' then
traffic_monitored = split(traffic_monitored, ' ')
if traffic_monitored then
traffic_monitored = basic_functions.split(traffic_monitored, ' ')
for i, name in pairs(traffic_monitored) do
include_stats[name] = true
end
Expand Down Expand Up @@ -388,7 +361,7 @@ function try.get_addresses(name)
proto = 'static'
else
ula = uci_cursor.get('network', 'globals', 'ula_prefix')
ula_prefix = split(ula, '::')[1]
ula_prefix = basic_functions.split(ula, '::')[1]
if starts_with(addr, ula_prefix) then
proto = 'static'
else
Expand All @@ -397,7 +370,7 @@ function try.get_addresses(name)
end
end
if family == 'ipv4' or family == 'ipv6' then
if not has_value(addresses_list, addr) then
if not basic_functions.has_value(addresses_list, addr) then
table.insert(addresses, {
address = addr,
mask = nixio_data[i].prefix,
Expand Down Expand Up @@ -501,7 +474,7 @@ for name, interface in pairs(network_status) do
netjson_interface.type = 'other'
end
end
if include_stats[name] or traffic_monitored == '*' then
if include_stats[name] then
if needs_inversion(netjson_interface) then
--- ensure wifi access point interfaces
--- show download and upload values from
Expand Down
5 changes: 5 additions & 0 deletions runtests
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
set -e
cd tests/
lua test_basic_functions.lua -v
lua test_netjson_monitoring.lua -v
30 changes: 16 additions & 14 deletions tests/test_basic_functions.lua
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
local lu = require('luaunit')
package.path = package.path .. ";../?.lua"

local basic_functions = require('basic_functions')
local luaunit = require('luaunit')

local basic_functions = require('../basic_functions')

function testSplitFunction()
-- When pattern is present
lu.assertEquals(basic_functions.split("OpenWISP","n"), {"Ope", "WISP"})
lu.assertEquals(basic_functions.split("OpenWISP","WISP"), {"Open"})
luaunit.assertEquals(basic_functions.split("OpenWISP","n"), {"Ope", "WISP"})
luaunit.assertEquals(basic_functions.split("OpenWISP","WISP"), {"Open"})

-- When pattern is not available
lu.assertEquals(basic_functions.split("OpenWISP","a"), {"OpenWISP"})
luaunit.assertEquals(basic_functions.split("OpenWISP","a"), {"OpenWISP"})
end

function testHasValue()
-- When value is present
lu.assertEquals(basic_functions.has_value({2,4,5},4), true)
lu.assertEquals(basic_functions.has_value({1,2,3,7,9},9), true)
luaunit.assertEquals(basic_functions.has_value({2,4,5},4), true)
luaunit.assertEquals(basic_functions.has_value({1,2,3,7,9},9), true)

-- When value is not present
lu.assertEquals(basic_functions.has_value({2,4,5},3), false)
lu.assertEquals(basic_functions.has_value({1,2,3,7,9},8), false)
-- When valuaunite is not present
luaunit.assertEquals(basic_functions.has_value({2,4,5},3), false)
luaunit.assertEquals(basic_functions.has_value({1,2,3,7,9},8), false)

end

function testRandom()
-- When value is present
-- lu.assertEquals(netjson_monitoring.)
function testStartsWith()
-- When valuaunite is present
-- luaunit.assertEquals(netjson_monitoring.)

end

os.exit( lu.LuaUnit.run() )
os.exit(luaunit.LuaUnit.run())
16 changes: 9 additions & 7 deletions tests/test_netjson_monitoring.lua
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
local lu = require('luaunit')
package.path = package.path .. ";../?.lua"

local luaunit = require('luaunit')

local neighbor = require('neighbors_functions')

local test_file_dir = 'tests/test_files/'
local test_file_dir = './test_files/'

io.popen = function(arg)
if arg == 'cat /proc/net/arp 2> /dev/null' then
Expand Down Expand Up @@ -32,13 +34,13 @@ sample_ip_neigh = {

function testArpTable()

lu.assertEquals(neighbor.parse_arp(), sample_parse_arp)
luaunit.assertEquals(neighbor.parse_arp(), sample_parse_arp)

lu.assertEquals(neighbor.get_ip_neigh_json(), sample_ip_neigh)
luaunit.assertEquals(neighbor.get_ip_neigh_json(), sample_ip_neigh)

lu.assertEquals(neighbor.get_ip_neigh(), sample_ip_neigh)
luaunit.assertEquals(neighbor.get_ip_neigh(), sample_ip_neigh)

lu.assertEquals(neighbor.get_neighbors(), sample_ip_neigh)
luaunit.assertEquals(neighbor.get_neighbors(), sample_ip_neigh)
end

os.exit( lu.LuaUnit.run() )
os.exit( luaunit.LuaUnit.run() )

0 comments on commit 10c662a

Please sign in to comment.