I find them more flexible then shunit2 ones. Signed-off-by: Petr Štetiar <ynezz@true.cz>master
@ -1 +1,2 @@ | |||
ADD_SUBDIRECTORY(cram) | |||
ADD_SUBDIRECTORY(shunit2) |
@ -0,0 +1,21 @@ | |||
FIND_PACKAGE(PythonInterp 3 REQUIRED) | |||
FILE(GLOB test_cases "test_*.t") | |||
SET(PYTHON_VENV_DIR "${CMAKE_CURRENT_BINARY_DIR}/.venv") | |||
SET(PYTHON_VENV_PIP "${PYTHON_VENV_DIR}/bin/pip") | |||
SET(PYTHON_VENV_CRAM "${PYTHON_VENV_DIR}/bin/cram") | |||
ADD_CUSTOM_COMMAND( | |||
OUTPUT ${PYTHON_VENV_CRAM} | |||
COMMAND ${PYTHON_EXECUTABLE} -m venv ${PYTHON_VENV_DIR} | |||
COMMAND ${PYTHON_VENV_PIP} install cram | |||
) | |||
ADD_CUSTOM_TARGET(prepare-cram-venv ALL DEPENDS ${PYTHON_VENV_CRAM}) | |||
ADD_TEST( | |||
NAME cram | |||
COMMAND ${PYTHON_VENV_CRAM} ${test_cases} | |||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | |||
) | |||
SET_PROPERTY(TEST cram APPEND PROPERTY ENVIRONMENT "UCI_LUA=$<TARGET_FILE:uci_lua>") |
@ -0,0 +1,25 @@ | |||
config 'alias' 'a' | |||
option 'interface' 'lan' | |||
config 'alias' 'b' | |||
option 'interface' 'lan' | |||
config 'interface' 'lan' | |||
option 'proto' 'static' | |||
option 'ifname' 'eth0' | |||
option 'test' '123' | |||
option 'enabled' 'off' | |||
option 'ipaddr' '2.3.4.5' | |||
config 'interface' 'wan' | |||
option 'proto' 'dhcp' | |||
option 'ifname' 'eth1' | |||
option 'enabled' 'on' | |||
option 'aliases' 'c d' | |||
config 'alias' 'c' | |||
option 'interface' 'wan' | |||
config 'alias' 'd' | |||
option 'interface' 'wan' | |||
@ -0,0 +1,44 @@ | |||
local A = assert | |||
local c = uci.cursor(os.getenv("CONFIG_DIR")) | |||
c:foreach("network", "interface", function(s) | |||
print("---------------") | |||
for k, v in pairs(s) do | |||
print(k .. ': ' .. tostring(v)) | |||
end | |||
end) | |||
local t = c:get_all("network") | |||
A(t.wan.ifname == 'eth1') | |||
A(t.wan.proto == 'dhcp') | |||
A(c:get("network", "wan", "ifname") == "eth1") | |||
A(c:get("network", "wan", "proto") == "dhcp") | |||
A(t.lan.ifname == 'eth0') | |||
A(t.lan.enabled == 'off') | |||
A(c:get("network", "lan", "ifname") == "eth0") | |||
A(c:get("network", "lan", "enabled") == "off") | |||
A(c:set("network", "lan", "ifname", "eth5")) | |||
A(c:get("network", "lan", "ifname") == "eth5") | |||
A(c:revert("network")) | |||
A(c:get("network", "lan", "ifname") == "eth0") | |||
A(c:set("network", "lan", "ifname", "eth5")) | |||
A(c:get("network", "lan", "ifname") == "eth5") | |||
A(c:commit("network")) | |||
A(c:set("network", "lan", "ifname", "eth0")) | |||
A(c:revert("network")) | |||
A(c:commit("network")) | |||
A(c:get("network", "lan", "ifname") == "eth5") | |||
A(c:set("network", "lan", "dns", { | |||
"ns1.king.banik.cz", | |||
"ns2.openwrt.org", | |||
})) | |||
local t = c:get("network", "lan", "dns") | |||
A(#t == 2) | |||
A(t[1] == "ns1.king.banik.cz") | |||
A(t[2] == "ns2.openwrt.org") |
@ -0,0 +1,58 @@ | |||
set LUA_CPATH and ucilua for convenience: | |||
$ export LC_ALL=C | |||
$ [ -n "$UCI_LUA" ] && export LUA_CPATH="$(dirname "$UCI_LUA")/?.so" | |||
$ alias ucilua="valgrind --quiet --leak-check=full lua -luci" | |||
check available methods: | |||
$ ucilua -e 'table.foreach(uci,function(m) print(m) end)' | |||
add_history | |||
add_delta | |||
close | |||
set_confdir | |||
save | |||
cursor | |||
get_all | |||
foreach | |||
__gc | |||
delete | |||
set_savedir | |||
set | |||
revert | |||
get_savedir | |||
changes | |||
reorder | |||
get_confdir | |||
list_configs | |||
commit | |||
unload | |||
rename | |||
add | |||
load | |||
get | |||
run basic Lua tests: | |||
$ cp -R "$TESTDIR/config" . | |||
$ export CONFIG_DIR=$(pwd)/config | |||
$ ucilua $TESTDIR/lua/basic.lua | |||
--------------- | |||
enabled: off | |||
.anonymous: false | |||
ipaddr: 2.3.4.5 | |||
.index: 2 | |||
.name: lan | |||
test: 123 | |||
.type: interface | |||
ifname: eth0 | |||
proto: static | |||
--------------- | |||
.name: wan | |||
.type: interface | |||
.index: 3 | |||
enabled: on | |||
ifname: eth1 | |||
proto: dhcp | |||
.anonymous: false | |||
aliases: c d |