aboutsummaryrefslogtreecommitdiff
path: root/gcc/selftest.c
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2016-06-13 20:58:08 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2016-06-13 20:58:08 +0000
commit755fa6662d06f5ab2f32043bab4728bbf654d29d (patch)
treea014daaa092f85dfc9fc4901e27b06537f61aa15 /gcc/selftest.c
parenta73786e39ff86e8e1d186baaf802b99f8675bbeb (diff)
downloadgcc-755fa6662d06f5ab2f32043bab4728bbf654d29d.zip
gcc-755fa6662d06f5ab2f32043bab4728bbf654d29d.tar.gz
gcc-755fa6662d06f5ab2f32043bab4728bbf654d29d.tar.bz2
selftest: show values when ASSERT_STREQ fails
Rework ASSERT_STREQ so that it prints the actual and expected values to stderr when it fails (by moving it to a helper function). gcc/ChangeLog: * selftest.c (selftest::fail_formatted): New function. (selftest::assert_streq): New function. * selftest.h (selftests::fail_formatted): New decl. (selftest::assert_streq): New decl. (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq. From-SVN: r237404
Diffstat (limited to 'gcc/selftest.c')
-rw-r--r--gcc/selftest.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/selftest.c b/gcc/selftest.c
index de804df..e5332db 100644
--- a/gcc/selftest.c
+++ b/gcc/selftest.c
@@ -44,4 +44,36 @@ selftest::fail (const char *file, int line, const char *msg)
abort ();
}
+/* As "fail", but using printf-style formatted output. */
+
+void
+selftest::fail_formatted (const char *file, int line, const char *fmt, ...)
+{
+ va_list ap;
+
+ fprintf (stderr, "%s:%i: FAIL: ", file, line);
+ /* TODO: add calling function name as well? */
+ va_start (ap, fmt);
+ vfprintf (stderr, fmt, ap);
+ va_end (ap);
+ fprintf (stderr, "\n");
+ abort ();
+}
+
+/* Implementation detail of ASSERT_STREQ. */
+
+void
+selftest::assert_streq (const char *file, int line,
+ const char *desc_expected, const char *desc_actual,
+ const char *val_expected, const char *val_actual)
+{
+ if (0 == strcmp (val_expected, val_actual))
+ ::selftest::pass (file, line, "ASSERT_STREQ");
+ else
+ ::selftest::fail_formatted
+ (file, line, "ASSERT_STREQ (%s, %s) expected=\"%s\" actual=\"%s\"",
+ desc_expected, desc_actual, val_expected, val_actual);
+}
+
+
#endif /* #if CHECKING_P */