diff options
author | Not Zed <NotZed@HelixCode.com> | 2000-11-24 11:54:55 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2000-11-24 11:54:55 +0800 |
commit | 189cb50426fc12b55a79c67a00064623ec964383 (patch) | |
tree | cdc37cf4d65c4b5a7fb69de104663be4875d0781 /camel/tests/lib/camel-test.h | |
parent | 99e80d6ecf06cc60f2734f87bc974bd9479ba139 (diff) | |
download | gsoc2013-evolution-189cb50426fc12b55a79c67a00064623ec964383.tar gsoc2013-evolution-189cb50426fc12b55a79c67a00064623ec964383.tar.gz gsoc2013-evolution-189cb50426fc12b55a79c67a00064623ec964383.tar.bz2 gsoc2013-evolution-189cb50426fc12b55a79c67a00064623ec964383.tar.lz gsoc2013-evolution-189cb50426fc12b55a79c67a00064623ec964383.tar.xz gsoc2013-evolution-189cb50426fc12b55a79c67a00064623ec964383.tar.zst gsoc2013-evolution-189cb50426fc12b55a79c67a00064623ec964383.zip |
Added at least some explanation of all this stuff.
2000-11-24 Not Zed <NotZed@HelixCode.com>
* tests/README: Added at least some explanation of all this stuff.
* tests/lib/camel-test.h (check_msg): Added a non-gcc version of
the fail command, we dont get the expression that failed, but no
matter. Should be (more) portable now.
(check, check_msg): Put the file/lineno in the default message.
svn path=/trunk/; revision=6657
Diffstat (limited to 'camel/tests/lib/camel-test.h')
-rw-r--r-- | camel/tests/lib/camel-test.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/camel/tests/lib/camel-test.h b/camel/tests/lib/camel-test.h index 8d3c94bd00..6ff8281aeb 100644 --- a/camel/tests/lib/camel-test.h +++ b/camel/tests/lib/camel-test.h @@ -6,9 +6,25 @@ #include <stdlib.h> #include <glib.h> +void camel_test_failv(const char *why, va_list ap); + /* perform a check assertion */ -#define check(x) do {if (!(x)) { camel_test_fail("%s", #x); } } while (0) -#define check_msg(x, y, z...) do {if (!(x)) { camel_test_fail("%s\n\t" #y, #x, ##z); } } while (0) +#define check(x) do {if (!(x)) { camel_test_fail("%s (%d): %s", __FILE__, __LINE__, #x); } } while (0) +/* check with message */ +#ifdef __GNUC__ +#define check_msg(x, y, z...) do {if (!(x)) { camel_test_fail("%s (%d): %s\n\t" #y, __FILE__, __LINE__, #x, ##z); } } while (0) +#else +static void check_msg(int truth, char *fmt, ...) +{ + /* no gcc, we lose the condition that failed, nm */ + if (!truth) { + va_list ap; + va_start(ap, fmt); + camel_test_failv(fmt, ap); + va_end(ap); + } +} +#endif #define check_count(object, expected) do { \ if (CAMEL_OBJECT(object)->ref_count != expected) { \ @@ -41,11 +57,11 @@ void camel_test_pull(void); /* fail a test, with a reason why */ void camel_test_fail(const char *why, ...); +void camel_test_failv(const char *why, va_list ap); /* Set whether a failed test quits. May be nested, but must be called in nonfatal/fatal pairs */ void camel_test_nonfatal(const char *why, ...); -void camel_test_fatal(); - +void camel_test_fatal(void); /* utility functions */ /* compare strings, ignore whitespace though */ |