When this flag is specified, some of the expected output files will be
regenerated with the actual output data. This is a helper for updating
test data.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
tests/testutils.c | 14 +++++++++++---
tests/testutils.h | 1 +
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/tests/testutils.c b/tests/testutils.c
index 857e819..2b0d3b6 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -67,6 +67,7 @@ VIR_LOG_INIT("tests.testutils");
static unsigned int testDebug = -1;
static unsigned int testVerbose = -1;
static unsigned int testExpensive = -1;
+static unsigned int testRegenerate = -1;
#ifdef TEST_OOM
static unsigned int testOOM;
@@ -598,9 +599,8 @@ virtTestCompareToFile(const char *strcontent,
int ret = -1;
char *filecontent = NULL;
char *fixedcontent = NULL;
- bool regenerate = !!virTestGetFlag("VIR_TEST_REGENERATE_OUTPUT");
- if (virtTestLoadFile(filename, &filecontent) < 0 && !regenerate)
+ if (virtTestLoadFile(filename, &filecontent) < 0 &&
!virTestGetRegenerate())
goto failure;
if (filecontent &&
@@ -612,7 +612,7 @@ virtTestCompareToFile(const char *strcontent,
if (STRNEQ_NULLABLE(fixedcontent ? fixedcontent : strcontent,
filecontent)) {
- if (regenerate) {
+ if (virTestGetRegenerate()) {
if (virFileWriteStr(filename, strcontent, 0666) < 0)
goto failure;
goto out;
@@ -716,6 +716,14 @@ virTestGetExpensive(void)
return testExpensive;
}
+unsigned int
+virTestGetRegenerate(void)
+{
+ if (testRegenerate == -1)
+ testRegenerate = virTestGetFlag("VIR_TEST_REGENERATE_OUTPUT");
+ return testRegenerate;
+}
+
int virtTestMain(int argc,
char **argv,
int (*func)(void))
diff --git a/tests/testutils.h b/tests/testutils.h
index ccf1d29..8ef70e4 100644
--- a/tests/testutils.h
+++ b/tests/testutils.h
@@ -77,6 +77,7 @@ int virtTestCompareToFile(const char *strcontent,
unsigned int virTestGetDebug(void);
unsigned int virTestGetVerbose(void);
unsigned int virTestGetExpensive(void);
+unsigned int virTestGetRegenerate(void);
# define VIR_TEST_DEBUG(...) \
do { \
--
2.7.0