From d82ea6ec4e5898fcd7bffff2809f7bf0e1200d4c Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Tue, 6 Aug 2013 18:36:30 -0400 Subject: [PATCH] test: Allow specifying object transient state in driver XML Similar to the runstate commit, allow a boolean element for setting domain persistence at driver startup. --- src/test/test_driver.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 48b5ec1430..87a87cce54 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -159,6 +159,7 @@ typedef struct _testDomainNamespaceDef testDomainNamespaceDef; typedef testDomainNamespaceDef *testDomainNamespaceDefPtr; struct _testDomainNamespaceDef { int runstate; + bool transient; }; static void @@ -189,6 +190,13 @@ testDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED, if (VIR_ALLOC(nsdata) < 0) return -1; + tmp = virXPathBoolean("boolean(./test:transient)", ctxt); + if (tmp == -1) { + virReportError(VIR_ERR_XML_ERROR, "%s", _("invalid transient")); + goto error; + } + nsdata->transient = tmp; + tmp = virXPathUInt("string(./test:runstate)", ctxt, &tmpuint); if (tmp == 0) { if (tmpuint >= VIR_DOMAIN_LAST) { @@ -205,6 +213,12 @@ testDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED, goto error; } + if (nsdata->transient && nsdata->runstate == VIR_DOMAIN_SHUTOFF) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("transient domain cannot have runstate 'shutoff'")); + goto error; + } + *data = nsdata; return 0; @@ -922,7 +936,7 @@ testParseDomains(testConnPtr privconn, } nsdata = def->namespaceData; - obj->persistent = 1; + obj->persistent = !nsdata->transient; if (nsdata->runstate != VIR_DOMAIN_SHUTOFF) { if (testDomainStartState(privconn, obj, -- GitLab