From 00f891c7e2bd8a0cb0ed5cb3ed0102baa6a20fc8 Mon Sep 17 00:00:00 2001
From: Gabriel Studer <gabriel.studer@unibas.ch>
Date: Tue, 10 Jul 2018 20:43:25 +0200
Subject: [PATCH] make compare_files function more sane

---
 modules/base/src/test_utils/compare_files.cc | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/modules/base/src/test_utils/compare_files.cc b/modules/base/src/test_utils/compare_files.cc
index 7463c94c5..18cff502d 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;
-- 
GitLab