Add better error messaging to several tests

Message ID 877d5bid8x.fsf@redhat.com
State New
Headers
Series Add better error messaging to several tests |

Commit Message

Dodji Seketeli June 20, 2022, 3:08 p.m. UTC
  Hello,

When test-read-dwarf and test-diff-filter fail, it's important to know
what exact command line failed.  This patch makes these tests display
the failing command.

	* tests/test-diff-filter.cc (test_task::perform): Display the
	failing command.
	* tests/test-read-common.cc (test_task::run_abidw): Likewise.
	* tests/test-read-common.h (test_task::run_diff): Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
 tests/test-diff-filter.cc | 3 +++
 tests/test-read-common.cc | 8 +++++---
 tests/test-read-common.h  | 4 ++++
 3 files changed, 12 insertions(+), 3 deletions(-)
  

Patch

diff --git a/tests/test-diff-filter.cc b/tests/test-diff-filter.cc
index e90adafe..72a1bc93 100644
--- a/tests/test-diff-filter.cc
+++ b/tests/test-diff-filter.cc
@@ -902,6 +902,9 @@  struct test_task : public abigail::workers::task
       }
     else
       is_ok = false;
+
+    if (!abidiff_ok)
+      error_message += "cmd failed: " + cmd;
   }
 }; //end struct test_task.
 
diff --git a/tests/test-read-common.cc b/tests/test-read-common.cc
index b441945c..b794a311 100644
--- a/tests/test-read-common.cc
+++ b/tests/test-read-common.cc
@@ -108,7 +108,8 @@  test_task::run_abidw(const string& extargs)
         + in_abi_path
         + "\nand:\n"
         + out_abi_path
-        + "\n";
+        + "\n"
+	+ "command was: '" + cmd + "'\n";
 
       return false;
     }
@@ -131,11 +132,12 @@  test_task::run_diff()
   string cmd = "diff -u " + in_abi_path + " " + out_abi_path;
   if (system(cmd.c_str()))
     {
-      error_message = string("ABIs differ:\n")
+      error_message = string("ABI files differ:\n")
         + in_abi_path
         + "\nand:\n"
         + out_abi_path
-        + "\n";
+        + "\n"
+	+ "command was: '" + cmd + "'\n";
 
       return false;
     }
diff --git a/tests/test-read-common.h b/tests/test-read-common.h
index 00d4d1d1..4277896a 100644
--- a/tests/test-read-common.h
+++ b/tests/test-read-common.h
@@ -101,6 +101,10 @@  struct test_task : public abigail::workers::task
   bool
   set_out_abi_path()
   {
+    if (!spec.out_abi_path)
+      // No output abi path was specified in the spec, so get out.
+      return false;
+
     out_abi_path = out_abi_base + spec.out_abi_path;
     if (!abigail::tools_utils::ensure_parent_dir_created(out_abi_path))
       {