2017-03-25 21:23:48 +01:00
|
|
|
/** Unit tests for sample value mapping.
|
|
|
|
*
|
2022-12-14 17:41:58 +01:00
|
|
|
* @author Steffen Vogel <post@steffenvogel.de>
|
2022-03-15 09:28:57 -04:00
|
|
|
* @copyright 2014-2022, Institute for Automation of Complex Power Systems, EONERC
|
2022-07-04 18:20:03 +02:00
|
|
|
* @license Apache 2.0
|
2017-03-25 21:23:48 +01:00
|
|
|
*********************************************************************************/
|
|
|
|
|
|
|
|
#include <criterion/criterion.h>
|
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
#include <villas/mapping.hpp>
|
|
|
|
#include <villas/node.hpp>
|
|
|
|
#include <villas/list.hpp>
|
2019-04-23 13:09:50 +02:00
|
|
|
#include <villas/utils.hpp>
|
2021-08-10 10:12:48 -04:00
|
|
|
#include <villas/signal.hpp>
|
2017-08-28 12:48:15 +02:00
|
|
|
|
2019-06-23 13:35:42 +02:00
|
|
|
using namespace villas;
|
2021-08-10 10:12:48 -04:00
|
|
|
using namespace villas::node;
|
2019-06-23 13:35:42 +02:00
|
|
|
|
2020-09-11 14:57:05 +02:00
|
|
|
// cppcheck-suppress syntaxError
|
2017-08-28 12:48:15 +02:00
|
|
|
Test(mapping, parse_nodes)
|
|
|
|
{
|
|
|
|
int ret;
|
2021-08-10 10:12:48 -04:00
|
|
|
MappingEntry m;
|
2017-08-28 12:48:15 +02:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("apple.ts.origin");
|
2017-08-28 12:48:15 +02:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "apple");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::TIMESTAMP);
|
|
|
|
cr_assert_eq(m.timestamp.type, MappingEntry::TimestampType::ORIGIN);
|
2017-08-28 12:48:15 +02:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("cherry.stats.owd.mean");
|
2017-08-28 12:48:15 +02:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "cherry");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::STATS);
|
2019-06-23 13:35:42 +02:00
|
|
|
cr_assert_eq(m.stats.metric, Stats::Metric::OWD);
|
|
|
|
cr_assert_eq(m.stats.type, Stats::Type::MEAN);
|
2017-08-28 12:48:15 +02:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("carrot.data[1-2]");
|
2018-03-26 14:09:20 +02:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "carrot");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::DATA);
|
2020-09-10 11:15:33 +02:00
|
|
|
cr_assert_str_eq(m.data.first, "1");
|
|
|
|
cr_assert_str_eq(m.data.last, "2");
|
2018-03-26 14:09:20 +02:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("carrot");
|
2018-03-26 14:09:20 +02:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "carrot");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::DATA);
|
2020-09-10 11:15:33 +02:00
|
|
|
cr_assert_eq(m.data.first, nullptr);
|
|
|
|
cr_assert_eq(m.data.last, nullptr);
|
2017-05-05 19:24:16 +00:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("carrot.data[sole]");
|
2017-03-25 21:23:48 +01:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "carrot");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::DATA);
|
2020-09-10 11:15:33 +02:00
|
|
|
cr_assert_str_eq(m.data.first, "sole");
|
|
|
|
cr_assert_eq(m.data.last, nullptr);
|
2017-03-25 21:23:48 +01:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("carrot.sole");
|
2017-03-25 21:23:48 +01:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "carrot");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::DATA);
|
2020-09-10 11:15:33 +02:00
|
|
|
cr_assert_str_eq(m.data.first, "sole");
|
|
|
|
cr_assert_eq(m.data.last, nullptr);
|
2017-03-25 21:23:48 +01:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("carrot.data.sole");
|
2017-03-25 21:23:48 +01:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "carrot");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::DATA);
|
2020-09-10 11:15:33 +02:00
|
|
|
cr_assert_str_eq(m.data.first, "sole");
|
|
|
|
cr_assert_eq(m.data.last, nullptr);
|
2017-09-02 22:01:52 +02:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("carrot.data[sole-mio]");
|
2017-08-28 12:48:15 +02:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "carrot");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::DATA);
|
2020-09-10 11:15:33 +02:00
|
|
|
cr_assert_str_eq(m.data.first, "sole");
|
|
|
|
cr_assert_str_eq(m.data.last, "mio");
|
2017-09-02 22:01:52 +02:00
|
|
|
|
2021-08-10 10:12:48 -04:00
|
|
|
ret = m.parseString("carrot[sole-mio]");
|
2017-08-28 12:48:15 +02:00
|
|
|
cr_assert_eq(ret, 0);
|
2021-08-10 10:12:48 -04:00
|
|
|
cr_assert_str_eq(m.nodeName.c_str(), "carrot");
|
|
|
|
cr_assert_eq(m.type, MappingEntry::Type::DATA);
|
2020-09-10 11:15:33 +02:00
|
|
|
cr_assert_str_eq(m.data.first, "sole");
|
|
|
|
cr_assert_str_eq(m.data.last, "mio");
|
2017-09-02 22:01:52 +02:00
|
|
|
}
|