1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

tests: added more integration tests

This commit is contained in:
Steffen Vogel 2018-10-20 14:25:38 +02:00
parent 120e496814
commit 936be46f13
3 changed files with 214 additions and 0 deletions

71
tests/integration/hook-cast.sh Executable file
View file

@ -0,0 +1,71 @@
#!/bin/bash
#
# Integration test for convert hook.
#
# @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
# @copyright 2017-2018, Institute for Automation of Complex Power Systems, EONERC
# @license GNU General Public License (version 3)
#
# VILLASnode
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
##################################################################################
exit 99
INPUT_FILE=$(mktemp)
OUTPUT_FILE=$(mktemp)
EXPECT_FILE=$(mktemp)
cat <<EOF > ${INPUT_FILE}
1490500399.776379108(0) 0.000000 0.000000 0.000000 0.000000
1490500399.876379108(1) 0.587785 0.587785 0.587785 0.587785
1490500399.976379108(2) 0.951057 0.951057 0.951057 0.951057
1490500400.076379108(3) 0.951057 0.951057 0.951057 0.951057
1490500400.176379108(4) 0.587785 0.587785 0.587785 0.587785
1490500400.276379108(5) 0.000000 0.000000 0.000000 0.000000
1490500400.376379108(6) -0.587785 -0.587785 -0.587785 -0.587785
1490500400.476379108(7) -0.951057 -0.951057 -0.951057 -0.951057
1490500400.576379108(8) -0.951057 -0.951057 -0.951057 -0.951057
1490500400.676379108(9) -0.587785 -0.587785 -0.587785 -0.587785
EOF
cat <<EOF > ${EXPECT_FILE}
1490500399.776379108(0) 0.000000 0 0 0.000000
1490500399.876379108(1) 0.587785 58 58 0.587785
1490500399.976379108(2) 0.951057 95 95 0.951057
1490500400.076379108(3) 0.951057 95 95 0.951057
1490500400.176379108(4) 0.587785 58 58 0.587785
1490500400.276379108(5) 0.000000 0 0 0.000000
1490500400.376379108(6) -0.587785 -58 -58 -0.587785
1490500400.476379108(7) -0.951057 -95 -95 -0.951057
1490500400.576379108(8) -0.951057 -95 -95 -0.951057
1490500400.676379108(9) -0.587785 -58 -58 -0.587785
EOF
cat ${INPUT_FILE} | \
villas-hook scale -o scale=100 | \
villas-hook cast | \
tee ${OUTPUT_FILE}
cat ${OUTPUT_FILE}
# Compare only the data values
villas-test-cmp ${OUTPUT_FILE} ${EXPECT_FILE}
RC=$?
rm -f ${INPUT_FILE} ${OUTPUT_FILE} ${EXPECT_FILE}
exit $RC

View file

@ -0,0 +1,75 @@
#!/bin/bash
#
# Integration loopback test using villas-node.
#
# @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
# @copyright 2017-2018, Institute for Automation of Complex Power Systems, EONERC
# @license GNU General Public License (version 3)
#
# VILLASnode
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
##################################################################################
# We skip this test for now
echo "Test not yet supported"
exit 99
SCRIPT=$(realpath $0)
SCRIPTPATH=$(dirname ${SCRIPT})
source ${SCRIPTPATH}/../../tools/integration-tests-helper.sh
CONFIG_FILE=$(mktemp)
cat > ${CONFIG_FILE} <<EOF
{
"logging": { "level": 2 },
"stats": 1,
"nodes": {
"test": {
"type": "test_rtt",
"cooldown": 2,
"output" : "${LOGDIR}/test_rtt/",
"cases": [
{
"rates": 55.0,
"values": 5,
"limit": 100
},
{
"rates": [ 10, 10, 1000 ],
"values": [ 2, 10, 20, 50 ],
"duration": 5
}
],
"hooks" : [
{
"type": "stats",
"verbose": false
}
]
}
},
"paths": [
{
"in": "test",
"out": "test"
}
]
}
EOF
# Start node
VILLAS_LOG_PREFIX=$(colorize "[Node] ") \
villas-node ${CONFIG_FILE}

View file

@ -0,0 +1,68 @@
#!/bin/bash
#
# Integration loopback test for villas-pipe.
#
# @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
# @copyright 2017-2018, Institute for Automation of Complex Power Systems, EONERC
# @license GNU General Public License (version 3)
#
# VILLASnode
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
##################################################################################
if ! modprobe -aqn sch_prio sch_netem cls_fw; then
echo "Netem / TC kernel modules are missing"
exit 99
fi
CONFIG_FILE=$(mktemp)
INPUT_FILE=$(mktemp)
OUTPUT_FILE=$(mktemp)
NUM_SAMPLES=${NUM_SAMPLES:-10}
cat > ${CONFIG_FILE} << EOF
{
"nodes" : {
"node1" : {
"type" : "socket",
"format" : "protobuf",
"in" : {
"address" : "*:12000"
},
"out" : {
"address" : "127.0.0.1:12000",
"netem" : {
"enabled" : true,
"delay" : 100000,
"jitter" : 30000,
"loss" : 20
}
}
}
}
}
EOF
# Generate test data
villas-signal random -l ${NUM_SAMPLES} -n > ${INPUT_FILE}
villas-pipe -l ${NUM_SAMPLES} ${CONFIG_FILE} node1 > ${OUTPUT_FILE} < ${INPUT_FILE}
# Check network emulation characteristics
villas-hook stats -o verbose < ${OUTPUT_FILE} > /dev/null
rm ${OUTPUT_FILE} ${INPUT_FILE} ${CONFIG_FILE}