From bbb23db2e99382201992c1462a43f129f739cdfa Mon Sep 17 00:00:00 2001 From: Jim Morris Date: Sun, 13 Sep 2015 17:07:37 -0700 Subject: [PATCH] add append_parameters to utils and unit test --- src/libs/utils.cpp | 13 +++++++++++++ src/libs/utils.h | 2 ++ src/testframework/unittests/libs/TEST_utils.cpp | 8 ++++++++ 3 files changed, 23 insertions(+) diff --git a/src/libs/utils.cpp b/src/libs/utils.cpp index 6c30a863..dc4ac195 100644 --- a/src/libs/utils.cpp +++ b/src/libs/utils.cpp @@ -15,6 +15,8 @@ #include #include #include +#include + using std::string; uint16_t get_checksum(const string &to_check) @@ -199,6 +201,7 @@ string absolute_from_relative( string path ) return cwd + '/' + path; } +// FIXME this does not handle empty strings correctly //split a string on a delimiter, return a vector of the split tokens vector split(const char *str, char c) { @@ -216,6 +219,7 @@ vector split(const char *str, char c) return result; } +// FIXME this does not handle empty strings correctly // parse a number list "1.1,2.2,3.3" and return the numbers in a vector of floats vector parse_number_list(const char *str) { @@ -227,3 +231,12 @@ vector parse_number_list(const char *str) } return r; } + +std::string append_parameters(std::map params) +{ + std::ostringstream oss; + for(auto &i : params) { + oss << i.first << i.second << " "; + } + return oss.str(); +} diff --git a/src/libs/utils.h b/src/libs/utils.h index 8d2756b6..71c10b3b 100644 --- a/src/libs/utils.h +++ b/src/libs/utils.h @@ -4,6 +4,7 @@ #include #include #include +#include using std::string; using std::vector; @@ -35,5 +36,6 @@ void system_reset( bool dfu= false ); string absolute_from_relative( string path ); +std::string append_parameters(std::map params); #endif diff --git a/src/testframework/unittests/libs/TEST_utils.cpp b/src/testframework/unittests/libs/TEST_utils.cpp index df80cb73..167d0891 100644 --- a/src/testframework/unittests/libs/TEST_utils.cpp +++ b/src/testframework/unittests/libs/TEST_utils.cpp @@ -34,3 +34,11 @@ TEST(UtilsTest,parse_number_list) ASSERT_TRUE(v[1] == 2.2F); ASSERT_TRUE(v[2] == 3.3F); } + +TEST(UtilsTest,append_parameters) +{ + std::string str; + + str= append_parameters({{'X', 1}, {'Y', 2}, {'Z', 3}}); + ASSERT_EQUALS(str, "X1 Y2 Z3 "); +} -- 2.20.1