return ret;
}
+static int
+testBufAddBuffer2(const void *opaque ATTRIBUTE_UNUSED)
+{
+ VIR_AUTOCLEAN(virBuffer) buf1 = VIR_BUFFER_INITIALIZER;
+ VIR_AUTOCLEAN(virBuffer) buf2 = VIR_BUFFER_INITIALIZER;
+
+ /* Intent of this test is to demonstrate a memleak that happen with
+ * virBufferAddBuffer */
+
+ virBufferAddLit(&buf1, "Hello world!\n");
+ virBufferAddLit(&buf2, "Hello world!\n");
+
+ /* Intentional usage error */
+ virBufferAdjustIndent(&buf2, -2);
+
+ virBufferAddBuffer(&buf1, &buf2);
+
+ if (virBufferCurrentContent(&buf1) ||
+ !virBufferCurrentContent(&buf2)) {
+ VIR_TEST_DEBUG("Unexpected buffer content");
+ return -1;
+ }
+
+ return 0;
+}
+
struct testBufAddStrData {
const char *data;
const char *expect;
DO_TEST("Auto-indentation", testBufAutoIndent, 0);
DO_TEST("Trim", testBufTrim, 0);
DO_TEST("AddBuffer", testBufAddBuffer, 0);
+ DO_TEST("AddBuffer2", testBufAddBuffer2, 0);
DO_TEST("set indent", testBufSetIndent, 0);
DO_TEST("autoclean", testBufferAutoclean, 0);