From 2ab74d0c67ef212de961f32e9f0cf2c405576199 Mon Sep 17 00:00:00 2001 From: Josema Date: Wed, 29 Jan 2020 08:56:06 +0100 Subject: [PATCH] Added support to long long int injection (as influx supports 64 bits ints by default) (#48) --- include/Point.h | 4 ++-- src/Point.cxx | 3 ++- test/testHttp.cxx | 4 ++++ test/testPoint.cxx | 7 ++++--- test/testQuery.cxx | 12 +++++++----- test/testUdp.cxx | 5 +++++ 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/include/Point.h b/include/Point.h index 558adf9e..cce15f55 100644 --- a/include/Point.h +++ b/include/Point.h @@ -26,7 +26,7 @@ class Point Point&& addTag(std::string_view key, std::string_view value); /// Adds filed - Point&& addField(std::string_view name, std::variant value); + Point&& addField(std::string_view name, std::variant value); /// Generetes current timestamp static auto getCurrentTimestamp() -> decltype(std::chrono::system_clock::now()); @@ -48,7 +48,7 @@ class Point protected: /// A value - std::variant mValue; + std::variant mValue; /// A name std::string mMeasurement; diff --git a/src/Point.cxx b/src/Point.cxx index fb0d069a..3263f116 100644 --- a/src/Point.cxx +++ b/src/Point.cxx @@ -23,7 +23,7 @@ Point::Point(const std::string& measurement) : mFields = {}; } -Point&& Point::addField(std::string_view name, std::variant value) +Point&& Point::addField(std::string_view name, std::variant value) { std::stringstream convert; if (!mFields.empty()) convert << ","; @@ -31,6 +31,7 @@ Point&& Point::addField(std::string_view name, std::variantwrite(Point{"test"} + .addField("value", 200LL) + .addTag("host", "localhost")); } } // namespace test diff --git a/test/testPoint.cxx b/test/testPoint.cxx index 7a660063..bf919ab1 100644 --- a/test/testPoint.cxx +++ b/test/testPoint.cxx @@ -18,7 +18,7 @@ std::vector getVector(const Point& point) BOOST_AUTO_TEST_CASE(test1) { auto point = Point{"test"} - .addField("value", 10); + .addField("value", 10LL); auto result = getVector(point); @@ -29,7 +29,7 @@ BOOST_AUTO_TEST_CASE(test1) BOOST_AUTO_TEST_CASE(test2) { auto point = Point{"test"} - .addField("value", 10) + .addField("value", 10LL) .addField("dvalue", 10.10); auto result = getVector(point); @@ -41,7 +41,7 @@ BOOST_AUTO_TEST_CASE(test2) BOOST_AUTO_TEST_CASE(test3) { auto point = Point{"test"} - .addField("value", 10) + .addField("value", 10LL) .addField("dvalue", 10.10) .addTag("tag", "tagval"); @@ -55,6 +55,7 @@ BOOST_AUTO_TEST_CASE(test4) { auto point = Point{"test"} .addField("value", 10) + .addField("value", 100LL) .setTimestamp(std::chrono::time_point(std::chrono::milliseconds(1572830914))); auto result = getVector(point); diff --git a/test/testQuery.cxx b/test/testQuery.cxx index dedcef89..81339b39 100644 --- a/test/testQuery.cxx +++ b/test/testQuery.cxx @@ -12,11 +12,13 @@ namespace test { BOOST_AUTO_TEST_CASE(query1) { auto influxdb = influxdb::InfluxDBFactory::Get("http://localhost:8086?db=test"); - auto points = influxdb->query("SELECT * from test LIMIT 2"); - BOOST_CHECK_EQUAL(points.front().getName(), "test"); - BOOST_CHECK_EQUAL(points.back().getName(), "test"); - BOOST_CHECK_EQUAL(points.front().getFields(), "value=10"); - BOOST_CHECK_EQUAL(points.back().getFields(), "value=20"); + auto points = influxdb->query("SELECT * from test LIMIT 3"); + BOOST_CHECK_EQUAL(points[0].getName(), "test"); + BOOST_CHECK_EQUAL(points[1].getName(), "test"); + BOOST_CHECK_EQUAL(points[2].getName(), "test"); + BOOST_CHECK_EQUAL(points[0].getFields(), "value=10"); + BOOST_CHECK_EQUAL(points[1].getFields(), "value=20"); + BOOST_CHECK_EQUAL(points[2].getFields(), "value=200"); } } // namespace test diff --git a/test/testUdp.cxx b/test/testUdp.cxx index d5f47d7b..693cb5e8 100644 --- a/test/testUdp.cxx +++ b/test/testUdp.cxx @@ -12,6 +12,8 @@ BOOST_AUTO_TEST_CASE(test) auto influxdb = influxdb::InfluxDBFactory::Get("udp://localhost:8084"); influxdb->write(Point{"test"} .addField("value", 10) + .addField("value", 20) + .addField("value", 100LL) .addTag("host", "adampc") ); } @@ -23,6 +25,9 @@ BOOST_AUTO_TEST_CASE(test2) influxdb->write(Point{"test"}.addField("value", 10)); influxdb->write(Point{"test"}.addField("value", 10)); influxdb->write(Point{"test"}.addField("value", 10)); + influxdb->write(Point{"test"}.addField("value", 100LL)); + influxdb->write(Point{"test"}.addField("value", 100LL)); + influxdb->write(Point{"test"}.addField("value", 100LL)); } } // namespace test