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:
parent
54d3f51afb
commit
25601efa54
2 changed files with 64 additions and 2 deletions
|
@ -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);
|
||||
|
||||
|
|
49
tests/integration/hook-reorder_ts.sh
Executable file
49
tests/integration/hook-reorder_ts.sh
Executable 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
|
Loading…
Add table
Reference in a new issue