Files
kumomta/assets/run-lua-test
T

45 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
# This is a little helper script that is used to run unit
# tests that may be defined in .lua files.
# The "protocol" is that the module defines a mod:test() method
# that will be called to perform regression tests
CARGO_TARGET_DIR=${CARGO_TARGET_DIR:-${PWD}/target}
for candidate in "${CARGO_TARGET_DIR}/debug/kumod" "${CARGO_TARGET_DIR}/release/kumod" /opt/kumomta/sbin/kumod ; do
if test -x "${candidate}" ; then
KUMOD="${candidate}"
break;
fi
done
if ! test -x "${KUMOD}" ; then
echo "Couldn't find kumod"
exit 1
fi
script=$(mktemp)
trap "rm -f -- '$script'" EXIT
cat >${script} <<-EOT
local kumo = require 'kumo'
package.path = 'assets/?.lua;' .. package.path
kumo.on('main', function()
local function test_module(name)
local mod = require(name)
mod:test()
end
test_module 'policy-extras.listener_domains'
test_module 'policy-extras.queue'
test_module 'policy-extras.sources'
test_module 'policy-extras.typing'
dofile "crates/mod-memoize/test.lua"
end)
EOT
${KUMOD} --user `id -un` --policy $script --script