From nobody Wed Dec 17 17:41:36 2025 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62690235063 for ; Fri, 3 Oct 2025 08:17:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759479461; cv=none; b=MQyq1Id3wjuRTdt24ehKUKENEP2S3ZFQOPJN2P3nRuT671TZjEOPwvDPOl49sEZ1H7kq2D80kjkhs3ZBI5xiL+H/MpOekeX/+9r3ookUREJBIaVMilWRDFIvCUDokEo2BEiWa2egZbetaYiOUzsDkBKIAAIarG52Ht/GBZKkfC8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759479461; c=relaxed/simple; bh=5BkvkCFUMzpxNbnbmS4iY+2bApT2216VKdCZB7my7iY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CpZDtdNePokV7w57h0iN7LhuA8Uw/qmzipzBZKck3j4sp8OFY9Pm/9GM2HV5+0cyK2BA1LOaLZjFjz5loXQmSoEb6kaEd9gwblqJcq8sZzckyE/j9l/AHPlF3CaM09X9qpd2nin4gkSQvNsPZjuUCaVlWmK37AwIYLlhqIWc6Ng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Wy2Rl2Xi; arc=none smtp.client-ip=209.85.210.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Wy2Rl2Xi" Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-783ad9c784cso237194b3a.0 for ; Fri, 03 Oct 2025 01:17:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759479458; x=1760084258; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gQyim0BqtsW2qzMbM8Vy6YA3JarxLqj3KoXPKijITYk=; b=Wy2Rl2XiRlCO8CoszXQHMLGQV8zfutOCtbJx5RizhAqFgcBehjDtyIIUw68zKCzemV 1sBl/AC6QUO7j0fS880VkK37WAXQOTnCzXMCJqZjHtNpNF6tZl6Cn9yNLuJ4asHmkiVr OBEoPHYEF3crgGsxakkBGFLMVp1t8fS/i5lx553q9JkAxRN7vtdTBeI2amGTEBmkx1px R9JkjlCzmsFj0X9NjHxcSU+nHoig/zMQ18wxe3hDvr9/LZTZcK8V9PSl7fzBR6R0d7BC lLwn+QzhEw/p88pwb5aWhE66eJrc623j+TQ7DObmMa0A5qw5fVE2MRmuIhiPwl+3Yiph OB9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759479458; x=1760084258; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gQyim0BqtsW2qzMbM8Vy6YA3JarxLqj3KoXPKijITYk=; b=ku/rGJB0uQg09WfXlWB3nquWH6z1L1Q3dNOSvGiCDV7IsFzgJmuV2Ah3ocTfxgr4j9 MKpbT1zyyZ7JvXH1N0wE9YWigyxE7yDc3Lvtuv1us+4105GtyeXnZjdo3LUjkDO8pfKs e/FWjOpRtJSJQjwASXVXZP1UVgIcE9m8wWWCxAk4WhaLzFknFDVb7iHgEWWoJEg5dy4q F+exSKjyBLeWqEljT0CLhB3WAiecgoZviD4h7TnYqVxCvcoHTdDtWBvigzjhB4iV7QPW aKnos+CzGz4vho+fu5OtEZoFBlGb52Bcf8PBNWMbjdEzHu2q9tuXD1xH9p4bvAouX3Be ht1w== X-Forwarded-Encrypted: i=1; AJvYcCUt15fA7mcMYOKa56Znv/xdYT2Eq1psgNxdNSNcuHVc9tP4wZhaJhPxqzBXtntAC+xSlUy4MxrgppHPXb0=@vger.kernel.org X-Gm-Message-State: AOJu0YzHHAQJvQJPedQ/YcExNMnTAKemuz88CV8oP+HQF7YwwHXzUIRN ys3ery6ta8+q8KD4svcV41P50KUZbInnLgWJFSnCGbqGBOJ5U7Pud6KB24uoe5M3 X-Gm-Gg: ASbGncuGB7Wi3zprZJLT6JAcKbEWpAktlsOSi+oYruWEYuOMKHwTJkvYD8oQDEjMnFB gHYVAqalA7NQzsAmx0gApUGIudzm9o9epRdVnj8NyPYlEhyWCwX+yIUyQZWephNfaVf+aOpZA5U xPfjq9req/8Ks25EXQkhXOYTbMkna/sdXNH8XhNKZYtTt+k4deldmRjrF+ERSIx3caNcWcQoIkb iTZTgflDHzzX6rf8duhq2o+AR7FIiDGLyL9oVL1hT5qxZ9Vyj/Dg1lntHz3NTiZAdwK1JV358dX Nuz9sELtTsk6Js9jGGkJn+F0OyrfJhEPOBWX160247AfgUlvVyD2jCCHXp18ZG/2T25fnPoM3v9 szVoR1beNj6FsgUwWPwD1DLSPh16WWqVjL6dRFcLLDjI= X-Google-Smtp-Source: AGHT+IE3p6e2C4Ro1pBpKf0cXzsgikP8V0zCUAAB/T9g/wIoYga6Xkv+dPr5KmQQbGDGSH9Rz7Xgew== X-Received: by 2002:a05:6a21:114d:b0:2d6:9a15:138f with SMTP id adf61e73a8af0-32b620b1298mr1450380637.3.1759479458188; Fri, 03 Oct 2025 01:17:38 -0700 (PDT) Received: from localhost ([104.249.174.141]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-78b0206e6ccsm4168102b3a.63.2025.10.03.01.17.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Oct 2025 01:17:37 -0700 (PDT) From: Ben Guo To: Alex Shi , Yanteng Si , Dongliang Mu , Jonathan Corbet , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: hust-os-kernel-patches@googlegroups.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH v2] docs/zh_CN: Add translation of rust/testing.rst Date: Fri, 3 Oct 2025 07:48:57 +0000 Message-ID: <20251003074939.465517-1-benx.guo@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250929163531.376092-1-benx.guo@gmail.com> References: <20250929163531.376092-1-benx.guo@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Complete the translation of rust/testing.rst and add the testing TOC entry to rust/index.rst. Add the translation based on commit a3b2347343e0 ("Documentation: rust: testing: add docs on the new KUnit `#[test]` tests"). Signed-off-by: Ben Guo --- v1->v2: Rebased onto docs-next (no code changes). .../translations/zh_CN/rust/index.rst | 1 + .../translations/zh_CN/rust/testing.rst | 215 ++++++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 Documentation/translations/zh_CN/rust/testing.rst diff --git a/Documentation/translations/zh_CN/rust/index.rst b/Documentatio= n/translations/zh_CN/rust/index.rst index 10413b0c17c0..5347d4729588 100644 --- a/Documentation/translations/zh_CN/rust/index.rst +++ b/Documentation/translations/zh_CN/rust/index.rst @@ -47,6 +47,7 @@ Rust =E6=94=AF=E6=8C=81=E5=9C=A8 v6.1 =E7=89=88=E6=9C=AC= =E4=B8=AD=E5=90=88=E5=B9=B6=E5=88=B0=E4=B8=BB=E7=BA=BF=EF=BC=8C=E4=BB=A5=E5= =B8=AE=E5=8A=A9=E7=A1=AE=E5=AE=9A Rust =E4=BD=9C=E4=B8=BA=E4=B8=80=E7=A7=8D general-information coding-guidelines arch-support + testing =20 =E4=BD=A0=E8=BF=98=E5=8F=AF=E4=BB=A5=E5=9C=A8 :doc:`../../../process/kerne= l-docs` =E4=B8=AD=E6=89=BE=E5=88=B0 Rust =E7=9A=84=E5=AD=A6=E4=B9=A0=E6=9D= =90=E6=96=99=E3=80=82 =20 diff --git a/Documentation/translations/zh_CN/rust/testing.rst b/Documentat= ion/translations/zh_CN/rust/testing.rst new file mode 100644 index 000000000000..ca81f1cef6eb --- /dev/null +++ b/Documentation/translations/zh_CN/rust/testing.rst @@ -0,0 +1,215 @@ +.. SPDX-License-Identifier: GPL-2.0 +.. include:: ../disclaimer-zh_CN.rst + +:Original: Documentation/rust/testing.rst + +:=E7=BF=BB=E8=AF=91: + + =E9=83=AD=E6=9D=B0 Ben Guo + +=E6=B5=8B=E8=AF=95 +=3D=3D=3D=3D + +=E6=9C=AC=E6=96=87=E4=BB=8B=E7=BB=8D=E4=BA=86=E5=A6=82=E4=BD=95=E5=9C=A8= =E5=86=85=E6=A0=B8=E4=B8=AD=E6=B5=8B=E8=AF=95 Rust =E4=BB=A3=E7=A0=81=E3=80= =82 + +=E6=9C=89=E4=B8=89=E7=A7=8D=E6=B5=8B=E8=AF=95=E7=B1=BB=E5=9E=8B=EF=BC=9A + +- KUnit =E6=B5=8B=E8=AF=95 +- ``#[test]`` =E6=B5=8B=E8=AF=95 +- Kselftests + +KUnit =E6=B5=8B=E8=AF=95 +---------- + +=E8=BF=99=E4=BA=9B=E6=B5=8B=E8=AF=95=E6=9D=A5=E8=87=AA Rust =E6=96=87=E6= =A1=A3=E4=B8=AD=E7=9A=84=E7=A4=BA=E4=BE=8B=E3=80=82=E5=AE=83=E4=BB=AC=E4=BC= =9A=E8=A2=AB=E8=BD=AC=E6=8D=A2=E4=B8=BA KUnit =E6=B5=8B=E8=AF=95=E3=80=82 + +=E4=BD=BF=E7=94=A8 +**** + +=E8=BF=99=E4=BA=9B=E6=B5=8B=E8=AF=95=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87 K= Unit =E8=BF=90=E8=A1=8C=E3=80=82=E4=BE=8B=E5=A6=82=EF=BC=8C=E5=9C=A8=E5=91= =BD=E4=BB=A4=E8=A1=8C=E4=B8=AD=E4=BD=BF=E7=94=A8 ``kunit_tool`` =EF=BC=88 `= `kunit.py`` =EF=BC=89:: + + ./tools/testing/kunit/kunit.py run --make_options LLVM=3D1 --arch x86_64 = --kconfig_add CONFIG_RUST=3Dy + +=E6=88=96=E8=80=85=EF=BC=8CKUnit =E4=B9=9F=E5=8F=AF=E4=BB=A5=E5=9C=A8=E5= =86=85=E6=A0=B8=E5=90=AF=E5=8A=A8=E6=97=B6=E4=BB=A5=E5=86=85=E7=BD=AE=E6=96= =B9=E5=BC=8F=E8=BF=90=E8=A1=8C=E3=80=82=E8=8E=B7=E5=8F=96=E6=9B=B4=E5=A4=9A= KUnit =E4=BF=A1=E6=81=AF=EF=BC=8C=E8=AF=B7=E5=8F=82=E9=98=85 +Documentation/dev-tools/kunit/index.rst=E3=80=82 +=E5=85=B3=E4=BA=8E=E5=86=85=E6=A0=B8=E5=86=85=E7=BD=AE=E4=B8=8E=E5=91=BD= =E4=BB=A4=E8=A1=8C=E6=B5=8B=E8=AF=95=E7=9A=84=E8=AF=A6=E7=BB=86=E4=BF=A1=E6= =81=AF=EF=BC=8C=E8=AF=B7=E5=8F=82=E9=98=85 Documentation/dev-tools/kunit/ar= chitecture.rst=E3=80=82 + +=E8=A6=81=E4=BD=BF=E7=94=A8=E8=BF=99=E4=BA=9B KUnit =E6=96=87=E6=A1=A3=E6= =B5=8B=E8=AF=95=EF=BC=8C=E9=9C=80=E8=A6=81=E5=9C=A8=E5=86=85=E6=A0=B8=E9=85= =8D=E7=BD=AE=E4=B8=AD=E5=90=AF=E7=94=A8=E4=BB=A5=E4=B8=8B=E9=80=89=E9=A1=B9= :: + + CONFIG_KUNIT + Kernel hacking -> Kernel Testing and Coverage -> KUnit - Enable suppor= t for unit tests + CONFIG_RUST_KERNEL_DOCTESTS + Kernel hacking -> Rust hacking -> Doctests for the `kernel` crate + +KUnit =E6=B5=8B=E8=AF=95=E5=8D=B3=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95 +******************** + +=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=EF=BC=88 *doctests* =EF=BC=89=E4=B8= =80=E8=88=AC=E7=94=A8=E4=BA=8E=E5=B1=95=E7=A4=BA=E5=87=BD=E6=95=B0=E3=80=81= =E7=BB=93=E6=9E=84=E4=BD=93=E6=88=96=E6=A8=A1=E5=9D=97=E7=AD=89=E7=9A=84=E4= =BD=BF=E7=94=A8=E6=96=B9=E6=B3=95=E3=80=82 + +=E5=AE=83=E4=BB=AC=E9=9D=9E=E5=B8=B8=E6=96=B9=E4=BE=BF=EF=BC=8C=E5=9B=A0= =E4=B8=BA=E5=AE=83=E4=BB=AC=E5=B0=B1=E5=86=99=E5=9C=A8=E6=96=87=E6=A1=A3=E6= =97=81=E8=BE=B9=E3=80=82=E4=BE=8B=E5=A6=82=EF=BC=9A + +.. code-block:: rust + + /// =E6=B1=82=E5=92=8C=E4=B8=A4=E4=B8=AA=E6=95=B0=E5=AD=97=E3=80=82 + /// + /// ``` + /// assert_eq!(mymod::f(10, 20), 30); + /// ``` + pub fn f(a: i32, b: i32) -> i32 { + a + b + } + +=E5=9C=A8=E7=94=A8=E6=88=B7=E7=A9=BA=E9=97=B4=E4=B8=AD=EF=BC=8C=E8=BF=99= =E4=BA=9B=E6=B5=8B=E8=AF=95=E7=94=B1 ``rustdoc`` =E8=B4=9F=E8=B4=A3=E6=94= =B6=E9=9B=86=E5=B9=B6=E8=BF=90=E8=A1=8C=E3=80=82=E5=8D=95=E7=8B=AC=E4=BD=BF= =E7=94=A8=E8=BF=99=E4=B8=AA=E5=B7=A5=E5=85=B7=E5=B7=B2=E7=BB=8F=E5=BE=88=E6= =9C=89=E4=BB=B7=E5=80=BC=EF=BC=8C +=E5=9B=A0=E4=B8=BA=E5=AE=83=E5=8F=AF=E4=BB=A5=E9=AA=8C=E8=AF=81=E7=A4=BA= =E4=BE=8B=E8=83=BD=E5=90=A6=E6=88=90=E5=8A=9F=E7=BC=96=E8=AF=91=EF=BC=88=E7= =A1=AE=E4=BF=9D=E5=92=8C=E4=BB=A3=E7=A0=81=E4=BF=9D=E6=8C=81=E5=90=8C=E6=AD= =A5=EF=BC=89=EF=BC=8C +=E5=90=8C=E6=97=B6=E8=BF=98=E5=8F=AF=E4=BB=A5=E8=BF=90=E8=A1=8C=E9=82=A3= =E4=BA=9B=E4=B8=8D=E4=BE=9D=E8=B5=96=E5=86=85=E6=A0=B8 API =E7=9A=84=E7=A4= =BA=E4=BE=8B=E3=80=82 + +=E7=84=B6=E8=80=8C=EF=BC=8C=E5=9C=A8=E5=86=85=E6=A0=B8=E4=B8=AD=EF=BC=8C= =E8=BF=99=E4=BA=9B=E6=B5=8B=E8=AF=95=E4=BC=9A=E8=BD=AC=E6=8D=A2=E6=88=90 KU= nit =E6=B5=8B=E8=AF=95=E5=A5=97=E4=BB=B6=E3=80=82 +=E8=BF=99=E6=84=8F=E5=91=B3=E7=9D=80=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95= =E4=BC=9A=E8=A2=AB=E7=BC=96=E8=AF=91=E6=88=90 Rust =E5=86=85=E6=A0=B8=E5=AF= =B9=E8=B1=A1=EF=BC=8C=E4=BB=8E=E8=80=8C=E5=8F=AF=E4=BB=A5=E5=9C=A8=E6=9E=84= =E5=BB=BA=E7=9A=84=E5=86=85=E6=A0=B8=E7=8E=AF=E5=A2=83=E4=B8=AD=E8=BF=90=E8= =A1=8C=E3=80=82 + +=E9=80=9A=E8=BF=87=E4=B8=8E KUnit =E9=9B=86=E6=88=90=EF=BC=8CRust =E7=9A= =84=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E5=8F=AF=E4=BB=A5=E5=A4=8D=E7=94=A8= =E5=86=85=E6=A0=B8=E7=8E=B0=E6=9C=89=E7=9A=84=E6=B5=8B=E8=AF=95=E8=AE=BE=E6= =96=BD=E3=80=82 +=E4=BE=8B=E5=A6=82=EF=BC=8C=E5=86=85=E6=A0=B8=E6=97=A5=E5=BF=97=E4=BC=9A= =E6=98=BE=E7=A4=BA:: + + KTAP version 1 + 1..1 + KTAP version 1 + # Subtest: rust_doctests_kernel + 1..59 + # rust_doctest_kernel_build_assert_rs_0.location: rust/kernel/build_a= ssert.rs:13 + ok 1 rust_doctest_kernel_build_assert_rs_0 + # rust_doctest_kernel_build_assert_rs_1.location: rust/kernel/build_a= ssert.rs:56 + ok 2 rust_doctest_kernel_build_assert_rs_1 + # rust_doctest_kernel_init_rs_0.location: rust/kernel/init.rs:122 + ok 3 rust_doctest_kernel_init_rs_0 + ... + # rust_doctest_kernel_types_rs_2.location: rust/kernel/types.rs:150 + ok 59 rust_doctest_kernel_types_rs_2 + # rust_doctests_kernel: pass:59 fail:0 skip:0 total:59 + # Totals: pass:59 fail:0 skip:0 total:59 + ok 1 rust_doctests_kernel + +=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E4=B8=AD=EF=BC=8C=E4=B9=9F=E5=8F=AF= =E4=BB=A5=E6=AD=A3=E5=B8=B8=E4=BD=BF=E7=94=A8 `? `_ =E8= =BF=90=E7=AE=97=E7=AC=A6=EF=BC=8C=E4=BE=8B=E5=A6=82=EF=BC=9A + +.. code-block:: rust + + /// ``` + /// # use kernel::{spawn_work_item, workqueue}; + /// spawn_work_item!(workqueue::system(), || pr_info!("x\n"))?; + /// # Ok::<(), Error>(()) + /// ``` + +=E8=BF=99=E4=BA=9B=E6=B5=8B=E8=AF=95=E5=92=8C=E6=99=AE=E9=80=9A=E4=BB=A3= =E7=A0=81=E4=B8=80=E6=A0=B7=EF=BC=8C=E4=B9=9F=E5=8F=AF=E4=BB=A5=E5=9C=A8 ``= CLIPPY=3D1`` =E6=9D=A1=E4=BB=B6=E4=B8=8B=E9=80=9A=E8=BF=87 Clippy =E8=BF=9B= =E8=A1=8C=E7=BC=96=E8=AF=91=EF=BC=8C +=E5=9B=A0=E6=AD=A4=E5=8F=AF=E4=BB=A5=E4=BB=8E=E9=A2=9D=E5=A4=96=E7=9A=84 l= int =E6=A3=80=E6=9F=A5=E4=B8=AD=E8=8E=B7=E7=9B=8A=E3=80=82 + +=E4=B8=BA=E4=BA=86=E4=BE=BF=E4=BA=8E=E5=BC=80=E5=8F=91=E8=80=85=E5=AE=9A= =E4=BD=8D=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E5=87=BA=E9=94=99=E7=9A=84=E5= =85=B7=E4=BD=93=E8=A1=8C=E5=8F=B7=EF=BC=8C=E6=97=A5=E5=BF=97=E4=BC=9A=E8=BE= =93=E5=87=BA=E4=B8=80=E6=9D=A1 KTAP =E8=AF=8A=E6=96=AD=E4=BF=A1=E6=81=AF=E3= =80=82 +=E5=85=B6=E4=B8=AD=E6=A0=87=E6=98=8E=E4=BA=86=E5=8E=9F=E5=A7=8B=E6=B5=8B= =E8=AF=95=E7=9A=84=E6=96=87=E4=BB=B6=E5=92=8C=E8=A1=8C=E5=8F=B7=EF=BC=88=E4= =B8=8D=E6=98=AF ``rustdoc`` =E7=94=9F=E6=88=90=E7=9A=84=E4=B8=B4=E6=97=B6 R= ust =E6=96=87=E4=BB=B6=E4=BD=8D=E7=BD=AE=EF=BC=89:: + + # rust_doctest_kernel_types_rs_2.location: rust/kernel/types.rs:150 + +Rust =E6=B5=8B=E8=AF=95=E4=B8=AD=E5=B8=B8=E7=94=A8=E7=9A=84=E6=96=AD=E8=A8= =80=E5=AE=8F=E6=98=AF=E6=9D=A5=E8=87=AA Rust =E6=A0=87=E5=87=86=E5=BA=93=EF= =BC=88 ``core`` =EF=BC=89=E4=B8=AD=E7=9A=84 ``assert!`` =E5=92=8C ``assert_= eq!`` =E5=AE=8F=E3=80=82 +=E5=86=85=E6=A0=B8=E6=8F=90=E4=BE=9B=E4=BA=86=E4=B8=80=E4=B8=AA=E5=AE=9A= =E5=88=B6=E7=89=88=E6=9C=AC=EF=BC=8C=E8=BF=99=E4=BA=9B=E5=AE=8F=E7=9A=84=E8= =B0=83=E7=94=A8=E4=BC=9A=E8=A2=AB=E8=BD=AC=E5=8F=91=E5=88=B0 KUnit=E3=80=82 +=E5=92=8C KUnit =E6=B5=8B=E8=AF=95=E4=B8=8D=E5=90=8C=E7=9A=84=E6=98=AF=EF= =BC=8C=E8=BF=99=E4=BA=9B=E5=AE=8F=E4=B8=8D=E9=9C=80=E8=A6=81=E4=BC=A0=E9=80= =92=E4=B8=8A=E4=B8=8B=E6=96=87=E5=8F=82=E6=95=B0=EF=BC=88 ``struct kunit *`= ` =EF=BC=89=E3=80=82 +=E8=BF=99=E4=BD=BF=E5=BE=97=E5=AE=83=E4=BB=AC=E6=9B=B4=E6=98=93=E4=BA=8E= =E4=BD=BF=E7=94=A8=EF=BC=8C=E5=90=8C=E6=97=B6=E6=96=87=E6=A1=A3=E7=9A=84=E8= =AF=BB=E8=80=85=E6=97=A0=E9=9C=80=E5=85=B3=E5=BF=83=E5=BA=95=E5=B1=82=E7=94= =A8=E7=9A=84=E6=98=AF=E4=BB=80=E4=B9=88=E6=B5=8B=E8=AF=95=E6=A1=86=E6=9E=B6= =E3=80=82 +=E6=AD=A4=E5=A4=96=EF=BC=8C=E8=BF=99=E7=A7=8D=E6=96=B9=E5=BC=8F=E6=9C=AA= =E6=9D=A5=E4=B9=9F=E8=AE=B8=E5=8F=AF=E4=BB=A5=E8=AE=A9=E6=88=91=E4=BB=AC=E6= =9B=B4=E5=AE=B9=E6=98=93=E6=B5=8B=E8=AF=95=E7=AC=AC=E4=B8=89=E6=96=B9=E4=BB= =A3=E7=A0=81=E3=80=82 + +=E5=BD=93=E5=89=8D=E6=9C=89=E4=B8=80=E4=B8=AA=E9=99=90=E5=88=B6=EF=BC=9AKU= nit =E4=B8=8D=E6=94=AF=E6=8C=81=E5=9C=A8=E5=85=B6=E4=BB=96=E4=BB=BB=E5=8A= =A1=E4=B8=AD=E6=89=A7=E8=A1=8C=E6=96=AD=E8=A8=80=E3=80=82 +=E5=9B=A0=E6=AD=A4=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=96=AD=E8=A8=80=E7=9C=9F= =E7=9A=84=E5=A4=B1=E8=B4=A5=E4=BA=86=EF=BC=8C=E6=88=91=E4=BB=AC=E5=8F=AA=E6= =98=AF=E7=AE=80=E5=8D=95=E5=9C=B0=E6=8A=8A=E9=94=99=E8=AF=AF=E6=89=93=E5=8D= =B0=E5=88=B0=E5=86=85=E6=A0=B8=E6=97=A5=E5=BF=97=E9=87=8C=E3=80=82 +=E5=8F=A6=E5=A4=96=EF=BC=8C=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E4=B8=8D= =E9=80=82=E7=94=A8=E4=BA=8E=E9=9D=9E=E5=85=AC=E5=BC=80=E7=9A=84=E5=87=BD=E6= =95=B0=E3=80=82 + +=E4=BD=9C=E4=B8=BA=E6=96=87=E6=A1=A3=E4=B8=AD=E7=9A=84=E6=B5=8B=E8=AF=95= =E7=A4=BA=E4=BE=8B=EF=BC=8C=E5=BA=94=E5=BD=93=E5=83=8F =E2=80=9C=E5=AE=9E= =E9=99=85=E4=BB=A3=E7=A0=81=E2=80=9D =E4=B8=80=E6=A0=B7=E7=BC=96=E5=86=99= =E3=80=82 +=E4=BE=8B=E5=A6=82=EF=BC=9A=E4=B8=8D=E8=A6=81=E4=BD=BF=E7=94=A8 ``unwrap()= `` =E6=88=96 ``expect()``=EF=BC=8C=E8=AF=B7=E4=BD=BF=E7=94=A8 `? `_ =E8=BF=90=E7=AE=97=E7=AC=A6=E3=80=82 +=E6=9B=B4=E5=A4=9A=E8=83=8C=E6=99=AF=E4=BF=A1=E6=81=AF=EF=BC=8C=E8=AF=B7= =E5=8F=82=E9=98=85=EF=BC=9A + + https://rust.docs.kernel.org/kernel/error/type.Result.html#error-codes-in= -c-and-rust + +``#[test]`` =E6=B5=8B=E8=AF=95 +---------------- + +=E6=AD=A4=E5=A4=96=EF=BC=8C=E8=BF=98=E6=9C=89 ``#[test]`` =E6=B5=8B=E8=AF= =95=E3=80=82=E4=B8=8E=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E7=B1=BB=E4=BC=BC= =EF=BC=8C=E8=BF=99=E4=BA=9B=E6=B5=8B=E8=AF=95=E4=B8=8E=E7=94=A8=E6=88=B7=E7= =A9=BA=E9=97=B4=E4=B8=AD=E7=9A=84=E6=B5=8B=E8=AF=95=E6=96=B9=E5=BC=8F=E4=B9= =9F=E9=9D=9E=E5=B8=B8=E7=9B=B8=E8=BF=91=EF=BC=8C=E5=B9=B6=E4=B8=94=E5=90=8C= =E6=A0=B7=E4=BC=9A=E6=98=A0=E5=B0=84=E5=88=B0 KUnit=E3=80=82 + +=E8=BF=99=E4=BA=9B=E6=B5=8B=E8=AF=95=E9=80=9A=E8=BF=87 ``kunit_tests`` =E8= =BF=87=E7=A8=8B=E5=AE=8F=E5=BC=95=E5=85=A5=EF=BC=8C=E8=AF=A5=E5=AE=8F=E5=B0= =86=E6=B5=8B=E8=AF=95=E5=A5=97=E4=BB=B6=E7=9A=84=E5=90=8D=E7=A7=B0=E4=BD=9C= =E4=B8=BA=E5=8F=82=E6=95=B0=E3=80=82 + +=E4=BE=8B=E5=A6=82=EF=BC=8C=E5=81=87=E8=AE=BE=E6=83=B3=E8=A6=81=E6=B5=8B= =E8=AF=95=E5=89=8D=E9=9D=A2=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E7=A4=BA=E4= =BE=8B=E4=B8=AD=E7=9A=84=E5=87=BD=E6=95=B0 ``f``=EF=BC=8C=E6=88=91=E4=BB=AC= =E5=8F=AF=E4=BB=A5=E5=9C=A8=E5=AE=9A=E4=B9=89=E8=AF=A5=E5=87=BD=E6=95=B0=E7= =9A=84=E5=90=8C=E4=B8=80=E6=96=87=E4=BB=B6=E4=B8=AD=E7=BC=96=E5=86=99=EF=BC= =9A + +.. code-block:: rust + + #[kunit_tests(rust_kernel_mymod)] + mod tests { + use super::*; + + #[test] + fn test_f() { + assert_eq!(f(10, 20), 30); + } + } + +=E5=A6=82=E6=9E=9C=E6=88=91=E4=BB=AC=E6=89=A7=E8=A1=8C=E8=BF=99=E6=AE=B5= =E4=BB=A3=E7=A0=81=EF=BC=8C=E5=86=85=E6=A0=B8=E6=97=A5=E5=BF=97=E4=BC=9A=E6= =98=BE=E7=A4=BA:: + + KTAP version 1 + # Subtest: rust_kernel_mymod + # speed: normal + 1..1 + # test_f.speed: normal + ok 1 test_f + ok 1 rust_kernel_mymod + +=E4=B8=8E=E6=96=87=E6=A1=A3=E6=B5=8B=E8=AF=95=E7=B1=BB=E4=BC=BC=EF=BC=8C `= `assert!`` =E5=92=8C ``assert_eq!`` =E5=AE=8F=E8=A2=AB=E6=98=A0=E5=B0=84=E5= =9B=9E KUnit =E5=B9=B6=E4=B8=94=E4=B8=8D=E4=BC=9A=E5=8F=91=E7=94=9F panic= =E3=80=82 +=E5=90=8C=E6=A0=B7=EF=BC=8C=E6=94=AF=E6=8C=81 `? `_ = =E8=BF=90=E7=AE=97=E7=AC=A6=EF=BC=8C +=E6=B5=8B=E8=AF=95=E5=87=BD=E6=95=B0=E5=8F=AF=E4=BB=A5=E4=BB=80=E4=B9=88= =E9=83=BD=E4=B8=8D=E8=BF=94=E5=9B=9E=EF=BC=88=E5=8D=95=E5=85=83=E7=B1=BB=E5= =9E=8B ``()``=EF=BC=89=E6=88=96 ``Result`` =EF=BC=88=E4=BB=BB=E4=BD=95 ``Re= sult``=EF=BC=89=E3=80=82=E4=BE=8B=E5=A6=82=EF=BC=9A + +.. code-block:: rust + + #[kunit_tests(rust_kernel_mymod)] + mod tests { + use super::*; + + #[test] + fn test_g() -> Result { + let x =3D g()?; + assert_eq!(x, 30); + Ok(()) + } + } + +=E5=A6=82=E6=9E=9C=E6=88=91=E4=BB=AC=E8=BF=90=E8=A1=8C=E6=B5=8B=E8=AF=95= =E5=B9=B6=E4=B8=94=E8=B0=83=E7=94=A8 ``g`` =E5=A4=B1=E8=B4=A5=EF=BC=8C=E9= =82=A3=E4=B9=88=E5=86=85=E6=A0=B8=E6=97=A5=E5=BF=97=E4=BC=9A=E6=98=BE=E7=A4= =BA:: + + KTAP version 1 + # Subtest: rust_kernel_mymod + # speed: normal + 1..1 + # test_g: ASSERTION FAILED at rust/kernel/lib.rs:335 + Expected is_test_result_ok(test_g()) to be true, but is false + # test_g.speed: normal + not ok 1 test_g + not ok 1 rust_kernel_mymod + +=E5=A6=82=E6=9E=9C ``#[test]`` =E6=B5=8B=E8=AF=95=E5=8F=AF=E4=BB=A5=E5=AF= =B9=E7=94=A8=E6=88=B7=E8=B5=B7=E5=88=B0=E7=A4=BA=E4=BE=8B=E4=BD=9C=E7=94=A8= =EF=BC=8C=E9=82=A3=E5=B0=B1=E5=BA=94=E8=AF=A5=E6=94=B9=E7=94=A8=E6=96=87=E6= =A1=A3=E6=B5=8B=E8=AF=95=E3=80=82 +=E5=8D=B3=E4=BD=BF=E6=98=AF API =E7=9A=84=E8=BE=B9=E7=95=8C=E6=83=85=E5=86= =B5=EF=BC=8C=E4=BE=8B=E5=A6=82=E9=94=99=E8=AF=AF=E6=88=96=E8=BE=B9=E7=95=8C= =E9=97=AE=E9=A2=98=EF=BC=8C=E6=94=BE=E5=9C=A8=E7=A4=BA=E4=BE=8B=E4=B8=AD=E5= =B1=95=E7=A4=BA=E4=B9=9F=E5=90=8C=E6=A0=B7=E6=9C=89=E4=BB=B7=E5=80=BC=E3=80= =82 + +``rusttest`` =E5=AE=BF=E4=B8=BB=E6=9C=BA=E6=B5=8B=E8=AF=95 +----------------------- + +=E8=BF=99=E7=B1=BB=E6=B5=8B=E8=AF=95=E8=BF=90=E8=A1=8C=E5=9C=A8=E7=94=A8= =E6=88=B7=E7=A9=BA=E9=97=B4=EF=BC=8C=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87 ``= rusttest`` =E7=9B=AE=E6=A0=87=E5=9C=A8=E6=9E=84=E5=BB=BA=E5=86=85=E6=A0=B8= =E7=9A=84=E5=AE=BF=E4=B8=BB=E6=9C=BA=E4=B8=AD=E7=BC=96=E8=AF=91=E5=B9=B6=E8= =BF=90=E8=A1=8C:: + + make LLVM=3D1 rusttest + +=E5=BD=93=E5=89=8D=E6=93=8D=E4=BD=9C=E9=9C=80=E8=A6=81=E5=86=85=E6=A0=B8 `= `.config``=E3=80=82 + +=E7=9B=AE=E5=89=8D=EF=BC=8C=E5=AE=83=E4=BB=AC=E4=B8=BB=E8=A6=81=E7=94=A8= =E4=BA=8E=E6=B5=8B=E8=AF=95 ``macros`` crate =E7=9A=84=E7=A4=BA=E4=BE=8B=E3= =80=82 + +Kselftests +---------- + +Kselftests =E5=8F=AF=E4=BB=A5=E5=9C=A8 ``tools/testing/selftests/rust`` = =E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=AD=E6=89=BE=E5=88=B0=E3=80=82 + +=E6=B5=8B=E8=AF=95=E6=89=80=E9=9C=80=E7=9A=84=E5=86=85=E6=A0=B8=E9=85=8D= =E7=BD=AE=E9=80=89=E9=A1=B9=E5=88=97=E5=9C=A8 ``tools/testing/selftests/rus= t/config`` =E6=96=87=E4=BB=B6=E4=B8=AD=EF=BC=8C +=E5=8F=AF=E4=BB=A5=E5=80=9F=E5=8A=A9 ``merge_config.sh`` =E8=84=9A=E6=9C= =AC=E5=90=88=E5=B9=B6=E5=88=B0=E7=8E=B0=E6=9C=89=E9=85=8D=E7=BD=AE=E4=B8=AD= :: + + ./scripts/kconfig/merge_config.sh .config tools/testing/selftests/rust/co= nfig + +Kselftests =E4=BC=9A=E5=9C=A8=E5=86=85=E6=A0=B8=E6=BA=90=E7=A0=81=E6=A0=91= =E4=B8=AD=E6=9E=84=E5=BB=BA=EF=BC=8C=E4=BB=A5=E4=BE=BF=E5=9C=A8=E8=BF=90=E8= =A1=8C=E7=9B=B8=E5=90=8C=E7=89=88=E6=9C=AC=E5=86=85=E6=A0=B8=E7=9A=84=E7=B3= =BB=E7=BB=9F=E4=B8=8A=E6=89=A7=E8=A1=8C=E6=B5=8B=E8=AF=95=E3=80=82 + +=E4=B8=80=E6=97=A6=E5=AE=89=E8=A3=85=E5=B9=B6=E5=90=AF=E5=8A=A8=E4=BA=86= =E4=B8=8E=E6=BA=90=E7=A0=81=E6=A0=91=E5=8C=B9=E9=85=8D=E7=9A=84=E5=86=85=E6= =A0=B8=EF=BC=8C=E6=B5=8B=E8=AF=95=E5=8D=B3=E5=8F=AF=E9=80=9A=E8=BF=87=E4=BB= =A5=E4=B8=8B=E5=91=BD=E4=BB=A4=E7=BC=96=E8=AF=91=E5=B9=B6=E6=89=A7=E8=A1=8C= :: + + make TARGETS=3D"rust" kselftest + +=E8=AF=B7=E5=8F=82=E9=98=85 Documentation/dev-tools/kselftest.rst =E6=96= =87=E6=A1=A3=E4=BB=A5=E8=8E=B7=E5=8F=96=E6=9B=B4=E5=A4=9A=E4=BF=A1=E6=81=AF= =E3=80=82 base-commit: 344657696e9aa7bf89e48e1848fe0ce551bd1f4a --=20 2.43.0