From nobody Sun Feb 8 11:21:50 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3005FEB64DA for ; Mon, 19 Jun 2023 05:17:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229879AbjFSFRY (ORCPT ); Mon, 19 Jun 2023 01:17:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229485AbjFSFRW (ORCPT ); Mon, 19 Jun 2023 01:17:22 -0400 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 A6147124 for ; Sun, 18 Jun 2023 22:17:20 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5618857518dso35597217b3.2 for ; Sun, 18 Jun 2023 22:17:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1687151840; x=1689743840; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=wIJtbiNHWORZFFJvZlaFdgy0aymB8UjaLQ1n2ZbqAGA=; b=gF61XMV36bH0I0OFvVtMJMGfMqtsf5GRLhWCa6KadS7mbkOfJd8Nx9f6fyfD0xONPr gWmimxA9RjSurXO02roA0UblNhg0/LzFtfe/76MNLOqk8f9E40XXbrQ+OXLQjhme9er0 6CVWLC/hLBlwKdhfotjAtiyH1l14V+xB12eI5kJJf84Jn36fg+DSVCh+xi1dPFJmsGgw 6oXNg/F33JJmP82PkyDzdux+9ZZZBoRQOXweSvCZJwPQafOLvflD1OXS0vtB8Si0QDor NrjaREvL25r/7Hjs1fV4HN2tV5ZQ0H55KOrMpxqUn40TA3clVeMbmIoNBPOWMcYoU+Gz x87A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687151840; x=1689743840; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wIJtbiNHWORZFFJvZlaFdgy0aymB8UjaLQ1n2ZbqAGA=; b=e1UlVuGJxFYTGtUyu1YqS8xxy1Rw/jQoTseENVbPT2LogJEWKEF2u9E51C7xHBHP4U Qmq3hpJGoD7FJCqYhTQ3ihsnOfteSplDt3eBQtQuoshRniO4AJ9Ssgl+Q+TJQy4vB2AW hGHJlBct2Ks3VPWzEi37XREOcGIOdsb5o0oZVF1cFDrpkOizMh4InPvEqhtBJLZglMOv aT/EgpVsmtPJw//b3VuLIpnvfbPwdkQ4YYrIraVvfhcPdxCjtjxY2PcFKzvvUWPr8hkD a976L5I54d/kz9u6Q9cqkQs5IsYDJ+jEzcZW9rBg1sWPzFh+zdnKDiCKfABxkFxjowZ+ 3n9Q== X-Gm-Message-State: AC+VfDxHEg15kVqw7gEGxNt8sCcEqqaUUSjPPgQ7Y3yxIPelHoa0Em8g jHP46XvV3HA1wDibv/tZUpXn35o4dDmbIhZD X-Google-Smtp-Source: ACHHUZ4bERXIPoat5d1IzHXmL6LrgMtKb/8unGaeig1J8SlCYu4NeAeG5s68/yZupgeGKDfJMDcTzlOYVExCpEWM X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:2327]) (user=yosryahmed job=sendgmr) by 2002:a81:e709:0:b0:568:f589:2b4e with SMTP id x9-20020a81e709000000b00568f5892b4emr3820382ywl.0.1687151839830; Sun, 18 Jun 2023 22:17:19 -0700 (PDT) Date: Mon, 19 Jun 2023 05:17:15 +0000 Mime-Version: 1.0 X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog Message-ID: <20230619051715.2306134-1-yosryahmed@google.com> Subject: [PATCH] selftests/cgroup: allow running a specific test with test_memcontrol From: Yosry Ahmed To: Roman Gushchin , Andrew Morton Cc: Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Yosry Ahmed Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It is handy during testing and/or debugging to be able to run a single test from test_memcontrol. Allow passing in a test name through a command line argument (e.g. ./test_memcontrol -t test_memcg_recharge). Change-Id: I0e0d74d81fdd9d997987389085a816715160467f Signed-off-by: Yosry Ahmed --- .../selftests/cgroup/test_memcontrol.c | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tools/testing/selftests/cgroup/test_memcontrol.c b/tools/testi= ng/selftests/cgroup/test_memcontrol.c index a2a90f4bfe9f..d8f8a13bc6c4 100644 --- a/tools/testing/selftests/cgroup/test_memcontrol.c +++ b/tools/testing/selftests/cgroup/test_memcontrol.c @@ -1308,9 +1308,36 @@ struct memcg_test { =20 int main(int argc, char **argv) { + int opt; char root[PATH_MAX]; + int selected_test =3D -1; int i, proc_status, ret =3D EXIT_SUCCESS; =20 + while ((opt =3D getopt(argc, argv, "ht:")) !=3D -1) { + switch (opt) { + case 't': + for (i =3D 0; i < ARRAY_SIZE(tests); i++) { + if (!strcmp(tests[i].name, optarg)) { + selected_test =3D i; + break; + } + } + if (selected_test >=3D 0) + break; + fprintf(stderr, "test %s not found\n", optarg); + return EXIT_FAILURE; + case 'h': + fprintf(stderr, + "Usage: %s [-h] [-t name]\n" + "\t-h print help\n" + "\t-t name run specific test\n" + , argv[0]); + return ret; + default: + break; + } + } + if (cg_find_unified_root(root, sizeof(root))) ksft_exit_skip("cgroup v2 isn't mounted\n"); =20 @@ -1336,6 +1363,9 @@ int main(int argc, char **argv) has_localevents =3D proc_status; =20 for (i =3D 0; i < ARRAY_SIZE(tests); i++) { + if (selected_test >=3D 0 && selected_test !=3D i) + continue; + switch (tests[i].fn(root)) { case KSFT_PASS: ksft_test_result_pass("%s\n", tests[i].name); --=20 2.41.0.162.gfafddb0af9-goog