• Mark Rutland's avatar
    kunit: log numbers in decimal and hex · 7b1dd2cf
    Mark Rutland authored
    When KUNIT_EXPECT_EQ() or KUNIT_ASSERT_EQ() log a failure, they log the
    two values being compared, with numerical values logged in decimal.
    
    In some cases, decimal output is painful to consume, and hexadecimal
    output would be more helpful. For example, this is the case for tests
    I'm currently developing for the arm64 insn encoding/decoding code,
    where comparing two 32-bit instruction opcodes results in output such
    as:
    
    |  # test_insn_add_shifted_reg: EXPECTATION FAILED at arch/arm64/lib/test_insn.c:2791
    |  Expected obj_insn == gen_insn, but
    |      obj_insn == 2332164128
    |      gen_insn == 1258422304
    
    To make this easier to consume, this patch logs the values in both
    decimal and hexadecimal:
    
    |  # test_insn_add_shifted_reg: EXPECTATION FAILED at arch/arm64/lib/test_insn.c:2791
    |  Expected obj_insn == gen_insn, but
    |      obj_insn == 2332164128 (0x8b020020)
    |      gen_insn == 1258422304 (0x4b020020)
    
    As can be seen from the example, having hexadecimal makes it
    significantly easier for a human to spot which specific bits are
    incorrect.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Brendan Higgins <brendan.higgins@linux.dev>
    Cc: David Gow <davidgow@google.com>
    Cc: linux-kselftest@vger.kernel.org
    Cc: kunit-dev@googlegroups.com
    Acked-by: default avatarDaniel Latypov <dlatypov@google.com>
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    7b1dd2cf
assert.c 6.26 KB