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:
parent
120e496814
commit
936be46f13
3 changed files with 214 additions and 0 deletions
71
tests/integration/hook-cast.sh
Executable file
71
tests/integration/hook-cast.sh
Executable 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
|
75
tests/integration/node-test_rtt.sh
Executable file
75
tests/integration/node-test_rtt.sh
Executable 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}
|
68
tests/integration/pipe-loopback-socket-netem.sh
Executable file
68
tests/integration/pipe-loopback-socket-netem.sh
Executable 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}
|
Loading…
Add table
Reference in a new issue