• E
    tests: Avoid qobject_from_jsonf("%"PRId64) · 29a6731a
    Eric Blake 提交于
    The qobject_from_jsonf() function implements a pseudo-printf
    language for creating a QObject; however, it is hard-coded to
    only parse a subset of formats understood by -Wformat, and is
    not a straight synonym to bare printf().  In particular, any
    use of an int64_t integer works only if the system's
    definition of PRId64 matches what the parser expects; which
    works on glibc (%lld or %ld depending on 32- vs. 64-bit) and
    mingw (%I64d), but not on Mac OS (%qd).  Rather than enhance
    the parser, it is just as easy to force the use of int (where
    the value is small enough) or long long instead of int64_t,
    which we know always works.
    
    This should cover all remaining testsuite uses of
    qobject_from_json[fv]() that were trying to rely on PRId64,
    although my proof for that was done by adding in asserts and
    checking that 'make check' still passed, where such asserts
    are inappropriate during hard freeze.  A later series in 2.9
    may remove all dynamic JSON parsing, but that's a bigger task.
    
    Reported by: G 3 <programmingkidx@gmail.com>
    Signed-off-by: NEric Blake <eblake@redhat.com>
    Message-Id: <1479922617-4400-4-git-send-email-eblake@redhat.com>
    Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
    [Rename value64 to value_ll]
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    29a6731a
check-qjson.c 46.0 KB