Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3431396iog; Mon, 27 Jun 2022 16:15:18 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uQYh6jdk57/yzhYjFTXQUSdF4JbwJ4NWW1VOQoKXv+I9PeTMlhdwTEgZap80tDD9ZdxDtB X-Received: by 2002:a05:6402:2497:b0:437:a341:9286 with SMTP id q23-20020a056402249700b00437a3419286mr4915477eda.156.1656371717997; Mon, 27 Jun 2022 16:15:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656371717; cv=none; d=google.com; s=arc-20160816; b=CCa0A0y/HYO1ST1KMS/ARAjv30xcWgsg2M+t+HUBR3/od7xrzJqMVS1ibnDbyjkcs4 BqXtwHL3oiT2tGHafvZ0UyBdnv6C7DOj9IbEKGlfN2EICpyQEotTJRkYWXlclIu3Y9AR Ilg1SkM5MtgQXW3YkcMIf0d09G8hWW7y+cwICE38vkGDtV3CGqJnwkF2jnbFtq89PYba MwyCbtMUXMh0ZRk5b8YuL4/tMOf7jyVZAETZKrakS07fsYq6QRdoLRzh3GqJ3TRJiRuJ nRRSwB36PK46fD4hiE9UJX4rNsPHZEmIwCwA+AnNLNmNOgBjhDYeZHmVTg91XbeazrI2 /L0A== 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=halO5xko12XH4zAvHEKQ5zmzUmfFRvZ3Utz1WBQAJ5I=; b=MZJ26yWg1TizqsPzL/+k3dhnw3llGWUclnPeLO2AoBZAF3jczCaGkzIgfmZkrIJKYm +Aaj1qBKZ4t8KhXHDE1v/DzFEOOFz0aLut/5MssZU6wqj2qecLlM3oicLLSKXI1dUoun Q2VJd2PJX4rHnkcYtyKc+GQHKziZAbV1xM6ZApUgOZ7QBXf3GdVp/4mCJ0ciuSSDWW92 WNj8lWf8OVtMvEQKjpEF6mbN5aSh/qfF4b8bJkznaQVEtCHNgv96xKWj8jDoDU0tKjGc mo37on9PugYsXRYkB30XRE0kfMUnKvWLk4O97EirQxRlbG7bYCTF7uG/4rxLvnAu+BX6 26iQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=TUZpSz6I; 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 h20-20020a05640250d400b0043777cec0d2si8767712edb.631.2022.06.27.16.14.41; Mon, 27 Jun 2022 16:15:17 -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=TUZpSz6I; 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 S242507AbiF0WPG (ORCPT + 99 others); Mon, 27 Jun 2022 18:15:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242488AbiF0WPA (ORCPT ); Mon, 27 Jun 2022 18:15:00 -0400 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE0096158 for ; Mon, 27 Jun 2022 15:14:58 -0700 (PDT) Received: by mail-pl1-x649.google.com with SMTP id k11-20020a170902ce0b00b0016a15fe2627so5984973plg.22 for ; Mon, 27 Jun 2022 15:14:58 -0700 (PDT) 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=halO5xko12XH4zAvHEKQ5zmzUmfFRvZ3Utz1WBQAJ5I=; b=TUZpSz6I66lTiZJ2+MuSpgF+LAKORQy/0IIF+rBC2wkqltFMsAqaBHMzmeSR4e/WNM pH3BFR1+sabdJ1Cm7szJBlUzHIXpwmqtrF2/Bfr+tlBxECw+DdwXlaWTqlNVclUJowpB gvQKICUg7AKfNjX3MyN95uhU7IeatqfsphKBHyQX/6gZu4Co2xWkKDheGxtrBQYlE0Vu XJMEP7O4DF0H8abEaL3al6Ne+rgOE31kMb0CirhkcvgHH2DTnjeaoBoiFN5si4r9uNiT ugo1zjjn2wNQ73iZMvT1daMd+DJh3P5CXBmovvEMcZ0eaBhiE95M1L+KG5wIMCdukUd+ V4Pw== 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=halO5xko12XH4zAvHEKQ5zmzUmfFRvZ3Utz1WBQAJ5I=; b=vuiO47NWQnB1x2zUZvyjbKxLxwP01X+AC/2bzglB74f5QGhcDQIMluy5bByzGy7EnT 2TiVyR2JGrbuRnS5XWt2fHwr+P5fxw5Wf9AYo/wy+vhFcV+fe5uQwO8R5UvGKvuAPEjp Em36Imztbk//BKu/ehHEZZee1lxwxIkc20mVAmv1gWsEY64K0nquZSFpBcOgho77yLk1 +ogCag7eINBv0KVf3EkPIVHLHffaHNyG55gKGnaW6hh04oZ9u72i7y08JQFrQq856lHC DG8o1zxlSAlzHNmewkedf3ZXF9xHS4lEgpBDKf8WrFy89WHla1K0Z4ygKGln1JjQ7aJ3 Hp/g== X-Gm-Message-State: AJIora/G42NoE30ui86xgmtTItiFch7pyVlf8d0r5klsbFXIgRpgrfc5 PPZ/hnAAHuisfAbZVUewTYW1s+OEI4YL6w== X-Received: from dlatypov-spec.c.googlers.com ([fda3:e722:ac3:cc00:24:72f4:c0a8:3f35]) (user=dlatypov job=sendgmr) by 2002:a17:90a:c402:b0:1e6:8254:3478 with SMTP id i2-20020a17090ac40200b001e682543478mr17726287pjt.101.1656368098261; Mon, 27 Jun 2022 15:14:58 -0700 (PDT) Date: Mon, 27 Jun 2022 22:14:46 +0000 In-Reply-To: <20220627221446.82157-1-dlatypov@google.com> Message-Id: <20220627221446.82157-3-dlatypov@google.com> Mime-Version: 1.0 References: <20220627221446.82157-1-dlatypov@google.com> X-Mailer: git-send-email 2.37.0.rc0.161.g10f37bed90-goog Subject: [PATCH v3 3/3] kunit: add coverage_uml.config to enable GCOV on UML From: Daniel Latypov To: brendanhiggins@google.com, davidgow@google.com Cc: linux-kernel@vger.kernel.org, kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org, skhan@linuxfoundation.org, Daniel Latypov Content-Type: text/plain; charset="UTF-8" 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,T_SCC_BODY_TEXT_LINE,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 Now that kunit.py's --kunitconfig is repeatable, let's create a file to hold the various options needed to enable coverage under UML. This can be used like so: $ ./tools/testing/kunit/kunit.py run \ --kunitconfig=tools/testing/kunit/configs/all_tests_uml.config \ --kunitconfig=tools/testing/kunit/configs/coverage_uml.config \ --make_options=CC=/usr/bin/gcc-6 which on my system is enough to get coverage working [1]. This is still a clunky command, but far better than before. [1] at the time of this commit, I get: Overall coverage rate: lines......: 11.6% (34112 of 295033 lines) functions..: 15.3% (3721 of 24368 functions) Signed-off-by: Daniel Latypov Reviewed-by: David Gow --- v1 -> v3: merge with kunitconfig refactor patch --- Documentation/dev-tools/kunit/running_tips.rst | 3 +-- tools/testing/kunit/configs/coverage_uml.config | 11 +++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 tools/testing/kunit/configs/coverage_uml.config diff --git a/Documentation/dev-tools/kunit/running_tips.rst b/Documentation/dev-tools/kunit/running_tips.rst index c36f6760087d..205ea21c9cca 100644 --- a/Documentation/dev-tools/kunit/running_tips.rst +++ b/Documentation/dev-tools/kunit/running_tips.rst @@ -123,8 +123,7 @@ Putting it together into a copy-pastable sequence of commands: .. code-block:: bash # Append coverage options to the current config - $ echo -e "CONFIG_DEBUG_KERNEL=y\nCONFIG_DEBUG_INFO=y\nCONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y\nCONFIG_GCOV=y" >> .kunit/.kunitconfig - $ ./tools/testing/kunit/kunit.py run + $ ./tools/testing/kunit/kunit.py run --kunitconfig=.kunit/ --kunitconfig=tools/testing/kunit/configs/coverage_uml.config # Extract the coverage information from the build dir (.kunit/) $ lcov -t "my_kunit_tests" -o coverage.info -c -d .kunit/ diff --git a/tools/testing/kunit/configs/coverage_uml.config b/tools/testing/kunit/configs/coverage_uml.config new file mode 100644 index 000000000000..bacb77664fa8 --- /dev/null +++ b/tools/testing/kunit/configs/coverage_uml.config @@ -0,0 +1,11 @@ +# This config fragment enables coverage on UML, which is different from the +# normal gcov used in other arches (no debugfs). +# Example usage: +# ./tools/testing/kunit/kunit.py run \ +# --kunitconfig=tools/testing/kunit/configs/all_tests_uml.config \ +# --kunitconfig=tools/testing/kunit/configs/coverage_uml.config + +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y +CONFIG_GCOV=y -- 2.37.0.rc0.161.g10f37bed90-goog