From patchwork Tue Jan 31 22:03:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rae Moar X-Patchwork-Id: 51041 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp57495wrn; Tue, 31 Jan 2023 14:06:23 -0800 (PST) X-Google-Smtp-Source: AMrXdXvaaKow1OsOuEaJDlKe7BvunlVdkZpF4goO3mCfEWDvRjCqMrpNNqyQToyYMZgyH6U6zciU X-Received: by 2002:a17:907:a2cb:b0:870:7b:94db with SMTP id re11-20020a170907a2cb00b00870007b94dbmr67757207ejc.28.1675202783814; Tue, 31 Jan 2023 14:06:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675202783; cv=none; d=google.com; s=arc-20160816; b=J4nQkTGWZVo/FqgP+5uLvafAch8ect8bZjQTCyou8++aAkFbd39geZtLqBv38fP0/g l/v803I3e+7l4DO7dqDsXtIVAHAovfXd0VrvHMLx8EvCs72pCjORq9TVgpiG4/zXZTDQ dpPv4/DaxPREjIpaIGAcpaUC12E5WtiKxlazAoNQifFynQTwSB1l+wCW5uxwnhJShs/f z8oGZmB+XynJhtGdasAI0k9sINOnyuLUEkCsgJVTZQzJLbuoX+jK8yM+vMDIU21VlPp+ dv3Cc9n7Us+BjTGmMobVx07qAEhxRSRIDsrUkG53tKvM0sfpgB2RmYMHN+gN8FKLmsu2 59RQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=meTLPB0S8isCGh32fDdvuybRpGWXcZkpfQ+uXtFdMFQ=; b=X+o0NgmZpTOXUR5H9iXHJi8v+o1VbJwgoBe3TXIoeqyfKS+7ZHlE3HestkZR5MWABz ToJPJh2CYzqLcM8RnphagBemJkdNszuzTcL99XVVeG95kiCSaZwQTtmBLUg22Z7n4udi 5egxRaFrRPkDxxTna3mNtbhWfZpTuNxEgY3P+l/dG97FNW1oyoFOWixMO+e8sKtejsiy zrRT1s6DG63UOeMqOa/XUJTa98bt9eqA4xsZKwCkDJbmvlgiYNLW9gv1tKws9acEBlrl xw1+YvRSlymVsLcmY5DroOQ/GuaRd4bIjFdtjLwMEDOdUDRTzWRQbEJcG05f01JTEcmf LdRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Xsd5tBjM; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id vl11-20020a17090730cb00b0088ac4402980si5662508ejb.489.2023.01.31.14.06.00; Tue, 31 Jan 2023 14:06:23 -0800 (PST) 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=Xsd5tBjM; 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 S231137AbjAaWEK (ORCPT + 99 others); Tue, 31 Jan 2023 17:04:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230364AbjAaWEG (ORCPT ); Tue, 31 Jan 2023 17:04:06 -0500 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E93A65A376 for ; Tue, 31 Jan 2023 14:04:05 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id g138-20020a25db90000000b0080c27bde887so14049334ybf.18 for ; Tue, 31 Jan 2023 14:04:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=meTLPB0S8isCGh32fDdvuybRpGWXcZkpfQ+uXtFdMFQ=; b=Xsd5tBjM1lfSWnku+1fCrRq6TpFyYgHrqqrStFmgQulM46YKhzw95lcbuLT+XV4I+L U5GynEi8XZ09sJSsFe9ObfcmT/c5gP1dSMxk7kq6VRjy+1NhCXDwg6SQjgEvQgHxAGCL wKSpMUrcj2u5LhBLq2V22IlUES1INRe4k9mrwlPm0i1JrJQf5mJ2IRfDoLNL7XzEG+Nm dpe6o4t5d7wMKnrEFcQXbQGntxUQfkx+XVJOmDgVrggrcImZEe8zMyMTFM7ogLMqifb7 dEiGmsBxVZ31z6MR1l3GMLxN2JaNGdQdh+1Qr7MaNUd7DRjbnDoKXMwT0PVGXn27v97N cUMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=meTLPB0S8isCGh32fDdvuybRpGWXcZkpfQ+uXtFdMFQ=; b=FmPXRmaHz9dYV5cm5S6KNZYU4H8rQp+gE9zXA4FdSaKtrz30G8XXZ+5UH4RM3wseWU s84IuIVwe5AgbPMmG9vJydhiRp0LjtbJuEcx11HpqDNQEEGqQ2r6H7YADj2Uo8wM6b1X OQGfA8M/xfgneoxo9QkYeriue67zBi8ZxSpzhDeD2EFL7mqEpZagVtFSpo6M25Dv2E6S ADQdDhsLQN0POv75nVGxzuOk3yWq7ei9C7HvZ/H0ofy49eASPXdfGStqyYIRFB0HGmiO M/qBgDafkAQJgRfsJAB1CzTu4n7oYPi87Gh20ozDTeKEDWh1RXdRYU3utNhbMvg/rsO1 H2VQ== X-Gm-Message-State: AO0yUKUuirUt7Ro/+IQO0GByX1/iDQszQoDkDmPCo3HxcEMmIT+06Pj+ UFYTdGsdwjW7BuI414LXq2B4QDdK8g== X-Received: from rmoar-specialist.c.googlers.com ([fda3:e722:ac3:cc00:2b:7d90:c0a8:45d3]) (user=rmoar job=sendgmr) by 2002:a81:1109:0:b0:506:3b2d:da68 with SMTP id 9-20020a811109000000b005063b2dda68mr3173122ywr.94.1675202645233; Tue, 31 Jan 2023 14:04:05 -0800 (PST) Date: Tue, 31 Jan 2023 22:03:53 +0000 In-Reply-To: <20230131220355.1603527-1-rmoar@google.com> Mime-Version: 1.0 References: <20230131220355.1603527-1-rmoar@google.com> X-Mailer: git-send-email 2.39.1.456.gfc5497dd1b-goog Message-ID: <20230131220355.1603527-2-rmoar@google.com> Subject: [PATCH v1 1/3] kunit: fix bug in debugfs logs of parameterized tests From: Rae Moar To: brendanhiggins@google.com, davidgow@google.com, dlatypov@google.com Cc: skhan@linuxfoundation.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Rae Moar X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756577434658914361?= X-GMAIL-MSGID: =?utf-8?q?1756577434658914361?= Fix bug in debugfs logs that causes parameterized results to not appear in the log because the log is reintialized (cleared) when each parameter is run. Ensure these results appear in the debugfs logs and increase log size to allow for the size of parameterized results. Signed-off-by: Rae Moar Reviewed-by: David Gow --- include/kunit/test.h | 2 +- lib/kunit/test.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/include/kunit/test.h b/include/kunit/test.h index 87ea90576b50..0a077a4c067c 100644 --- a/include/kunit/test.h +++ b/include/kunit/test.h @@ -34,7 +34,7 @@ DECLARE_STATIC_KEY_FALSE(kunit_running); struct kunit; /* Size of log associated with test. */ -#define KUNIT_LOG_SIZE 512 +#define KUNIT_LOG_SIZE 1500 /* Maximum size of parameter description string. */ #define KUNIT_PARAM_DESC_SIZE 128 diff --git a/lib/kunit/test.c b/lib/kunit/test.c index 51cae59d8aae..66ba93b8222c 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -437,7 +437,6 @@ static void kunit_run_case_catch_errors(struct kunit_suite *suite, struct kunit_try_catch_context context; struct kunit_try_catch *try_catch; - kunit_init_test(test, test_case->name, test_case->log); try_catch = &test->try_catch; kunit_try_catch_init(try_catch, @@ -533,6 +532,8 @@ int kunit_run_tests(struct kunit_suite *suite) struct kunit_result_stats param_stats = { 0 }; test_case->status = KUNIT_SKIPPED; + kunit_init_test(&test, test_case->name, test_case->log); + if (!test_case->generate_params) { /* Non-parameterised test. */ kunit_run_case_catch_errors(suite, test_case, &test); From patchwork Tue Jan 31 22:03:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rae Moar X-Patchwork-Id: 51042 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp57951wrn; Tue, 31 Jan 2023 14:07:23 -0800 (PST) X-Google-Smtp-Source: AK7set/6/u7nngUOii/JtNp+1/JaPWu4ytoB6/eLKdHxPYqbUWS/I9jEbpVzvyR/4XIRzHxbPN95 X-Received: by 2002:a17:906:2b09:b0:889:dc6c:c4fb with SMTP id a9-20020a1709062b0900b00889dc6cc4fbmr8693770ejg.40.1675202843710; Tue, 31 Jan 2023 14:07:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675202843; cv=none; d=google.com; s=arc-20160816; b=Gv1QDXva6XBqMKJV3tXPR2Qu2cRP92V2IHN8KCl4n5V+WhY2DKNSTEcjh/kEpBRlqc Uxaw3Ty8Y5wdQLJz22QInmbXv2VTtVBQRiTq83E/CLXKcBMNyfWlW0oTg9kNB9MiXsKg eQRohZQyt8keg+ONcbAFpoD2vM+ezGEkb0GnC7HRbh6/CxH9TudZPMG5svxTdkF2zR8s nWuIDUj3Osj4cNNJnz1gHj2RpMVadDqV2u/OT1WA3UpyhzN1ymKO0XbDp8GbLBu8BRRG 4u0Pg50ipJVWbhNyDN6enD0skbaAKFt5I3P7Gmn7aXF/tJLcLr7a672XnL4ZGQp0lRot Gyqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=moADQALSg0tb19IAK6VFXnHmoG36e7OfUG93vqCxfyc=; b=YFc22Qt2CM4/9S8enwCPLX/pgtc+MLPLH1hcT5vuktr9Fx5NAiwHFvNQSPvHoME0+w rWtyidf+PPbcIYGB0JrwpxDjww7lEni6VenG7XDEi4xADIIdr426DjDLiRMGiH7/TPIn 1vCRN5mfMJDHPQsZfq3/XEu1CesU6OrGl03nxcFn9xdB8sh1naVs1MhoO6i0bElNauDl lD+sYQxuvFFosxXOIsJGP/zKQbqlZpKviAsf3EQWJfliOzzpic/bSXN0zjxGa8M7H3gi loGSxfs94eYq+tbmVYrLxh2DFt85xCqlvwn0SzKx7efHWaZrV5D/UsDGIRs23iOem8kW baAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=ogWowkUF; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ep24-20020a1709069b5800b00884c421b1d3si11119013ejc.528.2023.01.31.14.06.56; Tue, 31 Jan 2023 14:07:23 -0800 (PST) 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=ogWowkUF; 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 S231362AbjAaWES (ORCPT + 99 others); Tue, 31 Jan 2023 17:04:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231237AbjAaWEP (ORCPT ); Tue, 31 Jan 2023 17:04:15 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AC975A371 for ; Tue, 31 Jan 2023 14:04:11 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5063c0b909eso178888647b3.7 for ; Tue, 31 Jan 2023 14:04:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=moADQALSg0tb19IAK6VFXnHmoG36e7OfUG93vqCxfyc=; b=ogWowkUFyiShxyTJKM1sRMy0WMSVn9B6vJ/j9Q1ZU9IBIJHls038PG7jyled6Xu8e8 yn6idyvDB1l1avNxwbYlYNfJmkYAzlvnAANQB3dwXB2qhj73opiaDUkrx1w2Z+IglkGi uWUCUVd5QykzNEhJahoLrLihjwTwQsIOyQPn3rYEYa1vwuTkWiFqmTvWcSWMWPHDzCPj z+umS6DMaXCJ04fcogS2vWHa6Mau0fcnyNuj0fZCZSahC0BscGxWPz67iG+U3L6VuZSp e9pFUSSxgQkDH0/oweIMI89A6i93+W7Yhx/H/IxbfFeI/YaP/gojn1aqq0o34TSlnQ9f izUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=moADQALSg0tb19IAK6VFXnHmoG36e7OfUG93vqCxfyc=; b=O/OczTS5fYarNjByJgJWNYAlFEjIIQV1xSrwNW+b5iWLqGmr7qqZwB+uE5O3KXE7u9 xlhxmnsTSlXb4E4kK9O5nTIzCzWBr8mC28sBKgpS3bKrsdrHQxXlXRr4z0wAzKAKJBSy MHB4+VHALrTZ2WAK9j9jME9oJ/dnMVHvdz1895gpJmItXjlbFLtD2rA2DqIYporIPPco GYjgIU7Je8GIB0nF2slRgzbD4Nye5soGb8fisU6yHLMpT7zhAmBc0MKB2ezkg2x4oYQE PfXIpZ8BFXzrIBLApo4HPYxCCSTIFr33eZe5ggocVQoen944fDytjrJwS9BF/GfkNVfU Lb/w== X-Gm-Message-State: AO0yUKWf7OrbglMoKKAkxf2lyAIiltQXehmVn6/HNhiC2q4CKM4aT/D+ B+7Ccj8NicW+kqTlNQs51OjMnsxVnA== X-Received: from rmoar-specialist.c.googlers.com ([fda3:e722:ac3:cc00:2b:7d90:c0a8:45d3]) (user=rmoar job=sendgmr) by 2002:a05:690c:d1b:b0:506:6e1a:9b0 with SMTP id cn27-20020a05690c0d1b00b005066e1a09b0mr3288384ywb.277.1675202650592; Tue, 31 Jan 2023 14:04:10 -0800 (PST) Date: Tue, 31 Jan 2023 22:03:54 +0000 In-Reply-To: <20230131220355.1603527-1-rmoar@google.com> Mime-Version: 1.0 References: <20230131220355.1603527-1-rmoar@google.com> X-Mailer: git-send-email 2.39.1.456.gfc5497dd1b-goog Message-ID: <20230131220355.1603527-3-rmoar@google.com> Subject: [PATCH v1 2/3] kunit: fix bug in the order of lines in debugfs logs From: Rae Moar To: brendanhiggins@google.com, davidgow@google.com, dlatypov@google.com Cc: skhan@linuxfoundation.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Rae Moar X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756577497468723506?= X-GMAIL-MSGID: =?utf-8?q?1756577497468723506?= Fix bug in debugfs logs that causes an incorrect order of lines in the debugfs log. Currently, any suite diagnostic lines, including the test counts lines that show the number of tests passed, failed, and skipped, appear prior to the individual results, which is a bug. Ensure the order of printing for the debugfs log is correct. Signed-off-by: Rae Moar --- lib/kunit/debugfs.c | 13 ++++++++----- lib/kunit/test.c | 24 ++++++++++++------------ 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/lib/kunit/debugfs.c b/lib/kunit/debugfs.c index de0ee2e03ed6..fbc645590701 100644 --- a/lib/kunit/debugfs.c +++ b/lib/kunit/debugfs.c @@ -52,19 +52,22 @@ static void debugfs_print_result(struct seq_file *seq, static int debugfs_print_results(struct seq_file *seq, void *v) { struct kunit_suite *suite = (struct kunit_suite *)seq->private; - enum kunit_status success = kunit_suite_has_succeeded(suite); struct kunit_case *test_case; - if (!suite || !suite->log) + if (!suite) return 0; - seq_printf(seq, "%s", suite->log); + /* Print suite header because it is not stored in the test logs. */ + seq_puts(seq, KUNIT_SUBTEST_INDENT "KTAP version 1\n"); + seq_printf(seq, KUNIT_SUBTEST_INDENT "# Subtest: %s\n", suite->name); + seq_printf(seq, KUNIT_SUBTEST_INDENT "1..%zd\n", kunit_suite_num_test_cases(suite)); kunit_suite_for_each_test_case(suite, test_case) debugfs_print_result(seq, suite, test_case); - seq_printf(seq, "%s %d %s\n", - kunit_status_to_ok_not_ok(success), 1, suite->name); + if (suite->log) + seq_printf(seq, "%s", suite->log); + return 0; } diff --git a/lib/kunit/test.c b/lib/kunit/test.c index 66ba93b8222c..27763f0b420c 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -147,10 +147,18 @@ EXPORT_SYMBOL_GPL(kunit_suite_num_test_cases); static void kunit_print_suite_start(struct kunit_suite *suite) { - kunit_log(KERN_INFO, suite, KUNIT_SUBTEST_INDENT "KTAP version 1\n"); - kunit_log(KERN_INFO, suite, KUNIT_SUBTEST_INDENT "# Subtest: %s", + /* + * We do not log the test suite header as doing so would + * mean debugfs display would consist of the test suite + * header prior to individual test results. + * Hence directly printk the suite status, and we will + * separately seq_printf() the suite header for the debugfs + * representation. + */ + pr_info(KUNIT_SUBTEST_INDENT "KTAP version 1\n"); + pr_info(KUNIT_SUBTEST_INDENT "# Subtest: %s", suite->name); - kunit_log(KERN_INFO, suite, KUNIT_SUBTEST_INDENT "1..%zd", + pr_info(KUNIT_SUBTEST_INDENT "1..%zd", kunit_suite_num_test_cases(suite)); } @@ -165,16 +173,8 @@ static void kunit_print_ok_not_ok(void *test_or_suite, struct kunit *test = is_test ? test_or_suite : NULL; const char *directive_header = (status == KUNIT_SKIPPED) ? " # SKIP " : ""; - /* - * We do not log the test suite results as doing so would - * mean debugfs display would consist of the test suite - * description and status prior to individual test results. - * Hence directly printk the suite status, and we will - * separately seq_printf() the suite status for the debugfs - * representation. - */ if (suite) - pr_info("%s %zd %s%s%s\n", + kunit_log(KERN_INFO, suite, "%s %zd %s%s%s\n", kunit_status_to_ok_not_ok(status), test_number, description, directive_header, (status == KUNIT_SKIPPED) ? directive : ""); From patchwork Tue Jan 31 22:03:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rae Moar X-Patchwork-Id: 51043 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp58141wrn; Tue, 31 Jan 2023 14:07:52 -0800 (PST) X-Google-Smtp-Source: AK7set8HbG7oPqT93JwAKNQ+4seMXZ15DljbXHBeLUzgrb5wtu5Okf7MMg86nWTYA5OnJD+w5mGB X-Received: by 2002:a05:6a20:12cf:b0:be:b8bd:83ad with SMTP id v15-20020a056a2012cf00b000beb8bd83admr257636pzg.0.1675202871811; Tue, 31 Jan 2023 14:07:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675202871; cv=none; d=google.com; s=arc-20160816; b=An0rDZet8MNjf0MBkDymdL3mstmuzrFGlckOufVPnBpXmBpk9Xz7SDgAMWGNrClweS G+pLfMIi1G+ipxjdgANYo8zJ7gGUO9PCxpt8VIt3bNk0ihy7cIq+TzlR40+zZZJjOhXH Qmlvw/HQ0sqPoSoBkbM0dYLIWwBG4QBzyuRNMtm3EwVCcLV90HHFxieWEIsKTlBP4deb yCnzv2xNO7RB2EKjBBY03/MEawj2mXEP3zZmN8DbiRzSAt+Q76h5g+KZH4DSFv6YUjmo hqyrNIsMoDRfJHquuRPcsa4+SBzcs4M8kwldHHH5zxkd0p8S7623vFzg7Jg4np6XS001 ejTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=hHgl236BVfwTQ35JpXHYmzAIuFKEayd+GMozQ/eghgw=; b=qrdWtkl/vj0xXCKHLQ0c+wRrq2mncSbfb2f60E8bZuy50n9IiryG5WoTGlbcT2Q5gP dKiswGqFMJP1UQQ6NLXydxfb6GL1ZRXHLjM9XSlNwMXatQbRGZw/DRIMjY+p6LKyUkrR pPHLPp0JGS7J7tlILQgp/EjdwWPoJ4x4oKsFBKVbmsdtGFoU6UE57mJjsl9bp8W1uALq kpflELxTWAk8mONs+LwZXz7yBhVuvhmf69UkO65MSk0RfT+koBINUANS2RBQR70hPR8A cIh9mRRHXqWYiqXfSqR58YCHKXgTdHIPbxiUh+raxdk+r7IjrpMrwo3sWf10ioFowERh OSWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=WHNYPmOZ; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b23-20020a17090a489700b00229c251a65fsi21296640pjh.152.2023.01.31.14.07.35; Tue, 31 Jan 2023 14:07:51 -0800 (PST) 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=WHNYPmOZ; 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 S231302AbjAaWEW (ORCPT + 99 others); Tue, 31 Jan 2023 17:04:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37048 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231530AbjAaWER (ORCPT ); Tue, 31 Jan 2023 17:04:17 -0500 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9FF865AA5D for ; Tue, 31 Jan 2023 14:04:13 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id v37-20020a25aba8000000b0080f1143ef6bso10663226ybi.11 for ; Tue, 31 Jan 2023 14:04:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=hHgl236BVfwTQ35JpXHYmzAIuFKEayd+GMozQ/eghgw=; b=WHNYPmOZxbemeT8b9FCEYZ1Qk92ha/CQ3JaHq+PEp8YFNo+q0ryoC3x6C3RO2obfFf arga+6jOQiWZe2eq5q7W0JqwBa/tXV8gzF+FqHfNkRPUWgKyC3kbmOTMb70iCmplrKrd 4p3xWmmED654qRwqbZZLuaiuQ5ddiNTUmNdkg/qK+fvks3FjpbxhXv1FLl0L3iiaAgAr IViSsOU9UjT/igSxTXCqD6EPaneT/+6K8wZLopolBvt4t2XFK6VcvbTX+QAF2p9463Sj AbVwCtT2FdBDj8tsEWzyayJRYiqNOoyptBF90EM5g0DHPZ0Y1C5OUOqO9UdZsVxuNLNO XZRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hHgl236BVfwTQ35JpXHYmzAIuFKEayd+GMozQ/eghgw=; b=4RPlS6WALLsy97BJ1iFeyVdDUHDP44EmJmQ9tUNZ4BgiXAzbdZ3mjgxkYnh2dh1ZA/ A1vvPzbfwBPXpQ+UNPEFgUTRiVfCZqXcRPzFgyQjrXUOotr/N/wdCvohD4s/VPX1gr6K wXZlJlq37ZIm2EI9Io0fQFKU3iBMgt1Qsfw2NWC/uLbx+ZznRnKofDGEtfNBcKOa6Ibg 3Og5Rb5utqJTJrpxB31PBmj0VhstpHoshO1uBrWG5bvpahqSGLrZi06WuQAPKd6yEFHu sDn0p79qWnsn28PXxRsdGyPDevJy1dEpx6Z30kGzFN0xEwWgMkWAI4JvlZjCltQ/3ZYV zXYQ== X-Gm-Message-State: AO0yUKUe7k7Mz6I/swJz8rtnFlTgZHcLUAzR/tub7aR+33YI4D2cXR6Q oR/QWNvys+B/OsfiBx5CanjPeG4xDg== X-Received: from rmoar-specialist.c.googlers.com ([fda3:e722:ac3:cc00:2b:7d90:c0a8:45d3]) (user=rmoar job=sendgmr) by 2002:a81:6946:0:b0:506:527a:5146 with SMTP id e67-20020a816946000000b00506527a5146mr2725476ywc.178.1675202652837; Tue, 31 Jan 2023 14:04:12 -0800 (PST) Date: Tue, 31 Jan 2023 22:03:55 +0000 In-Reply-To: <20230131220355.1603527-1-rmoar@google.com> Mime-Version: 1.0 References: <20230131220355.1603527-1-rmoar@google.com> X-Mailer: git-send-email 2.39.1.456.gfc5497dd1b-goog Message-ID: <20230131220355.1603527-4-rmoar@google.com> Subject: [PATCH v1 3/3] kunit: fix bug of extra newline characters in debugfs logs From: Rae Moar To: brendanhiggins@google.com, davidgow@google.com, dlatypov@google.com Cc: skhan@linuxfoundation.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Rae Moar X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756577526383446683?= X-GMAIL-MSGID: =?utf-8?q?1756577526383446683?= Fix bug of the extra newline characters in debugfs logs. When a line is added to debugfs with a newline character at the end, an extra line appears in the debugfs log. Remove these extra lines. Add kunit_log_newline_test to provide test coverage for this issue. (Also, move kunit_log_test above suite definition to remove the unnecessary declaration prior to the suite definition) Signed-off-by: Rae Moar --- lib/kunit/kunit-test.c | 36 ++++++++++++++++++++++++------------ lib/kunit/test.c | 9 ++++++++- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/lib/kunit/kunit-test.c b/lib/kunit/kunit-test.c index 4df0335d0d06..e9114a466f1e 100644 --- a/lib/kunit/kunit-test.c +++ b/lib/kunit/kunit-test.c @@ -443,18 +443,6 @@ static struct kunit_suite kunit_resource_test_suite = { .test_cases = kunit_resource_test_cases, }; -static void kunit_log_test(struct kunit *test); - -static struct kunit_case kunit_log_test_cases[] = { - KUNIT_CASE(kunit_log_test), - {} -}; - -static struct kunit_suite kunit_log_test_suite = { - .name = "kunit-log-test", - .test_cases = kunit_log_test_cases, -}; - static void kunit_log_test(struct kunit *test) { struct kunit_suite suite; @@ -481,6 +469,30 @@ static void kunit_log_test(struct kunit *test) #endif } +static void kunit_log_newline_test(struct kunit *test) +{ +#ifdef CONFIG_KUNIT_DEBUGFS + kunit_info(test, "extra newline\n"); + + KUNIT_ASSERT_NOT_NULL_MSG(test, strstr(test->log, "extra newline\n"), + "Missing log line, full log:\n%s", test->log); + KUNIT_EXPECT_NULL(test, strstr(test->log, "extra newline\n\n")); +#else + kunit_skip(test, "only useful when debugfs is enabled"); +#endif +} + +static struct kunit_case kunit_log_test_cases[] = { + KUNIT_CASE(kunit_log_test), + KUNIT_CASE(kunit_log_newline_test), + {} +}; + +static struct kunit_suite kunit_log_test_suite = { + .name = "kunit-log-test", + .test_cases = kunit_log_test_cases, +}; + static void kunit_status_set_failure_test(struct kunit *test) { struct kunit fake; diff --git a/lib/kunit/test.c b/lib/kunit/test.c index 27763f0b420c..76d9c31943bf 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -117,6 +117,7 @@ void kunit_log_append(char *log, const char *fmt, ...) char line[KUNIT_LOG_SIZE]; va_list args; int len_left; + int line_len; if (!log) return; @@ -125,10 +126,16 @@ void kunit_log_append(char *log, const char *fmt, ...) if (len_left <= 0) return; + // Evaluate the length of the line with arguments va_start(args, fmt); - vsnprintf(line, sizeof(line), fmt, args); + line_len = vsnprintf(line, sizeof(line), fmt, args); va_end(args); + // If line has two newline characters, do not print + // second newline character + if (fmt[strlen(fmt) - 2] == '\n') + line[line_len - 1] = '\0'; + strncat(log, line, len_left); } EXPORT_SYMBOL_GPL(kunit_log_append);