aboutsummaryrefslogtreecommitdiffstats
path: root/libtests/qutil.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-06-22 16:12:10 +0200
committerJay Berkenbilt <ejb@ql.org>2019-06-22 16:14:25 +0200
commit1bde5c68a302c99c627f86d8c95226a8a7623ac3 (patch)
treea29bbd128894dd564375ecef0917da310ef1ee6d /libtests/qutil.cc
parent658b5bb3be49d2666b91d35671de71c1cf0a5853 (diff)
downloadqpdf-1bde5c68a302c99c627f86d8c95226a8a7623ac3.tar.zst
Add QUtil::read_file_into_memory
This code was essentially duplicated between test_driver and standalone_fuzz_target_runner.
Diffstat (limited to 'libtests/qutil.cc')
-rw-r--r--libtests/qutil.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/libtests/qutil.cc b/libtests/qutil.cc
index a5c44fc5..ed605a1d 100644
--- a/libtests/qutil.cc
+++ b/libtests/qutil.cc
@@ -400,7 +400,7 @@ void same_file_test()
assert_same_file("", "qutil.out", false);
}
-void read_lines_from_file_test()
+void read_from_file_test()
{
std::list<std::string> lines = QUtil::read_lines_from_file("other-file");
for (std::list<std::string>::iterator iter = lines.begin();
@@ -408,6 +408,15 @@ void read_lines_from_file_test()
{
std::cout << *iter << std::endl;
}
+ PointerHolder<char> buf;
+ size_t size = 0;
+ QUtil::read_file_into_memory("other-file", buf, size);
+ std::cout << "read " << size << " bytes" << std::endl;
+ char const* p = buf.getPointer();
+ assert(size == 24652);
+ assert(memcmp(p, "This file is used for qutil testing.", 36) == 0);
+ assert(p[59] == static_cast<char>(13));
+ assert(memcmp(p + 24641, "very long.", 10) == 0);
}
void assert_hex_encode(std::string const& input, std::string const& expected)
@@ -472,8 +481,8 @@ int main(int argc, char* argv[])
get_whoami_test();
std::cout << "---- file" << std::endl;
same_file_test();
- std::cout << "---- lines from file" << std::endl;
- read_lines_from_file_test();
+ std::cout << "---- read from file" << std::endl;
+ read_from_file_test();
std::cout << "---- hex encode/decode" << std::endl;
hex_encode_decode_test();
}