C++: replace deprecated vsprintf and sprintf

With future C++ compilers the methods vsprintf and sprintf are declared as deprecated due to security issues.
They are replaced with the secure counterpart of the fmt library

Fixes the compiler warnings -Wdeprecated-declarations
This commit is contained in:
wmayer
2024-04-03 07:29:10 +02:00
committed by wwmayer
parent d8a194a70b
commit 0b08ea3368
4 changed files with 18 additions and 12 deletions

View File

@@ -3,6 +3,7 @@
#include "gtest/gtest.h"
#include <stdexcept>
// NOLINTBEGIN
TEST(fmt, fail)
{
EXPECT_NE("abc", fmt::format("{}{}", "a", "b"));
@@ -18,9 +19,14 @@ TEST(fmt, print_pass)
EXPECT_EQ("12", fmt::sprintf("%s%d", "1", 2));
EXPECT_EQ("x", fmt::sprintf("%c", 'x'));
EXPECT_EQ("1.23 2", fmt::sprintf("%.2f %d", 1.23456, 2));
EXPECT_EQ("0.123456789012", fmt::sprintf("%.12f", 0.123456789012));
EXPECT_EQ("-1234", fmt::sprintf("%li", -1234L));
EXPECT_EQ("-1234567890", fmt::sprintf("%li", -1234567890L));
EXPECT_EQ("1234567890", fmt::sprintf("%li", 1234567890UL));
}
TEST(fmt, print_fail)
{
EXPECT_THROW(fmt::printf("%s%d", 1, 2), std::exception);
}
// NOLINTEND