ifs.seekg (0, std::ios::beg);
- std::vector<uint8_t> raw_data (data, data + size);
+ std::vector<uint8_t> raw_data;
std::vector<uint8_t> golden_data;
+ try {
+ raw_data = std::vector<uint8_t> (data, data + size);
+ } catch (...) {
+ std::cerr << "Failed to allocate memory for raw data\n";
+ return -1;
+ }
+
try {
golden_data.reserve (size);
} catch (...) {
return -1;
}
- golden_data.insert (golden_data.begin (), std::istreambuf_iterator<char> (ifs),
- std::istreambuf_iterator<char> ());
+ try {
+ golden_data.insert (golden_data.begin (), std::istreambuf_iterator<char> (ifs),
+ std::istreambuf_iterator<char> ());
+ } catch (...) {
+ std::cerr << "Failed to construct golden data\n";
+ return -1;
+ }
- if (golden_data.end () !=
- std::mismatch (golden_data.begin (), golden_data.end (), raw_data.begin ()).first) {
- std::cerr << "Output data mismatch\n";
+ try {
+ if (golden_data.end () !=
+ std::mismatch (golden_data.begin (), golden_data.end (), raw_data.begin ()).first) {
+ std::cerr << "Output data mismatch\n";
+ return -1;
+ }
+ } catch (...) {
+ std::cerr << "Failed to invoke mismatch\n";
return -1;
}