Signed-off-by: Luke Yue <lukedyue@xxxxxxxxx> --- examples/xml/test/testdomfv0.xml | 11 +++++++++ examples/xml/test/testnodeinline.xml | 11 +++++++++ tests/virshtest.c | 36 ++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) diff --git a/examples/xml/test/testdomfv0.xml b/examples/xml/test/testdomfv0.xml index fc209cce29..e60b5d69b7 100644 --- a/examples/xml/test/testdomfv0.xml +++ b/examples/xml/test/testdomfv0.xml @@ -38,4 +38,15 @@ </disk> <graphics type='vnc' port='5904'/> </devices> + <blkiotune> + <weight>800</weight> + <device> + <path>/dev/hda</path> + <weight>700</weight> + <read_bytes_sec>700</read_bytes_sec> + <write_bytes_sec>700</write_bytes_sec> + <read_iops_sec>700</read_iops_sec> + <write_iops_sec>700</write_iops_sec> + </device> + </blkiotune> </domain> diff --git a/examples/xml/test/testnodeinline.xml b/examples/xml/test/testnodeinline.xml index 0ec0f1ace6..78f3c6a671 100644 --- a/examples/xml/test/testnodeinline.xml +++ b/examples/xml/test/testnodeinline.xml @@ -48,6 +48,17 @@ </disk> <graphics type="vnc" port="5904"/> </devices> + <blkiotune> + <weight>800</weight> + <device> + <path>/dev/hda</path> + <weight>700</weight> + <read_bytes_sec>700</read_bytes_sec> + <write_bytes_sec>700</write_bytes_sec> + <read_iops_sec>700</read_iops_sec> + <write_iops_sec>700</write_iops_sec> + </device> + </blkiotune> </domain> <domain type="test"> <name>fc4</name> diff --git a/tests/virshtest.c b/tests/virshtest.c index c1974c46cb..43daf8b9c2 100644 --- a/tests/virshtest.c +++ b/tests/virshtest.c @@ -22,6 +22,7 @@ main(void) # define DOM_UUID "ef861801-45b9-11cb-88e3-afbfe5370493" # define SECURITY_LABEL "libvirt-test (enforcing)" +# define BLKIO_PARAMETER "/dev/hda,700" static const char *dominfo_fc4 = "\ Id: 2\n\ @@ -43,6 +44,14 @@ static const char *domuuid_fc4 = DOM_UUID "\n\n"; static const char *domid_fc4 = "2\n\n"; static const char *domname_fc4 = "fc4\n\n"; static const char *domstate_fc4 = "running\n\n"; +static const char *blkioparameters = "\ +weight : 800\n\ +device_weight : " BLKIO_PARAMETER "\n\ +device_read_iops_sec: " BLKIO_PARAMETER "\n\ +device_write_iops_sec: " BLKIO_PARAMETER "\n\ +device_read_bytes_sec: " BLKIO_PARAMETER "\n\ +device_write_bytes_sec: " BLKIO_PARAMETER "\n\ +\n"; static int testFilterLine(char *buffer, const char *toRemove) @@ -250,6 +259,25 @@ static int testCompareDomstateByName(const void *data G_GNUC_UNUSED) return testCompareOutputLit(exp, NULL, argv); } +static int testCompareGetBlkioParameters(const void *data G_GNUC_UNUSED) +{ + const char *const argv[] = { VIRSH_CUSTOM, "blkiotune", "fv0", NULL }; + const char *exp = blkioparameters; + return testCompareOutputLit(exp, NULL, argv); +} + +static int testCompareSetBlkioParameters(const void *data G_GNUC_UNUSED) +{ + const char *const argv[] = { VIRSH_CUSTOM, "blkiotune", "fv0", + "--device-weights", "/dev/hda,500", + "--device-read-iops-sec", "/dev/hda,1000", + "--device-write-iops-sec", "/dev/hda,1000", + "--device-read-bytes-sec", "/dev/hda,26214400", + "--device-write-bytes-sec", "/dev/hda,26214400", NULL }; + const char *exp = "\n"; + return testCompareOutputLit(exp, NULL, argv); +} + struct testInfo { const char *const *argv; const char *result; @@ -334,6 +362,14 @@ mymain(void) testCompareDomstateByName, NULL) != 0) ret = -1; + if (virTestRun("virsh blkiotune (get parameters)", + testCompareGetBlkioParameters, NULL) != 0) + ret = -1; + + if (virTestRun("virsh blkiotune (set parameters)", + testCompareSetBlkioParameters, NULL) != 0) + ret = -1; + /* It's a bit awkward listing result before argument, but that's a * limitation of C99 vararg macros. */ # define DO_TEST(i, result, ...) \ -- 2.32.0