Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp2279842rwb; Wed, 5 Oct 2022 11:41:58 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7JIukfs/2ZlYbbM+VWipPrzASaAMzKAr+3vQcY1/zPv7KNIHg0WEGGRmcsqsiLWELJxCfh X-Received: by 2002:a63:550d:0:b0:43c:1195:5c1d with SMTP id j13-20020a63550d000000b0043c11955c1dmr1035226pgb.84.1664995318554; Wed, 05 Oct 2022 11:41:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664995318; cv=none; d=google.com; s=arc-20160816; b=vEbnxc0i4WcJndwepDexPNDlqQDEnGbxS0We9U7W5kM+SZUP+YadKIgM528K5gxsH9 maoL2g0EaJr6nyqSrQVVuIHtAx2BKzQgMn1pQXTsT7wOOyCIEZPiZtiLawhy3dWJckco ySeEHkBBmpvLsgOq7EuLlfi5GpPMOxOk39etmghpnpXMqvuWWYccesb6huNIBbKZFIxj sw1GgnN5mRRV3k4RglYDJ3+Srry569j4UA7jYjC4TfD3Zqb0jIy3KvIqOvQrcSuLeMeH gPSwhlqqQeGq8U2eedVeIhdJT3nRl4CzueX8IKGDKOgtuYAuYmaZIQng2Tm2MgBJqVuv g/pw== 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=FBEfO1rQUq7kj71Ct0f//FmMkbcVfUhb6nYeOsxTaRw=; b=HmZByPNvdVuuZimq4H8yTpZjiMk55laKq2dcfZpAgZTS2HZX9f+wT/26RybrdxHYVv 4N0RxGueoctr71m25eSrTdfOPBiKlJnG9p13q+lsAY4uwwmC60KhOQk0TV6qfP0Yiev/ hhQtumgqwAVuS3I59+f+x6UZw+ok/CSOvo1A+zTuDbHdwwvghHeH5fWT69QqsZa6WK17 PwgPSpxBx/UE8VOKztBz92v4MvjTiqeYu03PjZOiV3AXx6cdKgHY/aBWBgbSsaRRclgW MGliPIwyHkOJ0EDO4jwenD2kLgvmjZhn2LJDvhIjKMhXBjABcqS/gy6kBe6prUDe0p+M uU9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=O99hsOVX; 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 l190-20020a6391c7000000b0044ccd7e252bsi11143938pge.175.2022.10.05.11.41.47; Wed, 05 Oct 2022 11:41:58 -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=O99hsOVX; 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 S229974AbiJES2o (ORCPT + 99 others); Wed, 5 Oct 2022 14:28:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230096AbiJES2m (ORCPT ); Wed, 5 Oct 2022 14:28:42 -0400 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40B7F7F27E for ; Wed, 5 Oct 2022 11:28:40 -0700 (PDT) Received: by mail-ed1-x536.google.com with SMTP id m15so24126772edb.13 for ; Wed, 05 Oct 2022 11:28:40 -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; bh=FBEfO1rQUq7kj71Ct0f//FmMkbcVfUhb6nYeOsxTaRw=; b=O99hsOVXQr2ervEPtCirAL8UoEUshuvpPpQcBU32Kb0SU4lrUDoWMEMvlAGYISluhA uSOnOS6bha1OdgG0iu8G6IoLCb5OpNTn07J7x1Hj/9BhFwbl6ujEQt0cEzRae5sn900F SJ/WUzgYocwDLteWgSuBEsO2OdPwDekm4YOlBfTrJ/bKNG11IE/D0sptwIwiPvsGkz18 fS61tvdU3o87+IuwXhM7srDCu0Z4tEpJgbSAeRqgWlDLjM1KuC2jBtuYTFnbGbAwGpJH jrGrtWgTUS9PaHPHYFYaWSijACplWf8VveHi0eKfTyLX5wlpKgNBo3Y5HCpMOMa5yjeu 2wYQ== 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; bh=FBEfO1rQUq7kj71Ct0f//FmMkbcVfUhb6nYeOsxTaRw=; b=ilR2cc9DD8Zaui+T8P0gqlh6LsHz9vPEISU6aEi7QICwNU7F3EN3HFEDefxeMsUlfZ macfAa6AJVq1++rckhze0t4JYViiUBnmLyAgcE2gOoFXF+JWVjZ3VGPYHalfQA0g7/Qd cMUqBXeYLZJL4jsrx+vQq6se1KKPVXkuTyxdhdYQ+pajBqTQ6/6TVDSMWgmz/B6Uc7yV 96UwRz7wBDBPL8ds+16sPL6113U0l5m9Jll0AaG4PgjtMKIq9yGuvNF+pXyd1QlhUVL6 rf1JOko77HjY9xUsiKG+zrVRCCGFSnPDTPVKdyhRtMzL0SxgzurJND1f5Ed/SeUoXrUc /rIw== X-Gm-Message-State: ACrzQf0WxZ9pIOn5p+PqT+5juiv97Sr+jWJuLxJoZz6ED5fxurmAwxw+ 8DMA5zR+vG1rkWY3eukIQ3ccZgHvAAmbdvBTdAa27Q== X-Received: by 2002:a05:6402:5cb:b0:452:e416:2bc4 with SMTP id n11-20020a05640205cb00b00452e4162bc4mr994771edx.114.1664994518712; Wed, 05 Oct 2022 11:28:38 -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: Daniel Latypov Date: Wed, 5 Oct 2022 11:28:27 -0700 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, davidgow@google.com, 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=unavailable 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 Wed, Oct 5, 2022 at 10: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 Acked-by: Daniel Latypov This is definitely something that has irked me as well. I vaguely feel like this can clutter up the output for things that are just ints, e.g. Expected len == 0, but len == 2 (0x2) But I can't think of any suggestions that are actually worth doing [1]. And since this feels like a common enough case, I don't think the existing workarounds [2] are sufficiently ergonomic. So I think always showing the hex makes sense. [1] E.g. only emitting hex when the number in question is >16, but that feels too magic (also needs more if's). E.g. adding in a macro argument/separate set of macros that always format in hex [2] can use these to coerce hex output KUNIT_EXPECT_EQ_MSG(test, obj_insn, gen_insn, "obj=0x%llx, gen=0x%llx", obj_insn, gen_insn); KUNIT_EXPECT_PTR_EQ(test, obj_insn, gen_insn);