diff --git a/src/xen/sexpr.c b/src/xen/sexpr.c index 21840608533faf2bf116a2a119b0a1c4efe10887..330280e1cacbeceff0cb21c5a878108dc71bfcf1 100644 --- a/src/xen/sexpr.c +++ b/src/xen/sexpr.c @@ -244,7 +244,9 @@ sexpr2string(const struct sexpr * sexpr, char *buffer, size_t n_buffer) ret += tmp; break; case SEXPR_VALUE: - if (strchr(sexpr->u.value, ' ')) + if (strchr(sexpr->u.value, ' ') || + strchr(sexpr->u.value, ')') || + strchr(sexpr->u.value, '(')) tmp = snprintf(buffer + ret, n_buffer - ret, "'%s'", sexpr->u.value); else diff --git a/tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr b/tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr new file mode 100644 index 0000000000000000000000000000000000000000..f42fc32901dbf8c20eb631dd71b22c666a46de2a --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr @@ -0,0 +1 @@ +(domain (domid 6)(name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d2171f48fb2e068e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/usr/lib/xen/boot/pv-grub-x86_64.gz')(args '(hd0,0)/grub/menu.lst')))(device (vbd (dev 'xvda')(uname 'phy:/dev/MainVG/GuestVG')(mode 'w')))) diff --git a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml new file mode 100644 index 0000000000000000000000000000000000000000..9221bdd7ff664bd6e1f5eeda37152fb6c4f00847 --- /dev/null +++ b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml @@ -0,0 +1,26 @@ + + pvtest + 596a5d21-71f4-8fb2-e068-e2386a5c413e + 430080 + 430080 + 2 + + linux + /usr/lib/xen/boot/pv-grub-x86_64.gz + (hd0,0)/grub/menu.lst + + + destroy + destroy + destroy + + + + + + + + + + + diff --git a/tests/sexpr2xmltest.c b/tests/sexpr2xmltest.c index 8c75c52cabfcb1d49ea4887b3580a0127bbb5319..d62b44f8d69bff40bb21395f2df90bd587643123 100644 --- a/tests/sexpr2xmltest.c +++ b/tests/sexpr2xmltest.c @@ -172,6 +172,8 @@ mymain(int argc, char **argv) DO_TEST("fv-net-ioemu", "fv-net-ioemu", 1); DO_TEST("fv-net-netfront", "fv-net-netfront", 1); + DO_TEST("boot-grub", "boot-grub", 1); + virCapabilitiesFree(caps); return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE); diff --git a/tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr b/tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr new file mode 100644 index 0000000000000000000000000000000000000000..a9d14df68dc653f64f3ac4736e4d96e4c7d6c63a --- /dev/null +++ b/tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr @@ -0,0 +1 @@ +(vm (name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d21-71f4-8fb2-e068-e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/usr/lib/xen/boot/pv-grub-x86_64.gz')(args (hd0,0)/grub/menu.lst)))(device (vbd (dev 'xvda')(uname 'phy:/dev/MainVG/GuestLV')(mode 'w')))) \ No newline at end of file diff --git a/tests/xml2sexprdata/xml2sexpr-boot-grub.xml b/tests/xml2sexprdata/xml2sexpr-boot-grub.xml new file mode 100644 index 0000000000000000000000000000000000000000..b9b1c9f784447e970bd6c06f888ec3c5537627d8 --- /dev/null +++ b/tests/xml2sexprdata/xml2sexpr-boot-grub.xml @@ -0,0 +1,21 @@ + + pvtest + 596a5d2171f48fb2e068e2386a5c413e + + linux + /usr/lib/xen/boot/pv-grub-x86_64.gz + (hd0,0)/grub/menu.lst + + 430080 + 2 + destroy + destroy + destroy + + + + + + + + diff --git a/tests/xml2sexprtest.c b/tests/xml2sexprtest.c index 49b757467de3e84548ba7a4bcc70d5c432511b21..77cf760597e765603277c083dd4453daacc5e5dc 100644 --- a/tests/xml2sexprtest.c +++ b/tests/xml2sexprtest.c @@ -161,6 +161,8 @@ mymain(int argc, char **argv) DO_TEST("fv-net-ioemu", "fv-net-ioemu", "fvtest", 1); DO_TEST("fv-net-netfront", "fv-net-netfront", "fvtest", 1); + DO_TEST("boot-grub", "boot-grub", "fvtest", 1); + virCapabilitiesFree(caps); return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);