[libvirt] [PATCH 02/12] test: utils: Add helpers for automatic numbering of test cases
John Ferlan
jferlan at redhat.com
Thu Jan 29 19:23:52 UTC 2015
I don't see this being used anywhere in this set of patches... I assume
you have some other upcoming patch series that will use it...
NITs
On 01/28/2015 05:30 AM, Peter Krempa wrote:
> Adding or reordering test cases is usually a pain due to static test
> case names that are then passed to virtTestRun(). To ease the numbering
> of test cases, this patch adds two simple helpers that generate the test
> names according to the order they are run. The test name can be
> configured via the reset function.
>
> This will allow us to freely add test cases in mid of test groups
s/in mid of/in the middle of/
> without the need to re-number the rest of test cases.
> ---
> tests/testutils.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
> tests/testutils.h | 3 +++
> 2 files changed, 49 insertions(+)
>
> diff --git a/tests/testutils.c b/tests/testutils.c
> index 9a79f98..c7d2615 100644
> --- a/tests/testutils.c
> +++ b/tests/testutils.c
> @@ -986,3 +986,49 @@ virDomainXMLOptionPtr virTestGenericDomainXMLConfInit(void)
> &virTestGenericPrivateDataCallbacks,
> NULL);
> }
> +
> +
> +static int virtTestCounter;
> +static char virtTestCounterStr[128];
> +static char *virtTestCounterPrefixEndOffset;
> +
> +
> +/**
> + * virtTestCounterReset:
> + * @prefix: name of the test group
> + *
> + * Resets the counter and sets up the test group name to use with
> + * virtTestCounterNext(). This function is not thread safe.
> + */
> +void
> +virtTestCounterReset(const char *prefix)
> +{
> + virtTestCounter = 0;
Not that it'd happen, but if the prefix was larger than 128
characters... ;-)
> +
> + ignore_value(virStrcpyStatic(virtTestCounterStr, prefix));
> + virtTestCounterPrefixEndOffset = strchrnul(virtTestCounterStr, '\0');
> +}
> +
> +
> +/**
> + * virtTestCounterNext:
> + *
> + * This function is designed to ease test creation and reordering by adding
> + * a way to do automagic test case numbring.
s/numbring/numbering
> + *
> + * Returns string consisting of test name prefix configured via
> + * virtTestCounterReset() and a number that increments in every call of this
> + * function. This function is not thread safe.
> + */
> +const char
> +*virtTestCounterNext(void)
> +{
> + size_t len = ARRAY_CARDINALITY(virtTestCounterStr);
> +
> + /* calculate length of the rest of the string */
> + len -= (virtTestCounterPrefixEndOffset - virtTestCounterStr);
> +
> + snprintf(virtTestCounterPrefixEndOffset, len, "%d", ++virtTestCounter);
> +
> + return virtTestCounterStr;
> +}
> diff --git a/tests/testutils.h b/tests/testutils.h
> index d78818d..155b30f 100644
> --- a/tests/testutils.h
> +++ b/tests/testutils.h
> @@ -82,6 +82,9 @@ char *virtTestLogContentAndReset(void);
>
> void virtTestQuiesceLibvirtErrors(bool always);
>
> +void virtTestCounterReset(const char *prefix);
> +const char *virtTestCounterNext(void);
> +
> int virtTestMain(int argc,
> char **argv,
> int (*func)(void));
>
More information about the libvir-list
mailing list