Add better error messaging to several tests
Commit Message
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(-)
@@ -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.
@@ -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;
}
@@ -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))
{