diff options
author | David Malcolm <dmalcolm@redhat.com> | 2016-06-13 20:58:08 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2016-06-13 20:58:08 +0000 |
commit | 755fa6662d06f5ab2f32043bab4728bbf654d29d (patch) | |
tree | a014daaa092f85dfc9fc4901e27b06537f61aa15 /gcc/selftest.c | |
parent | a73786e39ff86e8e1d186baaf802b99f8675bbeb (diff) | |
download | gcc-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.c | 32 |
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 */ |