[libcxx-commits] [PATCH] D72520: [libcxx] [test] Portability fix of std::basic_filebuf::overflow() test.

Andrey Maksimov via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jan 20 10:35:39 PST 2020


amakc11 updated this revision to Diff 239165.
amakc11 added a comment.
Herald added a reviewer: mclow.lists.

The first parameter of `pubsetbuf` method is also a pointer, so zero is changed to` nullptr`. Missed this in the original patch.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72520/new/

https://reviews.llvm.org/D72520

Files:
  libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp


Index: libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp
===================================================================
--- libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp
+++ libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/overflow.pass.cpp
@@ -43,13 +43,14 @@
         test_buf<char> f;
         assert(f.open("overflow.dat", std::ios_base::out) != 0);
         assert(f.is_open());
-        assert(f.pbase() == 0);
-        assert(f.pptr() == 0);
-        assert(f.epptr() == 0);
+        assert(f.pbase() == nullptr);
+        assert(f.pptr()  == nullptr);
+        assert(f.epptr() == nullptr);
         assert(f.overflow('a') == 'a');
-        assert(f.pbase() != 0);
-        assert(f.pptr() == f.pbase());
-        assert(f.epptr() - f.pbase() == 4095);
+        assert((f.pptr() == f.pbase()) || (f.pbase() == nullptr) || (f.pptr() - f.pbase() == 1));
+        LIBCPP_ASSERT(f.pbase() != nullptr);
+        LIBCPP_ASSERT(f.pptr()  == f.pbase());
+        LIBCPP_ASSERT(f.epptr() - f.pbase() == 4095);
     }
     {
         test_buf<char> f;
@@ -60,16 +61,16 @@
     std::remove("overflow.dat");
     {
         test_buf<char> f;
-        f.pubsetbuf(0, 0);
+        f.pubsetbuf(nullptr, 0);
         assert(f.open("overflow.dat", std::ios_base::out) != 0);
         assert(f.is_open());
-        assert(f.pbase() == 0);
-        assert(f.pptr() == 0);
-        assert(f.epptr() == 0);
+        assert(f.pbase() == nullptr);
+        assert(f.pptr()  == nullptr);
+        assert(f.epptr() == nullptr);
         assert(f.overflow('a') == 'a');
-        assert(f.pbase() == 0);
-        assert(f.pptr() == 0);
-        assert(f.epptr() == 0);
+        assert(f.pbase() == nullptr);
+        assert(f.pptr()  == nullptr);
+        assert(f.epptr() == nullptr);
     }
     {
         test_buf<char> f;
@@ -82,13 +83,14 @@
         test_buf<wchar_t> f;
         assert(f.open("overflow.dat", std::ios_base::out) != 0);
         assert(f.is_open());
-        assert(f.pbase() == 0);
-        assert(f.pptr() == 0);
-        assert(f.epptr() == 0);
+        assert(f.pbase() == nullptr);
+        assert(f.pptr()  == nullptr);
+        assert(f.epptr() == nullptr);
         assert(f.overflow(L'a') == L'a');
-        assert(f.pbase() != 0);
-        assert(f.pptr() == f.pbase());
-        assert(f.epptr() - f.pbase() == 4095);
+        assert((f.pptr() == f.pbase()) || (f.pbase() == nullptr) || (f.pptr() - f.pbase() == 1));
+        LIBCPP_ASSERT(f.pbase() != nullptr);
+        LIBCPP_ASSERT(f.pptr()  == f.pbase());
+        LIBCPP_ASSERT(f.epptr() - f.pbase() == 4095);
     }
     {
         test_buf<wchar_t> f;
@@ -99,16 +101,16 @@
     std::remove("overflow.dat");
     {
         test_buf<wchar_t> f;
-        f.pubsetbuf(0, 0);
+        f.pubsetbuf(nullptr, 0);
         assert(f.open("overflow.dat", std::ios_base::out) != 0);
         assert(f.is_open());
-        assert(f.pbase() == 0);
-        assert(f.pptr() == 0);
-        assert(f.epptr() == 0);
+        assert(f.pbase() == nullptr);
+        assert(f.pptr()  == nullptr);
+        assert(f.epptr() == nullptr);
         assert(f.overflow(L'a') == L'a');
-        assert(f.pbase() == 0);
-        assert(f.pptr() == 0);
-        assert(f.epptr() == 0);
+        assert(f.pbase() == nullptr);
+        assert(f.pptr()  == nullptr);
+        assert(f.epptr() == nullptr);
     }
     {
         test_buf<wchar_t> f;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72520.239165.patch
Type: text/x-patch
Size: 3492 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20200120/0253f13c/attachment.bin>


More information about the libcxx-commits mailing list