aboutsummaryrefslogtreecommitdiffstats
path: root/libtests
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-11-17 19:06:57 +0100
committerm-holger <m-holger@kubitscheck.org>2023-11-26 13:26:44 +0100
commit9f7f9496ed26a5490b9f2b847806282cd1ae1146 (patch)
tree76cfa7d0735f5f43d0f96e0b33e91291626a9eb5 /libtests
parent4c71c8680a8aed21e356d23d9828ebb37d052342 (diff)
downloadqpdf-9f7f9496ed26a5490b9f2b847806282cd1ae1146.tar.zst
Add Buffer constructors taking std::string parameters
Diffstat (limited to 'libtests')
-rw-r--r--libtests/buffer.cc59
1 files changed, 59 insertions, 0 deletions
diff --git a/libtests/buffer.cc b/libtests/buffer.cc
index e62a37ca..1b87bb7d 100644
--- a/libtests/buffer.cc
+++ b/libtests/buffer.cc
@@ -35,6 +35,21 @@ main()
assert(bc2p != bc1p);
assert(bc2p[0] == 'R');
assert(bc2p[1] == 'W');
+
+ // Test Buffer(std:string&&)
+ Buffer bc3("QW");
+ unsigned char* bc3p = bc3.getBuffer();
+ Buffer bc4(bc3.copy());
+ bc3p[0] = 'R';
+ unsigned char* bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc4p[0] == 'Q');
+ assert(bc4p[1] == 'W');
+ bc4 = bc3.copy();
+ bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc4p[0] == 'R');
+ assert(bc4p[1] == 'W');
}
#ifdef _MSC_VER
@@ -62,6 +77,37 @@ main()
assert(bc2p != bc1p);
assert(bc2p[0] == 'R');
assert(bc2p[1] == 'W');
+
+ // Test Buffer(std:string&&)
+ Buffer bc3("QW");
+ unsigned char* bc3p = bc3.getBuffer();
+ Buffer bc4(bc3);
+ bc3p[0] = 'R';
+ unsigned char* bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc4p[0] == 'Q');
+ assert(bc4p[1] == 'W');
+ bc4 = bc3;
+ bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc2p[0] == 'R');
+ assert(bc2p[1] == 'W');
+
+ // Test Buffer(std:string&)
+ std::string s{"QW"};
+ Buffer bc5(s);
+ unsigned char* bc5p = bc5.getBuffer();
+ Buffer bc6(bc5);
+ bc5p[0] = 'R';
+ unsigned char* bc6p = bc6.getBuffer();
+ assert(bc6p != bc5p);
+ assert(bc6p[0] == 'Q');
+ assert(bc6p[1] == 'W');
+ bc6 = bc5;
+ bc6p = bc6.getBuffer();
+ assert(bc6p != bc5p);
+ assert(bc2p[0] == 'R');
+ assert(bc2p[1] == 'W');
}
#if (defined(__GNUC__) || defined(__clang__))
# pragma GCC diagnostic pop
@@ -82,6 +128,19 @@ main()
Buffer bm3 = std::move(bm2);
unsigned char* bm3p = bm3.getBuffer();
assert(bm3p == bm2p);
+
+ // Test Buffer(dtd::string&&)
+ Buffer bm4("QW");
+ unsigned char* bm4p = bm4.getBuffer();
+ Buffer bm5(std::move(bm4));
+ bm4p[0] = 'R';
+ unsigned char* bm5p = bm5.getBuffer();
+ assert(bm5p == bm4p);
+ assert(bm5p[0] == 'R');
+
+ Buffer bm6 = std::move(bm5);
+ unsigned char* bm6p = bm6.getBuffer();
+ assert(bm6p == bm5p);
}
try {