1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-16 00:00:02 +01:00
VILLASnode/tests/integration/node-multiplexing.sh
Steffen Vogel 61ab82dbb7 Fix missing idle_stop setting in integration tests
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2024-05-28 19:45:55 -07:00

124 lines
5 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Integration loopback test using villas node.
#
# Author: Steffen Vogel <post@steffenvogel.de>
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
# SPDX-License-Identifier: Apache-2.0
set -e
DIR=$(mktemp -d)
pushd ${DIR}
function finish {
popd
rm -rf ${DIR}
}
trap finish EXIT
cat > expect_all.dat <<EOF
1599745986.343431058+1.451000e-06(7) 4.000000 20.000000 100.000000
1599745986.843081878+8.820000e-07(16) 9.000000 50.000000 200.000000
1599745987.343081848+9.440000e-07(24) 14.000000 70.000000 300.000000
1599745987.843081745+8.630000e-07(33) 19.000000 100.000000 400.000000
EOF
cat > expect_any.dat <<EOF
1637846509.292258908(0) 0.00000000000000000
1637846509.392250279(1) 1.00000000000000000
1637846509.392340108(2) 1.00000000000000000 10.00000000000000000
1637846509.492248409(3) 2.00000000000000000 10.00000000000000000
1637846509.592247486(4) 3.00000000000000000 10.00000000000000000
1637846509.592325514(5) 3.00000000000000000 20.00000000000000000
1637846509.692247962(6) 4.00000000000000000 20.00000000000000000
1637846509.692366850(7) 4.00000000000000000 20.00000000000000000 100.00000000000000000
1637846509.792249190(8) 5.00000000000000000 20.00000000000000000 100.00000000000000000
1637846509.792325438(9) 5.00000000000000000 30.00000000000000000 100.00000000000000000
1637846509.892248488(10) 6.00000000000000000 30.00000000000000000 100.00000000000000000
1637846509.992245288(11) 7.00000000000000000 30.00000000000000000 100.00000000000000000
1637846509.992326612(12) 7.00000000000000000 40.00000000000000000 100.00000000000000000
1637846510.092248626(13) 8.00000000000000000 40.00000000000000000 100.00000000000000000
1637846510.192246680(14) 9.00000000000000000 40.00000000000000000 100.00000000000000000
1637846510.192325483(15) 9.00000000000000000 50.00000000000000000 100.00000000000000000
1637846510.192357620(16) 9.00000000000000000 50.00000000000000000 200.00000000000000000
1637846510.292239659(17) 10.00000000000000000 50.00000000000000000 200.00000000000000000
1637846510.392247156(18) 11.00000000000000000 50.00000000000000000 200.00000000000000000
1637846510.392325530(19) 11.00000000000000000 60.00000000000000000 200.00000000000000000
1637846510.492248814(20) 12.00000000000000000 60.00000000000000000 200.00000000000000000
1637846510.592247753(21) 13.00000000000000000 60.00000000000000000 200.00000000000000000
1637846510.592325526(22) 13.00000000000000000 70.00000000000000000 200.00000000000000000
1637846510.692242575(23) 14.00000000000000000 70.00000000000000000 200.00000000000000000
1637846510.692357658(24) 14.00000000000000000 70.00000000000000000 300.00000000000000000
1637846510.792248421(25) 15.00000000000000000 70.00000000000000000 300.00000000000000000
1637846510.792325568(26) 15.00000000000000000 80.00000000000000000 300.00000000000000000
1637846510.892249615(27) 16.00000000000000000 80.00000000000000000 300.00000000000000000
1637846510.992238325(28) 17.00000000000000000 80.00000000000000000 300.00000000000000000
1637846510.992325360(29) 17.00000000000000000 90.00000000000000000 300.00000000000000000
1637846511.092247974(30) 18.00000000000000000 90.00000000000000000 300.00000000000000000
1637846511.192247896(31) 19.00000000000000000 90.00000000000000000 300.00000000000000000
1637846511.192325488(32) 19.00000000000000000 100.00000000000000000 300.00000000000000000
1637846511.192357421(33) 19.00000000000000000 100.00000000000000000 400.00000000000000000
EOF
for MODE in all any; do
cat > config.json <<EOF
{
"idle_stop": true,
"nodes": {
"sig_1": {
"type": "signal",
"signal": "counter",
"values": 1,
"offset": 0.0,
"rate": 10.0,
"limit": 20
},
"sig_2": {
"type": "signal",
"signal": "counter",
"values": 1,
"offset": 10.0,
"amplitude": 10.0,
"rate": 5.0,
"limit": 10
},
"sig_3": {
"type": "signal",
"signal": "counter",
"values": 1,
"offset": 100.0,
"amplitude": 100.0,
"rate": 2.0,
"limit": 10
},
"file_1": {
"type": "file",
"uri": "output.dat"
}
},
"paths": [
{
"in": [
"sig_1.data[counter]",
"sig_2.data[counter]",
"sig_3.data[counter]"
],
"out": "file_1",
"mode": "${MODE}"
}
]
}
EOF
villas node config.json
villas compare output.dat expect_${MODE}.dat
rm output.dat
done