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));