Merge fix for Bug#53303 from 5.1-bugteam

text conflict: unittest/examples/Makefile.am
This commit is contained in:
Tor Didriksen 2010-06-10 13:21:35 +02:00
commit ce5927dc89
4 changed files with 23 additions and 11 deletions

View File

@ -20,4 +20,5 @@ AM_LDFLAGS = -L$(top_builddir)/unittest/mytap
LDADD = -lmytap LDADD = -lmytap
noinst_PROGRAMS = simple-t skip-t todo-t skip_all-t no_plan-t core-t # We omit core-t here, since it will always fail.
noinst_PROGRAMS = simple-t skip-t todo-t skip_all-t no_plan-t

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2006 MySQL AB /* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -20,14 +20,19 @@
/* /*
Sometimes, the number of tests is not known beforehand. In those Sometimes, the number of tests is not known beforehand. In those
cases, the plan can be omitted and will instead be written at the cases, you should invoke plan(NO_PLAN).
end of the test (inside exit_status()). The plan will be printed at the end of the test (inside exit_status()).
Use this sparingly, it is a last resort: planning how many tests you Use this sparingly, it is a last resort: planning how many tests you
are going to run will help you catch that offending case when some are going to run will help you catch that offending case when some
tests are skipped for an unknown reason. tests are skipped for an unknown reason.
*/ */
int main() { int main() {
/*
We recommend calling plan(NO_PLAN), but want to verify that
omitting the call works as well.
plan(NO_PLAN);
*/
ok(1, " "); ok(1, " ");
ok(1, " "); ok(1, " ");
ok(1, " "); ok(1, " ");

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2006 MySQL AB /* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -50,7 +50,7 @@
@ingroup MyTAP_Internal @ingroup MyTAP_Internal
*/ */
static TEST_DATA g_test = { 0, 0, 0, "" }; static TEST_DATA g_test = { NO_PLAN, 0, 0, "" };
/** /**
Output stream for test report message. Output stream for test report message.
@ -84,6 +84,7 @@ vemit_tap(int pass, char const *fmt, va_list ap)
(fmt && *fmt) ? " - " : ""); (fmt && *fmt) ? " - " : "");
if (fmt && *fmt) if (fmt && *fmt)
vfprintf(tapout, fmt, ap); vfprintf(tapout, fmt, ap);
fflush(tapout);
} }
@ -106,6 +107,7 @@ static void
emit_dir(const char *dir, const char *why) emit_dir(const char *dir, const char *why)
{ {
fprintf(tapout, " # %s %s", dir, why); fprintf(tapout, " # %s %s", dir, why);
fflush(tapout);
} }
@ -118,6 +120,7 @@ static void
emit_endl() emit_endl()
{ {
fprintf(tapout, "\n"); fprintf(tapout, "\n");
fflush(tapout);
} }
static void static void
@ -204,7 +207,10 @@ plan(int count)
break; break;
default: default:
if (count > 0) if (count > 0)
{
fprintf(tapout, "1..%d\n", count); fprintf(tapout, "1..%d\n", count);
fflush(tapout);
}
break; break;
} }
} }
@ -217,6 +223,7 @@ skip_all(char const *reason, ...)
va_start(ap, reason); va_start(ap, reason);
fprintf(tapout, "1..0 # skip "); fprintf(tapout, "1..0 # skip ");
vfprintf(tapout, reason, ap); vfprintf(tapout, reason, ap);
fflush(tapout);
va_end(ap); va_end(ap);
exit(0); exit(0);
} }

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2006 MySQL AB /* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -90,10 +90,9 @@ extern int skip_big_tests;
/** /**
Set number of tests that is planned to execute. Set number of tests that is planned to execute.
The function also accepts the predefined constant The function also accepts the predefined constant <code>NO_PLAN</code>.
<code>NO_PLAN</code>. If the function is not called, it is as if If invoked with this constant -- or not invoked at all --
it was called with <code>NO_PLAN</code>, i.e., the test plan will the test plan will be printed after all the test lines.
be printed after all the test lines.
The plan() function will install signal handlers for all signals The plan() function will install signal handlers for all signals
that generate a core, so if you want to override these signals, do that generate a core, so if you want to override these signals, do