diff --git a/modules/base/src/test_utils/compare_files.cc b/modules/base/src/test_utils/compare_files.cc index 7463c94c5e4b260a7fb349b43b6aed68f393b84b..18cff502d6373e2a6ff7ac28435f8cd5f56098a9 100644 --- a/modules/base/src/test_utils/compare_files.cc +++ b/modules/base/src/test_utils/compare_files.cc @@ -37,17 +37,18 @@ bool compare_files(const String& test, const String& gold_standard) } String test_line, gold_line; while (true) { - bool test_end = !std::getline(test_stream, test_line); - bool gold_end = !std::getline(gold_stream, gold_line); - if (!(test_end || gold_end)) { + bool test_read = std::getline(test_stream, test_line); + bool gold_read = std::getline(gold_stream, gold_line); + if (!test_read && !gold_read) { + // nothing to read anymore in any of the files return true; } - if (!test_end) { + if (gold_read && !test_read) { std::cerr << gold_standard << " contains additional line(s):" << std::endl << gold_line << std::endl; return false; } - if (!gold_end) { + if (test_read && !gold_read) { std::cerr << test << " contains additional line(s):" << std::endl << test_line << std::endl; return false;