diff --git a/libcxx/include/__format/buffer.h b/libcxx/include/__format/buffer.h
--- a/libcxx/include/__format/buffer.h
+++ b/libcxx/include/__format/buffer.h
@@ -107,7 +107,7 @@
     size_t __n = __str.size();
 
     __flush_on_overflow(__n);
-    if (__n <= __capacity_) {
+    if (__n < __capacity_) { //  push_back requires the buffer to have room for at least one character (so use <).
       _VSTD::copy_n(__str.data(), __n, _VSTD::addressof(__ptr_[__size_]));
       __size_ += __n;
       return;
@@ -136,7 +136,7 @@
 
     size_t __n = static_cast<size_t>(__last - __first);
     __flush_on_overflow(__n);
-    if (__n <= __capacity_) {
+    if (__n < __capacity_) { //  push_back requires the buffer to have room for at least one character (so use <).
       _VSTD::transform(__first, __last, _VSTD::addressof(__ptr_[__size_]), _VSTD::move(__operation));
       __size_ += __n;
       return;
@@ -158,7 +158,7 @@
   /// A \c fill_n wrapper.
   _LIBCPP_HIDE_FROM_ABI void __fill(size_t __n, _CharT __value) {
     __flush_on_overflow(__n);
-    if (__n <= __capacity_) {
+    if (__n < __capacity_) { //  push_back requires the buffer to have room for at least one character (so use <).
       _VSTD::fill_n(_VSTD::addressof(__ptr_[__size_]), __n, __value);
       __size_ += __n;
       return;
diff --git a/libcxx/test/std/utilities/format/format.functions/format_tests.h b/libcxx/test/std/utilities/format/format.functions/format_tests.h
--- a/libcxx/test/std/utilities/format/format.functions/format_tests.h
+++ b/libcxx/test/std/utilities/format/format.functions/format_tests.h
@@ -77,6 +77,397 @@
   return result;
 }
 
+template <class CharT, class TestFunction>
+void format_test_buffer_copy(TestFunction check) {
+  // *** copy ***
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(
+      SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+      SV("{}"),
+      SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  // *** copy + push_back ***
+
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "X"),
+        SV("{}X"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "X"),
+        SV("{}X"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "X"),
+        SV("{}X"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "X"),
+        SV("{}X"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(
+      SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "X"),
+      SV("{}X"),
+      SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  // ***  push_back + copy ***
+
+  check(SV("X"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("X{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("X"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("X{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("X"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("X{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(SV("X"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+        SV("X{}"),
+        SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+           "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+
+  check(
+      SV("X"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"),
+      SV("X{}"),
+      SV("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+         "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"));
+}
+
+template <class CharT, class TestFunction>
+void format_test_buffer_full(TestFunction check) {
+  // *** fill ***
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"), SV("{:|<64}"), SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("{:|<128}"),
+        SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("{:|<256}"),
+        SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("{:|<512}"),
+        SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("{:|<1024}"),
+        SV(""));
+
+  // *** fill + push_back ***
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "X"),
+        SV("{:|<64}X"),
+        SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "X"),
+        SV("{:|<128}X"),
+        SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "X"),
+        SV("{:|<256}X"),
+        SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "X"),
+        SV("{:|<512}X"),
+        SV(""));
+
+  check(SV("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "X"),
+        SV("{:|<1024}X"),
+        SV(""));
+
+  // *** push_back + fill ***
+
+  check(SV("X"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("X{:|<64}"),
+        SV(""));
+
+  check(SV("X"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("X{:|<128}"),
+        SV(""));
+
+  check(SV("X"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("X{:|<256}"),
+        SV(""));
+
+  check(SV("X"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("X{:|<512}"),
+        SV(""));
+
+  check(SV("X"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
+           "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"),
+        SV("X{:|<1024}"),
+        SV(""));
+}
+
 // Using a const ref for world and universe so a string literal will be a character array.
 // When passed as character array W and U have different types.
 template <class CharT, class W, class U, class TestFunction, class ExceptionTest>
@@ -2727,6 +3118,12 @@
       9,
       0);
 
+  // *** Test buffer boundaries format strings ***
+  if constexpr (modus == execution_modus::full) {
+    format_test_buffer_copy<CharT>(check);
+    format_test_buffer_full<CharT>(check);
+  }
+
   // *** Test invalid format strings ***
   check_exception("The format string terminates at a '{'", SV("{"));
   check_exception("The replacement field misses a terminating '}'", SV("{:"), 42);