]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
test_driver: Implement virDomainGetIOThreadInfo
authorLuke Yue <lukedyue@gmail.com>
Wed, 15 Sep 2021 15:30:27 +0000 (23:30 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 23 Sep 2021 11:41:22 +0000 (13:41 +0200)
If we use test driver on different machines, and use 0 as bitmap_size
for virDomainDriverGetIOThreadsConfig(), we would get different results for
the `CPU Affinity`, because it's depending on the host CPU's bitmap. In
order to get a stable result for testing, use result of
virDomainDefGetVcpus() as bitmap_size instead.

Signed-off-by: Luke Yue <lukedyue@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/test/test_driver.c

index 8b8680199dc4044fa56e09e9e6f8d6b054ac1568..a8d102c445e0c1fd9b2fa1011607a03ea071e7cb 100644 (file)
@@ -9597,6 +9597,34 @@ testDomainGetMessages(virDomainPtr dom,
     return rv;
 }
 
+static int
+testDomainGetIOThreadInfo(virDomainPtr dom,
+                          virDomainIOThreadInfoPtr **info,
+                          unsigned int flags)
+{
+    virDomainObj *vm;
+    virDomainDef *targetDef = NULL;
+    unsigned int bitmap_size = 0;
+    int ret = -1;
+
+    virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
+                  VIR_DOMAIN_AFFECT_CONFIG, -1);
+
+    if (!(vm = testDomObjFromDomain(dom)))
+        goto cleanup;
+
+    if (!(targetDef = virDomainObjGetOneDef(vm, flags)))
+        goto cleanup;
+
+    bitmap_size = virDomainDefGetVcpus(targetDef);
+
+    ret = virDomainDriverGetIOThreadsConfig(targetDef, info, bitmap_size);
+
+ cleanup:
+    virDomainObjEndAPI(&vm);
+    return ret;
+}
+
 typedef enum {
     VIR_DOMAIN_IOTHREAD_ACTION_ADD,
     VIR_DOMAIN_IOTHREAD_ACTION_DEL,
@@ -9792,6 +9820,7 @@ static virHypervisorDriver testHypervisorDriver = {
     .domainGetVcpus = testDomainGetVcpus, /* 0.7.3 */
     .domainGetVcpuPinInfo = testDomainGetVcpuPinInfo, /* 1.2.18 */
     .domainGetMaxVcpus = testDomainGetMaxVcpus, /* 0.7.3 */
+    .domainGetIOThreadInfo = testDomainGetIOThreadInfo, /* 7.8.0 */
     .domainAddIOThread = testDomainAddIOThread, /* 7.8.0 */
     .domainDelIOThread = testDomainDelIOThread, /* 7.8.0 */
     .domainGetSecurityLabel = testDomainGetSecurityLabel, /* 7.5.0 */