diff --git a/tests/integration/hook-cast.sh b/tests/integration/hook-cast.sh new file mode 100755 index 000000000..5e1d902e6 --- /dev/null +++ b/tests/integration/hook-cast.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# +# Integration test for convert hook. +# +# @author Steffen Vogel +# @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 . +################################################################################## + +exit 99 + +INPUT_FILE=$(mktemp) +OUTPUT_FILE=$(mktemp) +EXPECT_FILE=$(mktemp) + +cat < ${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 < ${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 diff --git a/tests/integration/node-test_rtt.sh b/tests/integration/node-test_rtt.sh new file mode 100755 index 000000000..7a27c4f84 --- /dev/null +++ b/tests/integration/node-test_rtt.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# Integration loopback test using villas-node. +# +# @author Steffen Vogel +# @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 . +################################################################################## + +# 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} < +# @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 . +################################################################################## + +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}