#!/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