Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp1579667rwi; Fri, 14 Oct 2022 22:41:42 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6bIaZ7/EC8s7ObAsnynnNrK/VvPi9ppmv+hG8zyqhQxVGrQOT9hpHjLP4BV8qyeJpyLCZI X-Received: by 2002:a17:907:2c59:b0:78d:8e03:134 with SMTP id hf25-20020a1709072c5900b0078d8e030134mr953689ejc.310.1665812502719; Fri, 14 Oct 2022 22:41:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665812502; cv=none; d=google.com; s=arc-20160816; b=Nlk8sokn09uisdpEPGLruqVDTTAGNviWuVlZUrbEBaiLSLCXToM6uj0oIcJn+omoKJ XCrAE67LNkOukydZp5aO0O+VxGeaLh/8kyLUMMV7vcoOjj+vjhhMiiTz4KSpcCSp6ns6 0EcOTGUNlOh5huiOPBrFzEcfepQkMfHzqsI9dowcFiYvfZuFYdu55uwymKjNsB+CefUC 5ETM5ag7xzxsFt8zWgIzoNwY5XYP9eetMqnuYgvZeEfpKECsNYOH2A3vIghkcwysgcji xtkxqK1HMgBTGYOCV8ctkYHvZwMc7V1OzflLJdsDEu/XJRyfZFA4a7+i+NKQ3ACUliO4 zZDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=gaRuIOy5mipxC/DcG4OUxK58zUai1nT9d4WWV0cqyO8=; b=YIruasc0oHFZuhexiDfofA6rbZPJRvzP5jrjs7ECpAZaKcleMpST0PTc56PoNAt6fI 7ZlomP3wIGjEJO7UzKN/vQvPMnufQnmX3r9Qdq3g6MzwJUf7JDQQCWIq6uinOBATnrbw fvIehpIq6m9bVwxQo9nwFuNTg1xnVDVSusp+/4mxfoLfYDbsZWY0fDXeniVO8OeB+yaF 50JSzhEA4oB8oZH+7Z9a7HoBNkS9kHCBrH4EURTl4Y4x6Ip4dRf29Hhav8TvCJmijVlV OsySNzQO8LTLHeIUtuxfRnxwJZSHla85axXNlU12Uao/Hr7UY0V16cDS0k6+G6ZRgR7s YP3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=IszlE+ns; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bv24-20020a170906b1d800b0078dc3be6508si3789468ejb.192.2022.10.14.22.41.15; Fri, 14 Oct 2022 22:41:42 -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; dkim=pass header.i=@google.com header.s=20210112 header.b=IszlE+ns; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229720AbiJOEEx (ORCPT + 99 others); Sat, 15 Oct 2022 00:04:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229578AbiJOEEt (ORCPT ); Sat, 15 Oct 2022 00:04:49 -0400 Received: from mail-ua1-x92e.google.com (mail-ua1-x92e.google.com [IPv6:2607:f8b0:4864:20::92e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1BAF26E9 for ; Fri, 14 Oct 2022 21:04:45 -0700 (PDT) Received: by mail-ua1-x92e.google.com with SMTP id p4so2618507uao.0 for ; Fri, 14 Oct 2022 21:04:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=gaRuIOy5mipxC/DcG4OUxK58zUai1nT9d4WWV0cqyO8=; b=IszlE+nsJk2T1FzF4PpZXEdi2LN8qHNRhvPsuS12/3ruJQ23aBGF/V8KITeyrHkY9X Tzkie3tfTYo7X1JXlsKbzRpRsXTnfgha+GpWtbkIt1Ps9Lj0634OCqEBAwO+l15G732A e2Zi0S6hVyUbSZP/5P68DfpgFs+pYBjjvaQmB1yG2gwU0iBE/pbNFD481RAnRmBjNseA /lpY2DERASTvoFUrVEdSnAmOZHz3eEeIzgSNrE3RhD56vUzvJuflRO9hm1wNnu34jG16 IP74UVFKUar3t/Z9w7l1K3+dd1zZCgMVCvclxFkZe0KC5hlR6qU/mwhLR7cEtvJ3F9Pl tcxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=gaRuIOy5mipxC/DcG4OUxK58zUai1nT9d4WWV0cqyO8=; b=fnJ0yxExNaXM2qdNmnWmWHKN0j/fOIcxH1l3PewLipNoR55SQZov9t9HJo9QKxa08E PTQGFQBFqM/9cID3z/cr9Bxtgd4MDy/LJ+5GaNWC5YaLjgkokAdxJGNYVaid0SqzHeVj YxUw2ERkf4gYwNUc9MH4dcUTk6ljou9cm+ZnAm9JtoxjYBh0ig/9+ojdD0fszSHLsKZI YIgsxOFDzoMwCA0NwJx0Wld6tlcJuMJkURH63gj/oZS85/HU1E9jUDs3LtY+FBpbR74B WLqeoF93jO7jo/m2TIDPZLez6YuTkdvdspIl1yDLY30/dpgYdGoxSxk179dzkK1RTXER C0PA== X-Gm-Message-State: ACrzQf0QeOZ3rHl5XRPErMVLDILvL2BbW6oqK4tq7bE+/5lgpiK5cn62 jj3mNhsUziO4ZVy0JRzolwyjo++/bbZwFPSTHEmi2w== X-Received: by 2002:ab0:628a:0:b0:3e3:651f:a07d with SMTP id z10-20020ab0628a000000b003e3651fa07dmr330706uao.52.1665806684727; Fri, 14 Oct 2022 21:04:44 -0700 (PDT) MIME-Version: 1.0 References: <20221005175149.611068-1-mark.rutland@arm.com> In-Reply-To: <20221005175149.611068-1-mark.rutland@arm.com> From: David Gow Date: Sat, 15 Oct 2022 12:04:33 +0800 Message-ID: Subject: Re: [PATCH] kunit: log numbers in decimal and hex To: Mark Rutland Cc: linux-kernel@vger.kernel.org, brendan.higgins@linux.dev, kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL 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 On Thu, Oct 6, 2022 at 1:52 AM Mark Rutland wrote: > > 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 > --- Thanks very much: this will definitely be useful. I tend to agree with Daniel that this could clutter things up a bit, but I think the other options (a separate ASSERT_EQ_HEX() macro, or a heuristic to remove it for, e.g., values <= 9) add more complexity than benefit there. So let's go with this as-is. Reviewed-by: David Gow Cheers, -- David > 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 >