Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp2240288rwb; Wed, 5 Oct 2022 11:03:59 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6e9MFM38pyhCl9XGpb4N6tVimwydfaT1iug/jb9vXdOoE5pGAYu3AiOCKdqLI9QN1tjToi X-Received: by 2002:a65:4689:0:b0:458:764a:221b with SMTP id h9-20020a654689000000b00458764a221bmr901110pgr.296.1664993039428; Wed, 05 Oct 2022 11:03:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664993039; cv=none; d=google.com; s=arc-20160816; b=WQ6xBYRPt6uAgg9IWfbS6R2fX+dW2Xm9M/QPmLRjSiaQAipEvoEBcHHixqJcTLXP7Z 3dHXQYXLdyjl2JxadurhbRcrQISbH1g5Ol/YoxZVooUf98IRlp6rmShpZrxjYAaUbEaJ DA7eiRsd1UaF4FLhHbHDQFlM4UpfMZxOv3agCD1rSNqkHAaOWZREcYtPVntUwMZL+BUv aVL4lCHnJskQCZZ5yH7RljnF4qJVOrbjDyiYtpSn3MhYlkWhdRB31MR4koX6zxiRoXtB vB7hu5O+ZwkrKnZj9GKWaeCvHxg5ShVhi9T4o4sQksUPfx677Y7OWsZkr1J6m7vySeyx Uckw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=yWBJVF8EQEINkl09iXM3AdlGJhji5UqFr0cTuXfdhYk=; b=Ty93OGdo2GOFwXdWm0t6sRcL9UNXi3+bcoyvXbUo2wtfjpoEhxOwev6zznmID0XiiD H9IEATZbDQ4B5nmbcpXre3HSOC3M5BhCxMeFrHz9g2NzHb5OISHW1YhkaGmgbYyCLaIk 3jqIOFGF8tLj6MQ0bX+5uoOcPsdL4OJj6LM94ez0GB0rHd7If4SZtR6SLZjrzAvvvq79 keZNteNXFpt+R1ZLALErRYdTgGzqDBiv4Rmcx1rt9Vy235MpJN7r5vEoXgCjHx7UzdKo 8Zpbnp7yvBKWmIACLfNLYFSO+3pJsS/PmYFOzz8Zv3FV/wZvr5NfbZp5b6zAd/5xEZFd AjSA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x13-20020a17090ab00d00b0020a6dcc726asi2333486pjq.50.2022.10.05.11.03.32; Wed, 05 Oct 2022 11:03:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230033AbiJERwH (ORCPT + 99 others); Wed, 5 Oct 2022 13:52:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229484AbiJERwF (ORCPT ); Wed, 5 Oct 2022 13:52:05 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2ADA277E8B; Wed, 5 Oct 2022 10:52:04 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8B114106F; Wed, 5 Oct 2022 10:52:10 -0700 (PDT) Received: from lakrids.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id DB74A3F67D; Wed, 5 Oct 2022 10:52:02 -0700 (PDT) From: Mark Rutland To: linux-kernel@vger.kernel.org Cc: brendan.higgins@linux.dev, davidgow@google.com, kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org, mark.rutland@arm.com Subject: [PATCH] kunit: log numbers in decimal and hex Date: Wed, 5 Oct 2022 18:51:49 +0100 Message-Id: <20221005175149.611068-1-mark.rutland@arm.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: Mark Rutland Cc: Brendan Higgins Cc: David Gow Cc: linux-kselftest@vger.kernel.org Cc: kunit-dev@googlegroups.com --- lib/kunit/assert.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/kunit/assert.c b/lib/kunit/assert.c index d00d6d181ee8..24dec5b48722 100644 --- a/lib/kunit/assert.c +++ b/lib/kunit/assert.c @@ -127,13 +127,15 @@ void kunit_binary_assert_format(const struct kunit_assert *assert, binary_assert->text->right_text); if (!is_literal(stream->test, binary_assert->text->left_text, binary_assert->left_value, stream->gfp)) - string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %lld\n", + string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %lld (0x%llx)\n", binary_assert->text->left_text, + binary_assert->left_value, binary_assert->left_value); if (!is_literal(stream->test, binary_assert->text->right_text, binary_assert->right_value, stream->gfp)) - string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %lld", + string_stream_add(stream, KUNIT_SUBSUBTEST_INDENT "%s == %lld (0x%llx)", binary_assert->text->right_text, + binary_assert->right_value, binary_assert->right_value); kunit_assert_print_msg(message, stream); } -- 2.30.2