On 25.09.2013 21:15, Cole Robinson wrote:
Similar to the runstate commit, allow a boolean
<test:transient/>
element for setting domain persistence at driver startup.
---
v3:
Validate that transient is not specified with runstate=shutoff
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 48b5ec1..c51c7ca 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/$/ "%s",/
+ _("transient domain cannot have runstate
'shutoff'"));
+ goto error;
+ }
+
*data = nsdata;
return 0;
ACK with this squashed in:
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index c51c7ca..87a87cc 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -214,7 +214,7 @@ testDomainDefNamespaceParse(xmlDocPtr xml
ATTRIBUTE_UNUSED,
}
if (nsdata->transient && nsdata->runstate == VIR_DOMAIN_SHUTOFF) {
- virReportError(VIR_ERR_XML_ERROR,
+ virReportError(VIR_ERR_XML_ERROR, "%s",
_("transient domain cannot have runstate 'shutoff'"));
goto error;
}
Michal
P.S. I have a dream that one day we'll document this XML passed to test
driver.