tests: Validate that JSON deflattening fixed nested json pseudo-protocol strings

Sheepdog and possibly others use nested objects for network server and
thus could be specified in a way that libvirt would not parse.

Validates that https://bugzilla.redhat.com/show_bug.cgi?id=1464821
is fixed properly.
This commit is contained in:
Peter Krempa 2017-06-26 19:42:06 +02:00
parent 6d7cdec63d
commit ffdf532328
4 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,11 @@
{
"driver": "raw",
"file": {
"server.host": "10.10.10.10",
"server.port": "7000",
"tag": "",
"driver": "sheepdog",
"server.type": "inet",
"vdi": "Alice"
}
}

View File

@ -0,0 +1,13 @@
{
"driver": "raw",
"file": {
"server": {
"host": "10.10.10.10",
"port": "7000",
"type": "inet"
},
"tag": "",
"driver": "sheepdog",
"vdi": "Alice"
}
}

View File

@ -519,6 +519,7 @@ mymain(void)
DO_TEST_DEFLATTEN("double-key", false);
DO_TEST_DEFLATTEN("concat", true);
DO_TEST_DEFLATTEN("concat-double-key", false);
DO_TEST_DEFLATTEN("qemu-sheepdog", true);
return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}

View File

@ -1575,6 +1575,16 @@ mymain(void)
"<source protocol='sheepdog' name='test'>\n"
" <host name='example.com' port='321'/>\n"
"</source>\n");
TEST_BACKING_PARSE("json:{\"driver\": \"raw\","
"\"file\": {\"server.host\": \"10.10.10.10\","
"\"server.port\": \"7000\","
"\"tag\": \"\","
"\"driver\": \"sheepdog\","
"\"server.type\": \"inet\","
"\"vdi\": \"Alice\"}}",
"<source protocol='sheepdog' name='Alice'>\n"
" <host name='10.10.10.10' port='7000'/>\n"
"</source>\n");
#endif /* WITH_YAJL */
cleanup: