Commit 5fcfeb08 authored by Tor Didriksen's avatar Tor Didriksen

Merge fix for Bug#53303 from 5.1-bugteam

text conflict: unittest/examples/Makefile.am
parents ad92ee12 e3b4d331
......@@ -20,4 +20,5 @@ AM_LDFLAGS = -L$(top_builddir)/unittest/mytap
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
/* 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
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
cases, the plan can be omitted and will instead be written at the
end of the test (inside exit_status()).
cases, you should invoke plan(NO_PLAN).
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
are going to run will help you catch that offending case when some
tests are skipped for an unknown reason.
*/
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, " ");
......
/* 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
it under the terms of the GNU General Public License as published by
......@@ -50,7 +50,7 @@
@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.
......@@ -84,6 +84,7 @@ vemit_tap(int pass, char const *fmt, va_list ap)
(fmt && *fmt) ? " - " : "");
if (fmt && *fmt)
vfprintf(tapout, fmt, ap);
fflush(tapout);
}
......@@ -106,6 +107,7 @@ static void
emit_dir(const char *dir, const char *why)
{
fprintf(tapout, " # %s %s", dir, why);
fflush(tapout);
}
......@@ -118,6 +120,7 @@ static void
emit_endl()
{
fprintf(tapout, "\n");
fflush(tapout);
}
static void
......@@ -204,7 +207,10 @@ plan(int count)
break;
default:
if (count > 0)
{
fprintf(tapout, "1..%d\n", count);
fflush(tapout);
}
break;
}
}
......@@ -217,6 +223,7 @@ skip_all(char const *reason, ...)
va_start(ap, reason);
fprintf(tapout, "1..0 # skip ");
vfprintf(tapout, reason, ap);
fflush(tapout);
va_end(ap);
exit(0);
}
......
/* 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
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.
The function also accepts the predefined constant
<code>NO_PLAN</code>. If the function is not called, it is as if
it was called with <code>NO_PLAN</code>, i.e., the test plan will
be printed after all the test lines.
The function also accepts the predefined constant <code>NO_PLAN</code>.
If invoked with this constant -- or not invoked at all --
the test plan will be printed after all the test lines.
The plan() function will install signal handlers for all signals
that generate a core, so if you want to override these signals, do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment