diff options
author | Rob Savoye <rob@welcomehome.org> | 2006-10-15 15:46:30 +0000 |
---|---|---|
committer | Rob Savoye <rob@welcomehome.org> | 2006-10-15 15:46:30 +0000 |
commit | ff646916c63267bccf74910ef49bb04e5c853d25 (patch) | |
tree | 1cf08fe2c5d39f9d7b911d1812b67ee2879d1684 | |
parent | 109de73c70c558b70359b9ea2319beb50b75f3af (diff) | |
download | dejagnu-ff646916c63267bccf74910ef49bb04e5c853d25.zip dejagnu-ff646916c63267bccf74910ef49bb04e5c853d25.tar.gz dejagnu-ff646916c63267bccf74910ef49bb04e5c853d25.tar.bz2 |
* dejagnu.h: Add support for for expected failures and
unexpected successes.
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | dejagnu.h | 72 |
2 files changed, 82 insertions, 4 deletions
@@ -1,3 +1,13 @@ +2006-10-15 Rob Savoye <rob@bertha.welcomehome.org> + + * dejagnu.h: Add support for for expected failures and + unexpected successes. + +2005-05-06 Andrew Fyfe <a.fyfe@tiscali.co.uk> + + * doc/Makefile.am: Fix install path for man page. + * Makefiles: Regenerated. + 2006-08-29 Ben Elliston <bje@gnu.org> * runtest.exp (usage): Use "triplet" instead of "config name". @@ -243,6 +253,7 @@ * NEWS: Likewise. * doc/dejagnu.texi: Regenerate. +>>>>>>> 1.203 2005-12-24 Ben Elliston <bje@gnu.org> * Makefile.am (doc/dejagnu.texi): Don't use shell redirection, in @@ -409,12 +420,14 @@ * config.guess: Update to most recent version. * config.sub: Likewise. +>>>>>>> 1.169 2005-09-24 Ben Elliston <bje@gnu.org> * packaging/pkg/pkginfo (EMAIL): Update mail address. * lib/rsh.exp: Tidy comments. +>>>>>>> 1.147 2005-07-07 Ben Elliston <bje@gnu.org> * lib/telnet.exp (telnet_transmit): Remove; use standard method. @@ -487,6 +500,7 @@ * config.guess: Update to most recent version. * config.sub: Likewise. +>>>>>>> 1.145 2005-04-28 Mark Kettenis <kettenis@gnu.org> * lib/target.exp (prune_warnings): Add a few more linker @@ -40,6 +40,8 @@ static int passed; static int failed; static int untest; static int unresolve; +static int xfailed; +static int xpassed; static char buffer[512]; @@ -72,6 +74,19 @@ pass (const char* fmt, ...) } inline void +xpass (const char* fmt, ...) +{ + va_list ap; + + passed++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tXPASSED: %s\n", buffer); + wait (); +} + +inline void fail (const char* fmt, ...) { va_list ap; @@ -85,6 +100,19 @@ fail (const char* fmt, ...) } inline void +xfail (const char* fmt, ...) +{ + va_list ap; + + failed++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tXFAILED: %s\n", buffer); + wait (); +} + +inline void untested (const char* fmt, ...) { va_list ap; @@ -127,7 +155,9 @@ totals (void) { printf ("\nTotals:\n"); printf ("\t#passed:\t\t%d\n", passed); - printf ("\t#failed:\t\t%d\n", failed); + printf ("\t#real failed:\t\t%d\n", failed); + if (xfail) + printf ("\t#expected failures:\t\t%d\n", xfailed); if (untest) printf ("\t#untested:\t\t%d\n", untest); if (unresolve) @@ -142,12 +172,12 @@ totals (void) #include <string> const char *outstate_list[] = { - "FAILED: ", "PASSED: ", "UNTESTED: ", "UNRESOLVED: " + "FAILED: ", "PASSED: ", "UNTESTED: ", "UNRESOLVED: ", "XFAILED: ", "XPASSED: " }; const char ** outstate = outstate_list; -enum teststate { FAILED, PASSED, UNTESTED, UNRESOLVED} laststate; +enum teststate { FAILED, PASSED, UNTESTED, UNRESOLVED, XFAILED, XPASSED} laststate; class TestState { private: @@ -159,6 +189,8 @@ class TestState { passed = 0; failed = 0; untest = 0; + xpassed = 0; + xfailed = 0; unresolve = 0; } @@ -186,6 +218,20 @@ class TestState { pass (s); } + void xpass (std::string s) + { + xpassed++; + laststate = PASSED; + lastmsg = s; + std::cout << "\t" << outstate[XPASSED] << s << std::endl; + } + + void xpass (const char *c) + { + std::string s = c; + xpass (s); + } + void fail (std::string s) { failed++; @@ -200,6 +246,20 @@ class TestState { fail (s); } + void xfail (std::string s) + { + xfailed++; + laststate = XFAILED; + lastmsg = s; + std::cout << "\t" << outstate[XFAILED] << s << std::endl; + } + + void xfail (const char *c) + { + std::string s = c; + xfail (s); + } + void untested (std::string s) { untest++; @@ -231,7 +291,11 @@ class TestState { void totals (void) { std::cout << "\t#passed:\t\t" << passed << std::endl; - std::cout << "\t#failed:\t\t" << failed << std::endl; + std::cout << "\t#real failed:\t\t" << failed << std::endl; + if (xfailed) + std::cout << "\t#expected failures:\t\t" << xfailed << std::endl; + if (xpassed) + std::cout << "\t#unexpected passes:\t\t" << xpassed << std::endl; if (untest) std::cout << "\t#untested:\t\t" << untest << std::endl; if (unresolve) |