From b712bfb46cbf1ab584a9a765a282162aca42a0f2 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Tue, 3 Nov 2009 12:06:00 -0500 Subject: [PATCH] test: Add testDomainShutdownState helper Performs changes needed when stopping a VM (which are currently duplicated in several places, and forgotten in others). --- src/test/test_driver.c | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index df9090ec61..35299d5b45 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -469,6 +469,15 @@ cleanup: return ret; } +static void +testDomainShutdownState(virDomainPtr domain, + virDomainObjPtr privdom) +{ + privdom->state = VIR_DOMAIN_SHUTOFF; + privdom->def->id = -1; + domain->id = -1; +} + static int testOpenDefault(virConnectPtr conn) { int u; struct timeval tv; @@ -1365,19 +1374,17 @@ static int testDestroyDomain (virDomainPtr domain) goto cleanup; } - privdom->state = VIR_DOMAIN_SHUTOFF; - privdom->def->id = -1; - domain->id = -1; + testDomainShutdownState(domain, privdom); event = virDomainEventNewFromObj(privdom, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED_DESTROYED); + if (!privdom->persistent) { virDomainRemoveInactive(&privconn->domains, privdom); privdom = NULL; } - ret = 0; cleanup: if (privdom) @@ -1494,19 +1501,18 @@ static int testShutdownDomain (virDomainPtr domain) goto cleanup; } - privdom->state = VIR_DOMAIN_SHUTOFF; - domain->id = -1; - privdom->def->id = -1; + testDomainShutdownState(domain, privdom); event = virDomainEventNewFromObj(privdom, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN); + if (!privdom->persistent) { virDomainRemoveInactive(&privconn->domains, privdom); privdom = NULL; } - ret = 0; + ret = 0; cleanup: if (privdom) virDomainObjUnlock(privdom); @@ -1538,8 +1544,6 @@ static int testRebootDomain (virDomainPtr domain, switch (privdom->def->onReboot) { case VIR_DOMAIN_LIFECYCLE_DESTROY: privdom->state = VIR_DOMAIN_SHUTOFF; - domain->id = -1; - privdom->def->id = -1; break; case VIR_DOMAIN_LIFECYCLE_RESTART: @@ -1548,8 +1552,6 @@ static int testRebootDomain (virDomainPtr domain, case VIR_DOMAIN_LIFECYCLE_PRESERVE: privdom->state = VIR_DOMAIN_SHUTOFF; - domain->id = -1; - privdom->def->id = -1; break; case VIR_DOMAIN_LIFECYCLE_RESTART_RENAME: @@ -1558,15 +1560,15 @@ static int testRebootDomain (virDomainPtr domain, default: privdom->state = VIR_DOMAIN_SHUTOFF; - domain->id = -1; - privdom->def->id = -1; break; } if (privdom->state == VIR_DOMAIN_SHUTOFF) { + testDomainShutdownState(domain, privdom); event = virDomainEventNewFromObj(privdom, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN); + if (!privdom->persistent) { virDomainRemoveInactive(&privconn->domains, privdom); @@ -1575,7 +1577,6 @@ static int testRebootDomain (virDomainPtr domain, } ret = 0; - cleanup: if (privdom) virDomainObjUnlock(privdom); @@ -1689,17 +1690,18 @@ static int testDomainSave(virDomainPtr domain, } fd = -1; - privdom->state = VIR_DOMAIN_SHUTOFF; + testDomainShutdownState(domain, privdom); event = virDomainEventNewFromObj(privdom, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED_SAVED); + if (!privdom->persistent) { virDomainRemoveInactive(&privconn->domains, privdom); privdom = NULL; } - ret = 0; + ret = 0; cleanup: VIR_FREE(xml); @@ -1842,17 +1844,19 @@ static int testDomainCoreDump(virDomainPtr domain, domain->name, to); goto cleanup; } - privdom->state = VIR_DOMAIN_SHUTOFF; + + testDomainShutdownState(domain, privdom); event = virDomainEventNewFromObj(privdom, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED_CRASHED); + if (!privdom->persistent) { virDomainRemoveInactive(&privconn->domains, privdom); privdom = NULL; } - ret = 0; + ret = 0; cleanup: if (fd != -1) close(fd);