From a75d669bc01fecc0d550fbffed5a19074e3730c1 Mon Sep 17 00:00:00 2001 From: Shubham Padkonde Date: Wed, 16 Sep 2026 15:35:25 +0530 Subject: [PATCH] Fix CSV timestamp output with multi-character delimiters --- src/pcm-iio-pmu.cpp | 2 +- tests/utests/pcm-iio-utest.cpp | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/pcm-iio-pmu.cpp b/src/pcm-iio-pmu.cpp index a238ba95..9394ad3e 100644 --- a/src/pcm-iio-pmu.cpp +++ b/src/pcm-iio-pmu.cpp @@ -120,7 +120,7 @@ void PcmIioCsvBuilder::insertTimeStamp(vector & out, CsvOutputType type) std::string dateTime; printDateForCSV(type, m_config.display.csv_delimiter, &dateTime); // remove last delimiter - dateTime.pop_back(); + dateTime.resize(dateTime.size() - m_config.display.csv_delimiter.size()); out.insert(out.begin(), dateTime); } diff --git a/tests/utests/pcm-iio-utest.cpp b/tests/utests/pcm-iio-utest.cpp index 76b6fe53..c3b11304 100644 --- a/tests/utests/pcm-iio-utest.cpp +++ b/tests/utests/pcm-iio-utest.cpp @@ -13,6 +13,20 @@ using namespace pcm; +TEST(PcmIioCsvTest, PreservesMultiCharacterDelimiterAfterTimestamp) +{ + for (const std::string delimiter : {",", "||", ":::", ""}) + { + pcm_iio_config config; + config.display.csv = true; + config.display.csv_delimiter = delimiter; + const auto rows = getDisplayBuilder(config)->buildDisplayBuffer(); + ASSERT_EQ(rows.size(), 1U); + EXPECT_EQ(rows.front(), "Date" + delimiter + "Time" + delimiter + + "Socket" + delimiter + "Name" + delimiter + "Part"); + } +} + class LoadEventsTest : public ::testing::Test { protected: void SetUp() override