Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp800407pxp; Fri, 11 Mar 2022 15:29:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJzTzx+tCHLivQOykfvFLrQCiJksYDjA7t0qo3DXQ1OutFVCem77sVDRotG9Two2OcXuiJt5 X-Received: by 2002:a63:710f:0:b0:378:c35a:3c3 with SMTP id m15-20020a63710f000000b00378c35a03c3mr10600429pgc.535.1647041388843; Fri, 11 Mar 2022 15:29:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1647041388; cv=none; d=google.com; s=arc-20160816; b=QLqv99tDhbOGVFN5gP1N+tCKfXaJUWUCG4coZQCwFRG/H5Bf3ExinPl67UBXv3kU9O NZoC5FfA4lqWNjxTzpE/ORzLH5wdN4xDIgL+7meC6i7aLdFQGu6hUxZGZYrqynGAMEZb h2ANyYgWeoLmJqz9EI6gFER+28zTWZQ6kRQ14seDt+RRIMcW6j0HXHNV2VtaWhXRur2N AANNrGZ0Xgj1aUqBqdaqgItEGiUVsHT1JP2mPiIBTrmvxDrA32EZEMkfenAUMsO3MhlO 68Wi8U9mHN88eGDhFkJ3+oXlqIulvxT15EgpjAgwOpY/l1cY0cj6QpSps/v4jC5Pz9Sr coww== 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:mime-version:message-id:date :dkim-signature; bh=Nhgi3BB4XpjaAi43HFqrROCjC8ClF99sWlB07YLUjuw=; b=JrCIbb/zhyNTcnOLnWNXzz2TYkQ8s79KgBShv1R6ad2pSVBPnJhUNvmTKTpiMyRLPe r07R5ywx+WqFxKlKQ/vmkjrVlm54nMjoK8aDejOC+3TEm4B8IDhQGH2tVaM+9v2inJK/ haPXtUVlNv0pQyo1b7F4HU3XLbhc/Lq/0FaoNsm2VikDcIqmTyKEQJ2kHVjW7TC/0NN2 Hu1CTYphHRcF8aXQeccwuxsJhU+qbufn/xnld339O+6GDE9zhkmm65ZvTbgASoxUcNLV lc8quJB+4dzzfrBDHGu0JOAJ26Nddz2ZwDNmCN0dJgHPRVODkWIKMX0D5J7lKq7NLT8g GbBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=KwvTEZJ0; 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 t14-20020a17090340ce00b0014cb77b1229si8609152pld.171.2022.03.11.15.29.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Mar 2022 15:29:48 -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=KwvTEZJ0; 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 06AA22357D6; Fri, 11 Mar 2022 14:16:11 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343678AbiCJVDV (ORCPT + 99 others); Thu, 10 Mar 2022 16:03:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245331AbiCJVDU (ORCPT ); Thu, 10 Mar 2022 16:03:20 -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 6FE69187E3E for ; Thu, 10 Mar 2022 13:02:19 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id o133-20020a25738b000000b0062872621d0eso5536988ybc.2 for ; Thu, 10 Mar 2022 13:02:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=Nhgi3BB4XpjaAi43HFqrROCjC8ClF99sWlB07YLUjuw=; b=KwvTEZJ0wY9VDs3piyux/dajAEwF5+D10/YCaGxRIrlvTdMFpqlR2ieLlINMV9Neol J+62V/6rDjgxezD+17hGyRlX2W1THPqWrfOejkp92Rcxaq0k1rEEM24p9D40YqZcvgGR T3wuhqeaOy3bmJNELByai+/MAza4z/z482ZLB3Mf5rRJWCuIbCfrgPK5mbrwgkczbpum Pme0yt4xy9GEXL351n5UIjCVUR6qLcrslOY2LCWtlnn++vXO+Ox6tabl5CeInxE25tLV qEvNFOWAIg5PCo4q4rXgWdHg5MLAsISjJWJahi75cxY3cKzyAZE/Cin9DT8Z8u4rn3Hg u4Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=Nhgi3BB4XpjaAi43HFqrROCjC8ClF99sWlB07YLUjuw=; b=0aMa4HqT9gulT7TNp5oihLd56sgUNGW5RwiyEFQtuZw1sQXr8Vr4uW2BX4oKfZZUF6 Ke8TGFAxYIHDUVWdQOp6Ii0LKlvYaHbKT+BnrIcGtxdOZWn6BvCQLGowBpXFutgLBLtQ y0/nXlyalE4gcEwD/WVmRBlL0vn1bRuN9y8/3/XyZAPomz7GErRGndtjdyeQotWy6ssb yK3Jaofh1oUHez1u82UADRrKWZmshCWxVpnZzaAw2Hh0Ms+N/ltEA5SpFU35lp4K8f4U /FqqIPAYWvTPK0wKkvj8XqEaRkj5rbsk/hOhq8nemLlVmSPuZE5KVAoD+ygMdNbQ3X/p GFpw== X-Gm-Message-State: AOAM532qGjSKANsj898b3jLEZlh1M5Zu7YrNn3d5tsPcF+0Ew3cz1M4W UG6fw7SSWUtNKjD5tyewAcfEE8CVWpmvfKuV5DvG0w== X-Received: from mactruck.svl.corp.google.com ([2620:15c:2cb:201:e3e5:56d9:89bd:baa]) (user=brendanhiggins job=sendgmr) by 2002:a25:bd4c:0:b0:62c:bd12:6dc4 with SMTP id p12-20020a25bd4c000000b0062cbd126dc4mr4160719ybm.549.1646946138601; Thu, 10 Mar 2022 13:02:18 -0800 (PST) Date: Thu, 10 Mar 2022 13:02:10 -0800 Message-Id: <20220310210210.2124637-1-brendanhiggins@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.35.1.723.g4982287a31-goog Subject: [RFC v1] kunit: add support for kunit_suites that reference init code From: Brendan Higgins To: shuah@kernel.org, davidgow@google.com, dlatypov@google.com, martin.fernandez@eclypsium.com, daniel.gutson@eclypsium.com Cc: linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, keescook@chromium.org, Brendan Higgins 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 Add support for a new kind of kunit_suite registration macro called kunit_test_init_suite(); this new registration macro allows the registration of kunit_suites that reference functions marked __init and data marked __initdata. Signed-off-by: Brendan Higgins --- This patch is in response to a KUnit user issue[1] in which the user was attempting to test some init functions; although this is a functional solution as long as KUnit tests only run during the init phase, we will need to do more work if we ever allow tests to run after the init phase is over; it is for this reason that this patch adds a new registration macro rather than simply modifying the existing macros. [1] https://groups.google.com/g/kunit-dev/c/XDjieRHEneg/m/D0rFCwVABgAJ --- include/kunit/test.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/include/kunit/test.h b/include/kunit/test.h index b26400731c02..1878e585f6d3 100644 --- a/include/kunit/test.h +++ b/include/kunit/test.h @@ -379,6 +379,27 @@ static inline int kunit_run_all_tests(void) #define kunit_test_suite(suite) kunit_test_suites(&suite) +/** + * kunit_test_init_suites() - used to register one or more &struct kunit_suite + * containing init functions or init data. + * + * @__suites: a statically allocated list of &struct kunit_suite. + * + * This functions identically as &kunit_test_suites() except that it suppresses + * modpost warnings for referencing functions marked __init or data marked + * __initdata; this is OK because currently KUnit only runs tests upon boot + * during the init phase or upon loading a module during the init phase. + * + * NOTE TO KUNIT DEVS: If we ever allow KUnit tests to be run after boot, these + * tests must be excluded. + */ +#define kunit_test_init_suites(__suites...) \ + __kunit_test_suites(CONCATENATE(__UNIQUE_ID(array), _probe), \ + CONCATENATE(__UNIQUE_ID(suites), _probe), \ + ##__suites) + +#define kunit_test_init_suite(suite) kunit_test_init_suites(&suite) + #define kunit_suite_for_each_test_case(suite, test_case) \ for (test_case = suite->test_cases; test_case->run_case; test_case++) base-commit: 330f4c53d3c2d8b11d86ec03a964b86dc81452f5 -- 2.35.1.723.g4982287a31-goog