diff options
author | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2023-06-17 20:04:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-17 20:04:06 +0200 |
commit | 328a2d083eaa1a71bd47d22df0321cc8a302c511 (patch) | |
tree | e195044da4cae04febced1528f4f30e64e54343d /libtests/buffer.cc | |
parent | 463953bc96ead56227ef3dbf62639eb7e3545ab4 (diff) | |
parent | 0f2ef5e85bce0d64683e8071151711f21fa3e052 (diff) | |
download | qpdf-328a2d083eaa1a71bd47d22df0321cc8a302c511.tar.zst |
Merge pull request #983 from m-holger/buffer
Add new Buffer method copy and deprecate copy constructor / assignment operator
Diffstat (limited to 'libtests/buffer.cc')
-rw-r--r-- | libtests/buffer.cc | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/libtests/buffer.cc b/libtests/buffer.cc index 86a52899..e62a37ca 100644 --- a/libtests/buffer.cc +++ b/libtests/buffer.cc @@ -19,7 +19,34 @@ int main() { { - // Test that buffers can be copied by value. + // Test that buffers can be copied by value using Buffer::copy. + Buffer bc1(2); + unsigned char* bc1p = bc1.getBuffer(); + bc1p[0] = 'Q'; + bc1p[1] = 'W'; + Buffer bc2(bc1.copy()); + bc1p[0] = 'R'; + unsigned char* bc2p = bc2.getBuffer(); + assert(bc2p != bc1p); + assert(bc2p[0] == 'Q'); + assert(bc2p[1] == 'W'); + bc2 = bc1.copy(); + bc2p = bc2.getBuffer(); + assert(bc2p != bc1p); + assert(bc2p[0] == 'R'); + assert(bc2p[1] == 'W'); + } + +#ifdef _MSC_VER +# pragma warning(disable : 4996) +#endif +#if (defined(__GNUC__) || defined(__clang__)) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + { + // Test that buffers can be copied by value using copy construction / assignment. + Buffer::setTestMode(); Buffer bc1(2); unsigned char* bc1p = bc1.getBuffer(); bc1p[0] = 'Q'; @@ -36,6 +63,9 @@ main() assert(bc2p[0] == 'R'); assert(bc2p[1] == 'W'); } +#if (defined(__GNUC__) || defined(__clang__)) +# pragma GCC diagnostic pop +#endif { // Test that buffers can be moved. |