mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
Add unit test for virCgroupGetPercpuStats.
This commit is contained in:
parent
35aebf1118
commit
5eb61e6846
@ -33,6 +33,7 @@
|
|||||||
# include "virlog.h"
|
# include "virlog.h"
|
||||||
# include "virfile.h"
|
# include "virfile.h"
|
||||||
# include "testutilslxc.h"
|
# include "testutilslxc.h"
|
||||||
|
# include "nodeinfo.h"
|
||||||
|
|
||||||
# define VIR_FROM_THIS VIR_FROM_NONE
|
# define VIR_FROM_THIS VIR_FROM_NONE
|
||||||
|
|
||||||
@ -530,6 +531,68 @@ static int testCgroupAvailable(const void *args)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int testCgroupGetPercpuStats(const void *args ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
virCgroupPtr cgroup = NULL;
|
||||||
|
size_t i;
|
||||||
|
int rv, ret = -1;
|
||||||
|
virTypedParameter params[2];
|
||||||
|
|
||||||
|
// TODO: mock nodeGetCPUCount() as well & check 2nd cpu, too
|
||||||
|
unsigned long long expected[] = {
|
||||||
|
1413142688153030
|
||||||
|
};
|
||||||
|
|
||||||
|
if ((rv = virCgroupNewPartition("/virtualmachines", true,
|
||||||
|
(1 << VIR_CGROUP_CONTROLLER_CPU) |
|
||||||
|
(1 << VIR_CGROUP_CONTROLLER_CPUACCT),
|
||||||
|
&cgroup)) < 0) {
|
||||||
|
fprintf(stderr, "Could not create /virtualmachines cgroup: %d\n", -rv);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nodeGetCPUCount() < 1) {
|
||||||
|
fprintf(stderr, "Unexpected: nodeGetCPUCount() yields: %d\n", nodeGetCPUCount());
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((rv = virCgroupGetPercpuStats(cgroup,
|
||||||
|
params,
|
||||||
|
2, 0, 1)) < 0) {
|
||||||
|
fprintf(stderr, "Failed call to virCgroupGetPercpuStats for /virtualmachines cgroup: %d\n", -rv);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_CARDINALITY(expected); i++) {
|
||||||
|
if (!STREQ(params[i].field, VIR_DOMAIN_CPU_STATS_CPUTIME)) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"Wrong parameter name value from virCgroupGetPercpuStats (is: %s)\n",
|
||||||
|
params[i].field);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (params[i].type != VIR_TYPED_PARAM_ULLONG) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"Wrong parameter value type from virCgroupGetPercpuStats (is: %d)\n",
|
||||||
|
params[i].type);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (params[i].value.ul != expected[i]) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"Wrong value from virCgroupGetMemoryUsage (expected %llu)\n",
|
||||||
|
params[i].value.ul);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
virCgroupFree(&cgroup);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static int testCgroupGetMemoryUsage(const void *args ATTRIBUTE_UNUSED)
|
static int testCgroupGetMemoryUsage(const void *args ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
virCgroupPtr cgroup = NULL;
|
virCgroupPtr cgroup = NULL;
|
||||||
@ -735,6 +798,9 @@ mymain(void)
|
|||||||
if (virtTestRun("virCgroupGetMemoryUsage works", testCgroupGetMemoryUsage, NULL) < 0)
|
if (virtTestRun("virCgroupGetMemoryUsage works", testCgroupGetMemoryUsage, NULL) < 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
|
||||||
|
if (virtTestRun("virCgroupGetPercpuStats works", testCgroupGetPercpuStats, NULL) < 0)
|
||||||
|
ret = -1;
|
||||||
|
|
||||||
setenv("VIR_CGROUP_MOCK_MODE", "allinone", 1);
|
setenv("VIR_CGROUP_MOCK_MODE", "allinone", 1);
|
||||||
if (virtTestRun("New cgroup for self (allinone)", testCgroupNewForSelfAllInOne, NULL) < 0)
|
if (virtTestRun("New cgroup for self (allinone)", testCgroupNewForSelfAllInOne, NULL) < 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user