[libvirt] [PATCH v2 0/2] test_driver: implement virDomainSetTime and update virDomainGetTime

Ilias Stamatis (2): test_driver: make testDomainGetTime read time from vm-private data test_driver: implement virDomainSetTime src/test/test_driver.c | 43 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) -- 2.22.0

Until now, testDomainGetTime would always return the same fixed values everytime it was called. By using domain-private data we can make this API return the values previously set with testDomainSetTime, or use the same old fixed values in case testDomainSetTime hasn't been called at all. Signed-off-by: Ilias Stamatis <stamatis.iliass@gmail.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> --- src/test/test_driver.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 6bca4e277f..3e2cd3a9a4 100755 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -392,6 +392,10 @@ struct _testDomainObjPrivate { testDriverPtr driver; bool frozen[2]; /* used by file system related calls */ + + /* used by get/set time APIs */ + long long seconds; + unsigned int nseconds; }; @@ -406,6 +410,9 @@ testDomainObjPrivateAlloc(void *opaque) priv->driver = opaque; priv->frozen[0] = priv->frozen[1] = false; + priv->seconds = 627319920; + priv->nseconds = 0; + return priv; } @@ -2104,6 +2111,7 @@ testDomainGetTime(virDomainPtr dom, unsigned int flags) { virDomainObjPtr vm = NULL; + testDomainObjPrivatePtr priv; int ret = -1; virCheckFlags(0, -1); @@ -2117,8 +2125,9 @@ testDomainGetTime(virDomainPtr dom, goto cleanup; } - *seconds = 627319920; - *nseconds = 0; + priv = vm->privateData; + *seconds = priv->seconds; + *nseconds = priv->nseconds; ret = 0; cleanup: -- 2.22.0

Signed-off-by: Ilias Stamatis <stamatis.iliass@gmail.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> --- src/test/test_driver.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 3e2cd3a9a4..6f18baa265 100755 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -2135,6 +2135,35 @@ testDomainGetTime(virDomainPtr dom, return ret; } + +static int +testDomainSetTime(virDomainPtr dom, + long long seconds, + unsigned int nseconds, + unsigned int flags) +{ + virDomainObjPtr vm = NULL; + testDomainObjPrivatePtr priv; + int ret = -1; + + virCheckFlags(VIR_DOMAIN_TIME_SYNC, ret); + + if (!(vm = testDomObjFromDomain(dom))) + return -1; + + if (virDomainObjCheckActive(vm) < 0) + goto cleanup; + + priv = vm->privateData; + priv->seconds = seconds; + priv->nseconds = nseconds; + + ret = 0; + cleanup: + virDomainObjEndAPI(&vm); + return ret; +} + #define TEST_SAVE_MAGIC "TestGuestMagic" @@ -8923,6 +8952,7 @@ static virHypervisorDriver testHypervisorDriver = { .domainGetInfo = testDomainGetInfo, /* 0.1.1 */ .domainGetState = testDomainGetState, /* 0.9.2 */ .domainGetTime = testDomainGetTime, /* 5.4.0 */ + .domainSetTime = testDomainSetTime, /* 5.7.0 */ .domainSave = testDomainSave, /* 0.3.2 */ .domainSaveFlags = testDomainSaveFlags, /* 0.9.4 */ .domainRestore = testDomainRestore, /* 0.3.2 */ -- 2.22.0

On Wed, Aug 07, 2019 at 12:22:54PM +0200, Ilias Stamatis wrote:
Ilias Stamatis (2): test_driver: make testDomainGetTime read time from vm-private data test_driver: implement virDomainSetTime
src/test/test_driver.c | 43 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-)
Reviewed-by: Erik Skultety <eskultet@redhat.com>
participants (2)
-
Erik Skultety
-
Ilias Stamatis