On 03/21/2013 06:05 PM, Eric Blake wrote:
On 03/21/2013 12:29 PM, Stefan Berger wrote:
+tests/test-ber-visitor.o: $(addprefix include/qapi/, ber.h ber-input-visitor.h
ber-output-visitor.h) $(addprefix qapi/, ber-common.c ber-input-visitor.c
ber-output-visitor.c)
+tests/test-ber-visitor$(EXESUF): tests/test-ber-visitor.o $(tools-obj-y)
qapi/ber-output-visitor.o qapi/ber-input-visitor.o qapi/ber-common.o
$(block-obj-y) libqemuutil.a libqemustub.a
Long lines - worth using backslash-newline continuation?
Yes. Others are long but these lines are now the longest.
+++ b/tests/test-ber-visitor.c
@@ -0,0 +1,746 @@
+/*
+ * BER Output Visitor unit-tests.
+ *
+ * Copyright (C) 2011 Red Hat Inc.
+ * Copyright (C) 2011 IBM Corporation
It's 2013 (probably applies to other files earlier in the series, as well).
+static void test_visitor_out_string(TestInputOutputVisitor *data,
+ const void *unused)
+{
+ char *string_in = (char *) "Q E M U", *string_out = NULL;
Does the fact that you have to cast here...
+ Error *errp = NULL;
+
+ visit_type_str(data->ov, &string_in, NULL, &errp);
...indicate a lack of const-correctness on visit_type_str()?
The visitor interface is used for serialization and de-serialization.
Upon de-serialization the underlying visitor can allocate memory for the
string it found while decoding, so you can pass in a pointer to a NULL
pointer and will get a valid pointer to the string back.
Stefan