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

hook-reorder_ts: Add integration test

Signed-off-by: Philipp Jungkamp <Philipp.Jungkamp@opal-rt.com>
This commit is contained in:
Philipp Jungkamp 2023-09-14 11:38:22 +02:00 committed by Steffen Vogel
parent 54d3f51afb
commit 25601efa54
2 changed files with 64 additions and 2 deletions

View file

@ -5,6 +5,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
#include "villas/exceptions.hpp"
#include <algorithm>
#include <cinttypes>
#include <cstring>
@ -32,6 +33,9 @@ protected:
sample_copy(rhs, buffer);
} else {
buffer = sample_clone(lhs);
if (!buffer)
throw RuntimeError{"Out of memory."};
sample_copy(lhs, rhs);
sample_copy(rhs, buffer);
}
@ -80,7 +84,11 @@ public:
assert(smp);
if (window.empty()) {
window.push_back(sample_clone(smp));
auto new_smp = sample_clone(smp);
if (!new_smp)
throw RuntimeError{"Out of memory."};
window.push_back(new_smp);
logger->debug("window.size={}/{}", window.size(), window_size);
@ -104,7 +112,12 @@ public:
window.push_back(nullptr);
std::copy_backward(std::next(std::begin(window), i + 1),
--std::end(window), std::end(window));
window[i + 1] = sample_clone(smp);
auto new_smp = sample_clone(smp);
if (!new_smp)
throw RuntimeError{"Out of memory."};
window[i + 1] = new_smp;
logger->debug("window.size={}/{}", window.size(), window_size);

View file

@ -0,0 +1,49 @@
#!/bin/bash
#
# Integration test for reorder_ts hook.
#
# Author: Philipp Jungkamp <Philipp.Jungkamp@opal-rt.com>
# SPDX-FileCopyrightText: 2023 OPAL-RT Germany GmbH
# SPDX-License-Identifier: Apache-2.0
set -e
DIR=$(mktemp -d)
pushd ${DIR}
function finish {
popd
rm -rf ${DIR}
}
trap finish EXIT
cat > input.dat <<EOF
# seconds.nanoseconds+offset(sequence) signal0 signal1 signal2 signal3 signal4
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
1490500399.976379108(2) 0.951057 0.951057 0.951057 0.951057
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.476379108(7) -0.951057 -0.951057 -0.951057 -0.951057
1490500400.276379108(5) 0.000000 0.000000 0.000000 0.000000
1490500400.576379108(8) -0.951057 -0.951057 -0.951057 -0.951057
1490500400.376379108(6) -0.587785 -0.587785 -0.587785 -0.587785
1490500400.676379108(9) -0.587785 -0.587785 -0.587785 -0.587785
EOF
cat > expect.dat <<EOF
1490500399.776379108+2.041837e+08(0) 0.00000000000000000 0.00000000000000000 0.00000000000000000 0.00000000000000000
1490500399.876379108+2.041837e+08(1) 0.58778500000000000 0.58778500000000000 0.58778500000000000 0.58778500000000000
1490500399.976379108+2.041837e+08(2) 0.95105700000000004 0.95105700000000004 0.95105700000000004 0.95105700000000004
1490500400.076379108+2.041837e+08(3) 0.95105700000000004 0.95105700000000004 0.95105700000000004 0.95105700000000004
1490500400.176379108+2.041837e+08(4) 0.58778500000000000 0.58778500000000000 0.58778500000000000 0.58778500000000000
1490500400.276379108+2.041837e+08(5) 0.00000000000000000 0.00000000000000000 0.00000000000000000 0.00000000000000000
1490500400.376379108+2.041837e+08(6) -0.58778500000000000 -0.58778500000000000 -0.58778500000000000 -0.58778500000000000
EOF
villas hook reorder_ts -o window_size=3 < input.dat > reorder.dat
villas hook drop < reorder.dat > output.dat
villas compare output.dat expect.dat