summaryrefslogtreecommitdiff
path: root/debian/patches/str-format-convert-test-printf.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/str-format-convert-test-printf.diff')
-rw-r--r--debian/patches/str-format-convert-test-printf.diff103
1 files changed, 0 insertions, 103 deletions
diff --git a/debian/patches/str-format-convert-test-printf.diff b/debian/patches/str-format-convert-test-printf.diff
deleted file mode 100644
index 1808f2e1..00000000
--- a/debian/patches/str-format-convert-test-printf.diff
+++ /dev/null
@@ -1,103 +0,0 @@
-From: Benjamin Barenblat <bbaren@google.com>
-Subject: Check printf format strings in str_format_convert_test
-Forwarded: yes
-Applied-Upstream: https://github.com/abseil/abseil-cpp/commit/9fed77a6fea29b8c8468bd41c6259c7f67163a65
-
-Add ABSL_PRINTF_ATTRIBUTE to appropriate functions in
-strings/internal/str_format/convert_test. Correct
-TypedFormatConvertTest.Char, which was accidentally passing values of
-types larger than int to StrPrint.
-
-The author works at Google. Upstream applied this patch as Piper
-revision 439388148 and exported it to GitHub; the Applied-Upstream URL
-above points to the exported commit.
-
---- a/absl/strings/BUILD.bazel
-+++ b/absl/strings/BUILD.bazel
-@@ -787,6 +787,7 @@
- deps = [
- ":str_format_internal",
- ":strings",
-+ "//absl/base:core_headers",
- "//absl/base:raw_logging_internal",
- "//absl/types:optional",
- "@com_google_googletest//:gtest_main",
---- a/absl/strings/CMakeLists.txt
-+++ b/absl/strings/CMakeLists.txt
-@@ -492,6 +492,7 @@
- DEPS
- absl::strings
- absl::str_format_internal
-+ absl::core_headers
- absl::raw_logging_internal
- absl::int128
- gmock_main
---- a/absl/strings/internal/str_format/convert_test.cc
-+++ b/absl/strings/internal/str_format/convert_test.cc
-@@ -24,6 +24,7 @@
-
- #include "gmock/gmock.h"
- #include "gtest/gtest.h"
-+#include "absl/base/attributes.h"
- #include "absl/base/internal/raw_logging.h"
- #include "absl/strings/internal/str_format/bind.h"
- #include "absl/strings/match.h"
-@@ -124,6 +125,7 @@
- delete[] buf;
- }
-
-+void StrAppend(std::string *, const char *, ...) ABSL_PRINTF_ATTRIBUTE(2, 3);
- void StrAppend(std::string *out, const char *format, ...) {
- va_list ap;
- va_start(ap, format);
-@@ -131,6 +133,7 @@
- va_end(ap);
- }
-
-+std::string StrPrint(const char *, ...) ABSL_PRINTF_ATTRIBUTE(1, 2);
- std::string StrPrint(const char *format, ...) {
- va_list ap;
- va_start(ap, format);
-@@ -452,21 +455,32 @@
- }
-
- TYPED_TEST_P(TypedFormatConvertTest, Char) {
-+ // Pass a bunch of values of type TypeParam to both FormatPack and libc's
-+ // vsnprintf("%c", ...) (wrapped in StrPrint) to make sure we get the same
-+ // value.
- typedef TypeParam T;
- using remove_volatile_t = typename std::remove_volatile<T>::type;
-- static const T kMin = std::numeric_limits<remove_volatile_t>::min();
-- static const T kMax = std::numeric_limits<remove_volatile_t>::max();
-- T kVals[] = {
-- remove_volatile_t(1), remove_volatile_t(2), remove_volatile_t(10),
-- remove_volatile_t(-1), remove_volatile_t(-2), remove_volatile_t(-10),
-- remove_volatile_t(0),
-- kMin + remove_volatile_t(1), kMin,
-- kMax - remove_volatile_t(1), kMax
-+ std::vector<remove_volatile_t> vals = {
-+ remove_volatile_t(1), remove_volatile_t(2), remove_volatile_t(10), //
-+ remove_volatile_t(-1), remove_volatile_t(-2), remove_volatile_t(-10), //
-+ remove_volatile_t(0),
- };
-- for (const T &c : kVals) {
-+
-+ // We'd like to test values near std::numeric_limits::min() and
-+ // std::numeric_limits::max(), too, but vsnprintf("%c", ...) can't handle
-+ // anything larger than an int. Add in the most extreme values we can without
-+ // exceeding that range.
-+ static const T kMin =
-+ static_cast<remove_volatile_t>(std::numeric_limits<int>::min());
-+ static const T kMax =
-+ static_cast<remove_volatile_t>(std::numeric_limits<int>::max());
-+ vals.insert(vals.end(), {kMin + 1, kMin, kMax - 1, kMax});
-+
-+ for (const T c : vals) {
- const FormatArgImpl args[] = {FormatArgImpl(c)};
- UntypedFormatSpecImpl format("%c");
-- EXPECT_EQ(StrPrint("%c", c), FormatPack(format, absl::MakeSpan(args)));
-+ EXPECT_EQ(StrPrint("%c", static_cast<int>(c)),
-+ FormatPack(format, absl::MakeSpan(args)));
- }
- }
-