Skip to content

Commit

Permalink
test-qobject-input-visitor: Avoid format string ambiguity
Browse files Browse the repository at this point in the history
When visitor_input_test_init_internal()'s argument @ap is null, then
@json_string is interpreted literally, else it's gets %-escapes
interpolated.  This is awkward.

One caller always passes null @ap, and the others never do.  Lift the
building of the QObject into the callers, where it can be done without
such ambiguity.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-Id: <[email protected]>
  • Loading branch information
Markus Armbruster committed Aug 16, 2018
1 parent 69f0cb6 commit eac78bd
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions tests/test-qobject-input-visitor.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,13 @@ static void visitor_input_teardown(TestInputVisitorData *data,
/* The various test_init functions are provided instead of a test setup
function so that the JSON string used by the tests are kept in the test
functions (and not in main()). */
static Visitor *visitor_input_test_init_internal(TestInputVisitorData *data,
bool keyval,
const char *json_string,
va_list *ap)

static Visitor *test_init_internal(TestInputVisitorData *data, bool keyval,
QObject *obj)
{
visitor_input_teardown(data, NULL);

data->obj = qobject_from_jsonv(json_string, ap, &error_abort);
g_assert(data->obj);
data->obj = obj;

if (keyval) {
data->qiv = qobject_input_visitor_new_keyval(data->obj);
Expand All @@ -75,7 +73,8 @@ Visitor *visitor_input_test_init_full(TestInputVisitorData *data,
va_list ap;

va_start(ap, json_string);
v = visitor_input_test_init_internal(data, keyval, json_string, &ap);
v = test_init_internal(data, keyval,
qobject_from_vjsonf_nofail(json_string, ap));
va_end(ap);
return v;
}
Expand All @@ -88,7 +87,8 @@ Visitor *visitor_input_test_init(TestInputVisitorData *data,
va_list ap;

va_start(ap, json_string);
v = visitor_input_test_init_internal(data, false, json_string, &ap);
v = test_init_internal(data, false,
qobject_from_vjsonf_nofail(json_string, ap));
va_end(ap);
return v;
}
Expand All @@ -103,7 +103,8 @@ Visitor *visitor_input_test_init(TestInputVisitorData *data,
static Visitor *visitor_input_test_init_raw(TestInputVisitorData *data,
const char *json_string)
{
return visitor_input_test_init_internal(data, false, json_string, NULL);
return test_init_internal(data, false,
qobject_from_json(json_string, &error_abort));
}

static void test_visitor_in_int(TestInputVisitorData *data,
Expand Down

0 comments on commit eac78bd

Please sign in to comment.