Commit 94f971d1 authored by Pavel Vainerman's avatar Pavel Vainerman

(LogDB): добавил простые тесты

parent 97931dd2
...@@ -339,6 +339,7 @@ if test ${buildtests} = true; then ...@@ -339,6 +339,7 @@ if test ${buildtests} = true; then
AC_CONFIG_TESTDIR(extensions/UNetUDP/tests) AC_CONFIG_TESTDIR(extensions/UNetUDP/tests)
AC_CONFIG_TESTDIR(extensions/SharedMemory/tests) AC_CONFIG_TESTDIR(extensions/SharedMemory/tests)
AC_CONFIG_TESTDIR(extensions/IOControl/tests) AC_CONFIG_TESTDIR(extensions/IOControl/tests)
AC_CONFIG_TESTDIR(extensions/LogDB/tests)
TESTSUITE_DIR="\$(top_builddir)/testsuite" TESTSUITE_DIR="\$(top_builddir)/testsuite"
AC_SUBST(TESTSUITE_DIR) AC_SUBST(TESTSUITE_DIR)
...@@ -501,6 +502,7 @@ AC_CONFIG_FILES([Makefile ...@@ -501,6 +502,7 @@ AC_CONFIG_FILES([Makefile
extensions/tests/MBSlaveTest/Makefile extensions/tests/MBSlaveTest/Makefile
extensions/tests/MQPerfTest/Makefile extensions/tests/MQPerfTest/Makefile
extensions/LogDB/Makefile extensions/LogDB/Makefile
extensions/LogDB/tests/Makefile
testsuite/Makefile testsuite/Makefile
wrappers/Makefile wrappers/Makefile
wrappers/python/lib/Makefile wrappers/python/lib/Makefile
......
...@@ -383,11 +383,13 @@ void LogDB::help_print() ...@@ -383,11 +383,13 @@ void LogDB::help_print()
cout << "logservers: " << endl; cout << "logservers: " << endl;
cout << "--prefix-ls-check-connection-sec sec - Период проверки соединения с логсервером" << endl; cout << "--prefix-ls-check-connection-sec sec - Период проверки соединения с логсервером" << endl;
cout << "--prefix-ls-read-buffer-size num - Размер буфера для чтения сообщений от логсервера. Deault: 10001" << endl; cout << "--prefix-ls-read-buffer-size num - Размер буфера для чтения сообщений от логсервера. По умолчанию: 10001" << endl;
cout << "http: " << endl; cout << "http: " << endl;
cout << "--prefix-httpserver-max-queued num - Размер очереди запросов к http серверу. Default: 100" << endl; cout << "--prefix-httpserver-host ip - IP на котором слушает http сервер. По умолчанию: localhost" << endl;
cout << "--prefix-httpserver-max-threads num - Разрешённое количество потоков для http-сервера. Default: 3" << endl; cout << "--prefix-httpserver-port num - Порт на котором принимать запросы. По умолчанию: 8080" << endl;
cout << "--prefix-httpserver-max-queued num - Размер очереди запросов к http серверу. По умолчанию: 100" << endl;
cout << "--prefix-httpserver-max-threads num - Разрешённое количество потоков для http-сервера. По умолчанию: 3" << endl;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void LogDB::run( bool async ) void LogDB::run( bool async )
......
...@@ -165,6 +165,7 @@ namespace uniset ...@@ -165,6 +165,7 @@ namespace uniset
\todo web: генерировать html-страничку со списком подключения к логам с использованием готового шаблона \todo web: генерировать html-страничку со списком подключения к логам с использованием готового шаблона
\todo db: сделать в RESET API команду включения или отключения запись логов в БД, для управления "на ходу" \todo db: сделать в RESET API команду включения или отключения запись логов в БД, для управления "на ходу"
\todo Продумать и реализовать тесты \todo Продумать и реализовать тесты
\todo rest: Добавить функцию получения значений внутренних переменных и настроек (для отладки LogDB)
*/ */
class LogDB: class LogDB:
public EventLoopServer public EventLoopServer
......
if HAVE_TESTS
include $(top_builddir)/testsuite/testsuite-common.mk
check-local: atconfig package.m4 $(TESTSUITE)
$(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS)
clean-local:
rm -rf $(CLEANFILES)
rm -rf $(COVERAGE_REPORT_DIR)
include $(top_builddir)/include.mk
endif
<?xml version="1.0" encoding="utf-8"?>
<LogDB name="LogDB">
<logserver name="logserver1" ip="localhost" port="3333" cmd="" description="Лог сервер процесса управления N1"/>
</LogDB>
AT_SETUP([LogDB tests])
AT_CHECK([$abs_top_builddir/testsuite/at-test-launch.sh $abs_top_builddir/extensions/LogDB/tests tests.sh],[0],[ignore],[ignore])
AT_CLEANUP
#!/bin/sh
trap '' HUP INT QUIT PIPE TERM
RET=0
LOGSERVER_PID=
LOGDB_PID=
dbfile="logdb-tests.db"
http_host="localhost"
http_port=8888
function atexit()
{
trap - EXIT
[ -n "$LOGSERVER_PID" ] && kill -9 $LOGSERVER_PID 2>/dev/null
[ -n "$LOGDB_PID" ] && kill -9 $LOGDB_PID 2>/dev/null
sleep 3
rm -f "$dbfile*"
exit $RET
}
trap atexit EXIT
function create_test_db()
{
./uniset2-logdb-adm create -f $dbfile
}
function logdb_run_logserver()
{
./uniset2-test-logserver -i localhost -p 3333 -d 500 1>/dev/null 2>/dev/null &
LOGSERVER_PID=$!
return $?
}
function logdb_run()
{
./uniset2-logdb --logdb-single-confile logdb-tests-conf.xml \
--logdb-dbfile $dbfile \
--logdb-db-buffer-size 5 \
--logdb-httpserver-host $http_host \
--logdb-httpserver-port $http_port \
--logdb-ls-check-connection-sec 1 \
--logdb-db-max-records 20000 &
LOGDB_PID=$!
return $?
}
function logdb_error()
{
printf "%20s: ERROR: %s\n" "$1" "$2"
}
# ------------------------------------------------------------------------------------------
function logdb_test_count()
{
CNT=$( echo 'SELECT count(*) from logs;' | sqlite3 $dbfile )
[ "$CNT" != "0" ] && return 0
logdb_error "test_count" "count of logs should be > 0"
return 1
}
function logdb_test_http_count()
{
REQ=$( curl -s --request GET "http://$http_host:$http_port/api/v01/logdb/count" )
echo $REQ | grep -q '"count":' && return 0
logdb_error "test_http_count" "get count of records fail"
return 1
}
function logdb_test_http_list()
{
REQ=$( curl -s --request GET "http://$http_host:$http_port/api/v01/logdb/list" )
echo $REQ | grep -q 'logserver1' && return 0
logdb_error "test_http_list" "get list must contain 'logserver1'"
return 1
}
# ------------------------------------------------------------------------------------------
function logdb_run_all_tests()
{
logdb_run_logserver || return 1
sleep 3
logdb_run || return 1
sleep 5
# =========== ТЕСТЫ ============
logdb_test_count || RET=1
logdb_test_http_count || RET=1
logdb_test_http_list || RET=1
}
create_test_db || exit 1
logdb_run_all_tests || exit 1
exit $RET
m4_include(package.m4)
AT_COLOR_TESTS
AT_INIT([Loggb tests])
m4_include(logdb-tests.at)
../uniset2-logdb
\ No newline at end of file
../uniset2-logdb-adm
\ No newline at end of file
../../../Utilities/ULog/uniset2-test-logserver
\ No newline at end of file
...@@ -6,7 +6,7 @@ usage() ...@@ -6,7 +6,7 @@ usage()
echo "Usage: ${0##*/} command [arguments]" echo "Usage: ${0##*/} command [arguments]"
echo "Commands:" echo "Commands:"
echo " help - this mesage" echo " help - this mesage"
echo " create dbfile - create database" echo " create [-f|--force] dbfile - create database. (force - remove if exists)"
echo " load dbfile [logname1:]logfile1.log [logname2:]logfile2.log... - load logs to database" echo " load dbfile [logname1:]logfile1.log [logname2:]logfile2.log... - load logs to database"
echo " logfile - log file" echo " logfile - log file"
echo " [lognameX] - log name for db. Default: name of logfile" echo " [lognameX] - log name for db. Default: name of logfile"
...@@ -21,12 +21,18 @@ usage() ...@@ -21,12 +21,18 @@ usage()
if [ "$1" == "create" ]; then if [ "$1" == "create" ]; then
shift shift
force=
[ "$1" == "-f" ] && force=1 && shift
[ "$1" == "--force" ] && force=1 && shift
dbfile="$1" dbfile="$1"
[ -z "$dbfile" ] && usage && exit 1 [ -z "$dbfile" ] && usage && exit 1
[ -a "$dbfile" ] && echo "$dbfile already exists.." && exit 1 [ -n "$force" ] && [ -a "$dbfile" ] && rm -f "$dbfile"
[ -a "$dbfile" ] && echo "$dbfile already exists.." && exit 1
sqlite3 $dbfile <<"_EOF_" sqlite3 $dbfile <<"_EOF_"
......
...@@ -6,7 +6,7 @@ if HAVE_EXTENTIONS ...@@ -6,7 +6,7 @@ if HAVE_EXTENTIONS
SUBDIRS = lib include SharedMemory SharedMemory/tests IOControl IOControl/tests LogicProcessor LogicProcessor/tests \ SUBDIRS = lib include SharedMemory SharedMemory/tests IOControl IOControl/tests LogicProcessor LogicProcessor/tests \
ModbusMaster ModbusSlave SMViewer UniNetwork UNetUDP UNetUDP/tests \ ModbusMaster ModbusSlave SMViewer UniNetwork UNetUDP UNetUDP/tests \
DBServer-MySQL DBServer-SQLite DBServer-PostgreSQL MQTTPublisher \ DBServer-MySQL DBServer-SQLite DBServer-PostgreSQL MQTTPublisher \
RRDServer tests ModbusMaster/tests ModbusSlave/tests LogDB RRDServer tests ModbusMaster/tests ModbusSlave/tests LogDB LogDB/tests
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libUniSet2Extensions.pc pkgconfig_DATA = libUniSet2Extensions.pc
......
...@@ -12,3 +12,4 @@ m4_include(../extensions/ModbusSlave/tests/mbslave-tests.at) ...@@ -12,3 +12,4 @@ m4_include(../extensions/ModbusSlave/tests/mbslave-tests.at)
m4_include(../extensions/UNetUDP/tests/unetudp-tests.at) m4_include(../extensions/UNetUDP/tests/unetudp-tests.at)
m4_include(../extensions/ModbusMaster/tests/mbmaster-tests.at) m4_include(../extensions/ModbusMaster/tests/mbmaster-tests.at)
m4_include(../extensions/IOControl/tests/iocontrol-tests.at) m4_include(../extensions/IOControl/tests/iocontrol-tests.at)
m4_include(../extensions/LogDB/tests/logdb-tests.at)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment