Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp779007pxp; Fri, 11 Mar 2022 14:56:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJwGXkeUe6Qx+fjtKyxwECpdfjMJKSyrl7FsCiJM9AwzM+2crzyuGj67ElnYzfP6eFKsKn9F X-Received: by 2002:a63:120f:0:b0:378:d43b:99f7 with SMTP id h15-20020a63120f000000b00378d43b99f7mr10538102pgl.492.1647039364225; Fri, 11 Mar 2022 14:56:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1647039364; cv=none; d=google.com; s=arc-20160816; b=dRdJLtD4F4tjlUNfez5UdKpdT46i43mUzNB7I3riY6MwRYRKkhZWYrOlCC0P3g0W5R 61IP7p+qSXL9DSSE9yMC2K5ZOFMOGGkUy464whPo/sCfddelTZ6w7hJq1Pn15Dkz8cVl /FqRQlKaNMo981YvubB/lE/YujdPHMoCdDtC+8n239UxYuWptX5T0z5L5P0g+pvNGiIa DyF6e56SJJE5YluArgmrMGhKmeAwqUU2HNmxcCknn/XDhUu/N5RDDwPzsH7i4kDUOQvm 4zQb21QhtHxbAGG7uOxVW7zJuaHyrmdbRQJieCN9R1G3dNTBeB4+TVqayRKzmXmFZnvA TGnA== 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:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=kehSp/poBksAvN+ookLna3p1CLAB/x6vQemcHHjE9ck=; b=MmdD+x7pY4J1S137TOWnHxyRVL7dxXETxb4k95NSnBy7m97IGOmv+n2uHtwsn6yz59 KyNqwrAfsv4YINz/Rr4Jt5b6lOrvOTiv4IQsEPHWycyAc2JWS9raaoT2AZqzpkU/gajo Em+VUgK6oyCPBbCBDI+/LPOrpp/1ttRKgk6K7421GMXdmS/oKG/fyFIYSWqZIa1hub4O 4CMJQpVuJaiT2bXpbq+SSGun8VAtWk7GOGIcKjsDTute4LhbCZNAJveSocgQJFHXiv/+ 7s7qtIiRD7YdBY7g+u+HsxGpCUJqUAELHfIENMoLc9djlrxV3nfxVoVC9na5Wpr0ard6 tCDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=fegh3z76; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id z13-20020a63330d000000b00380a9faa1fdsi9496993pgz.86.2022.03.11.14.56.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Mar 2022 14:56:04 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=fegh3z76; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C10532BAD20; Fri, 11 Mar 2022 13:53:25 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346924AbiCKHQ6 (ORCPT + 99 others); Fri, 11 Mar 2022 02:16:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346865AbiCKHQu (ORCPT ); Fri, 11 Mar 2022 02:16:50 -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 DCA211B608C for ; Thu, 10 Mar 2022 23:15:47 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id z15-20020a25bb0f000000b00613388c7d99so6721104ybg.8 for ; Thu, 10 Mar 2022 23:15:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=kehSp/poBksAvN+ookLna3p1CLAB/x6vQemcHHjE9ck=; b=fegh3z766K7XxTtoebS427NIXVyVt0vELknatpspBcD93w7b4yKgCM8VTOA/JwonRG rA+XIToLf/q5jYCMKU1PttLZHvXYU8b3DL9xmEEz/UqE6uODJg+dymzXp38PNK1zNgJk 6IGNpHaVAoKQYdyVZf5VzJoz+Yr03u9BIOws5FX/6piicMFh62mjwW9YawDLz9EcXjFR scPRFOv064kITQRykgdBz+yWBFfc7/wl4WNjXVlMmHTG6SCjAZheE5gqCCPSl0gH0Of5 bqpRfI2LWAl4P0Bo06c4vhnC89KL6IYzks34DnptJpsluZQIszC276vQBxiEzAjhH5Mu SekA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=kehSp/poBksAvN+ookLna3p1CLAB/x6vQemcHHjE9ck=; b=zdWzFZcX6LDbn8Mjb8u0QbMtpBP4UD3yR3vA17wN1Sdnte1F9ezwNrPLsnIA1PRCYc hXbOI0bt6nnbXcc6JiAqz/AMKlkWLW34n/BEbDn9SwzRqPM5hMc3CEcURdmOuKTIzrsR fePv29v/LBaHvuJPXsloHbij27pQ8r36Hc1lGPeRqVSamPAw3Gry8n/rL1m2Nxm9rg86 FKFV7JpDwvkYQn7V4Pu5MIWReKOfuiHqoRu8ce5CePjce487aBHIMlmDF3MhTuvBfe5E fa/WJoNshFJYMbqQubszBD+RMSe4OpT54s83z9G+4e1Obbkldm3ty6e8JwJJNfTThLyu xvHw== X-Gm-Message-State: AOAM530tlNK5TEQqKZENvrwPooVnHPdUUbWmMazJgs/ZI7w6/ULmBcyu Z3V71q/uPyuo29N2iJfe+56irb+03zjG4g== X-Received: from slicestar.c.googlers.com ([fda3:e722:ac3:cc00:4f:4b78:c0a8:20a1]) (user=davidgow job=sendgmr) by 2002:a25:8684:0:b0:629:917:c5c with SMTP id z4-20020a258684000000b0062909170c5cmr6701419ybk.403.1646982946981; Thu, 10 Mar 2022 23:15:46 -0800 (PST) Date: Fri, 11 Mar 2022 15:15:29 +0800 In-Reply-To: Message-Id: <20220311071529.1836818-1-davidgow@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.35.1.723.g4982287a31-goog Subject: [RFC PATCH] list: test: Add a test for list_traverse From: David Gow To: Linus Torvalds Cc: Arnd Bergmann , Greg Kroah-Hartman , Jakob Koschel , Jann Horn , Kees Cook , Linux Kbuild mailing list , Linux Kernel Mailing List , Linux-MM , Netdev , kunit-dev@googlegroups.com, David Gow Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=no 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 Update the list KUnit test to include a test for the new list_traverse() macro. This adds a new 'head' member to the list_test_struct to use as a list head, using the list_traverse_head macro. Signed-off-by: David Gow --- If, as seems likely, we're going to introduce new list traversal macros, it'd be nice to update the linked list KUnit tests in lib/list-test.c to test them. :-) This patch works against the proposed list_traverse() macro posted here: https://lore.kernel.org/all/CAHk-=wiacQM76xec=Hr7cLchVZ8Mo9VDHmXRJzJ_EX4sOsApEA@mail.gmail.com/ Feel free to use and/or adapt it if this or a similar macro is introduced. Cheers, -- David --- lib/list-test.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lib/list-test.c b/lib/list-test.c index ee09505df16f..7fa2622ff9c7 100644 --- a/lib/list-test.c +++ b/lib/list-test.c @@ -12,6 +12,7 @@ struct list_test_struct { int data; struct list_head list; + list_traversal_head(struct list_test_struct, head, list); }; static void list_test_list_init(struct kunit *test) @@ -656,6 +657,28 @@ static void list_test_list_for_each_prev_safe(struct kunit *test) KUNIT_EXPECT_TRUE(test, list_empty(&list)); } +static void list_test_list_traverse(struct kunit *test) +{ + struct list_test_struct entries[5], head; + int i = 0; + + INIT_LIST_HEAD(&head.head); + + for (i = 0; i < 5; ++i) { + entries[i].data = i; + list_add_tail(&entries[i].list, &head.head); + } + + i = 0; + + list_traverse(cur, &head.head, list) { + KUNIT_EXPECT_EQ(test, cur->data, i); + i++; + } + + KUNIT_EXPECT_EQ(test, i, 5); +} + static void list_test_list_for_each_entry(struct kunit *test) { struct list_test_struct entries[5], *cur; @@ -733,6 +756,7 @@ static struct kunit_case list_test_cases[] = { KUNIT_CASE(list_test_list_for_each_prev), KUNIT_CASE(list_test_list_for_each_safe), KUNIT_CASE(list_test_list_for_each_prev_safe), + KUNIT_CASE(list_test_list_traverse), KUNIT_CASE(list_test_list_for_each_entry), KUNIT_CASE(list_test_list_for_each_entry_reverse), {}, -- 2.35.1.723.g4982287a31-goog