On Mon, Aug 16, 2021 at 07:13:34PM +0800, Luke Yue wrote:
priv-jobState is used to store dummy job type, and
priv->jobOperation is
used to store dummy job operation, they are initialized to
VIR_DOMAIN_JOB_NONE and VIR_DOMAIN_JOB_OPERATION_UNKNOWN, we can
just change them in other job related APIs as there is no real job in test
driver.
Signed-off-by: Luke Yue <lukedyue(a)gmail.com>
---
src/test/test_driver.c | 89 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 00cc13511a..9306f0e104 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -380,6 +380,10 @@ struct _testDomainObjPrivate {
/* used by get/set time APIs */
long long seconds;
unsigned int nseconds;
+
+ /* used by Job Info APIs */
+ unsigned int jobState;
+ unsigned int jobOperation;
};
@@ -396,6 +400,9 @@ testDomainObjPrivateAlloc(void *opaque)
priv->seconds = 627319920;
priv->nseconds = 0;
+ priv->jobState = VIR_DOMAIN_JOB_NONE;
+ priv->jobOperation = VIR_DOMAIN_JOB_OPERATION_UNKNOWN;
+
return priv;
}
@@ -2681,6 +2688,87 @@ testDomainGetOSType(virDomainPtr dom G_GNUC_UNUSED)
return ret;
}
+static int
+testDomainGetJobInfoImpl(virDomainObj *dom,
+ virDomainJobInfoPtr info)
+{
+ testDomainObjPrivate *priv = dom->privateData;
+
+ memset(info, 0, sizeof(*info));
+
+ info->type = priv->jobState;
+
+ switch (priv->jobState) {
+ case VIR_DOMAIN_JOB_NONE:
+ break;
+
+ case VIR_DOMAIN_JOB_BOUNDED:
+ info->dataTotal = 30 * 1024;
+ info->dataProcessed = 10 * 1024;
+ info->dataRemaining = 20 * 1024;
+ info->timeRemaining = 6000;
+ info->timeElapsed = 4000;
+ info->memTotal = 3 * 1024 * 1024;
+ info->memProcessed = 1024 * 1024;
+ info->memRemaining = 2 * 1024 * 1024;
+ info->fileTotal = 2 * 1024 * 1024;
+ info->fileProcessed = 1024 * 1024 / 2;
+ info->fileRemaining = 3 * 1024 * 1024 / 2;
+ break;
+
+ case VIR_DOMAIN_JOB_UNBOUNDED:
+ info->dataTotal = 30 * 1024;
+ info->dataProcessed = 10 * 1024;
+ info->dataRemaining = 20 * 1024;
+ info->timeElapsed = 4000;
+ info->memTotal = 3 * 1024 * 1024;
+ info->memProcessed = 1024 * 1024;
+ info->memRemaining = 2 * 1024 * 1024;
+ info->fileTotal = 2 * 1024 * 1024;
+ info->fileProcessed = 1024 * 1024 / 2;
+ info->fileRemaining = 3 * 1024 * 1024 / 2;
+ break;
+
+ case VIR_DOMAIN_JOB_COMPLETED:
+ info->timeElapsed = 10000;
+ info->dataTotal = 30 * 1024;
+ info->dataProcessed = 30 * 1024;
+ info->memTotal = 3 * 1024 * 1024;
+ info->memProcessed = 3 * 1024 * 1024;
+ info->fileTotal = 2 * 1024 * 1024;
+ info->fileProcessed = 2 * 1024 * 1024;
+ break;
+
This could be cleared up with some constants and branch fallthroughs,
but that's a minor details, for now this is fine as it is.
Reviewed-by: Martin Kletzander <mkletzan(a)redhat.com>