Hi Peter, > These test cases parse an XML and format it back. > > You've got a bug in the code formatting the socket into the XML: > > if (def->kvm_features->socket == NULL) { > virBufferAsprintf(&childBuf, " socket='%s'/>\n", > def->kvm_features->socket); > } else { > virBufferAddLit(&childBuf, "/>\n"); > } > > > The above hunk formats the socket only if it's NULL, and skips it if > it's non-null (inverted condition). > Doh! I think it's time for me to take some PTO... Thank you ! However, I tried my best to follow your advice using virBufferEscapeString() so that i can get rid of the condition on the socket but it fails for "feature-off". But this is passing the test suite: if (def->kvm_features->features[j] != VIR_TRISTATE_SWITCH_ABSENT) { virBufferAsprintf(&childBuf, "<%s state='%s'", virDomainKVMTypeToString(j), virTristateSwitchTypeToString(def->kvm_features->features[j])); if (def->kvm_features->socket != NULL) { virBufferEscapeString(&childBuf, " socket='%s'/>\n", def->kvm_features->socket); } else { virBufferAddLit(&childBuf, "/>\n"); } } Is ok if I send my patch like this or would you prefer me to dig more into simplifying the code ? Regards, Anthony