From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6828154244872273920 X-Received: by 2002:a19:ae10:: with SMTP id f16mr11213993lfc.74.1589814780686; Mon, 18 May 2020 08:13:00 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:651c:288:: with SMTP id b8ls1775322ljo.8.gmail; Mon, 18 May 2020 08:12:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3pL9ludcvU9W5MQ3A3rzDUb56AOnqU5ZlcJqEh5w+K7ZHYu4Plgftf/3IJsRyhwQ6bhre X-Received: by 2002:a2e:9207:: with SMTP id k7mr10805811ljg.124.1589814779833; Mon, 18 May 2020 08:12:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589814779; cv=none; d=google.com; s=arc-20160816; b=EGg2PuXfaQex1DMhLIgfQgSoP/pyqH11er5UTvCQi6Hzt7WYOnr3C+9lrCbEPK8gHu qRXrVCnlk4/wglOAVJfp2OHk4NLhnqC5RqmFiB0zBjxoyXcK8nZvb0SGGTowG0wGs3xp wzuB9Hr3vXpRSXCTZxpXhIlKhSdOr76n2Owz73aiXkZ0caNmMV9eHVh9P86e5QbEIrEi rF+itqdzK+tw5z1MHTkV3A2mBRKMtuWLXn4wc4ETtTShNQuA1WJGTnZrS1V2hiSZgz6C vaau0ceX1yn70/gPQSlh60J7I83zzD2Zna9hfK+bii3v//T4ASHiTjUbonpwxl08yVGd gLtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:to:subject; bh=FIVc9E5Nli3G3YSZfOUfb7s3bhQF3J3Gb7w9fYyNYdQ=; b=VCWFNSW1veMB8u/2U6jKSTqf3zlC4gyiWO+egvzQ91xiFW6EC8DHqXYHp9Xc574IK+ Fo2EU6CYYpqmEMD1JANZhjfTtTXy78fwpvMbi7R6Y/YNfhn681GYnMVrWPSuVT3tCE3u oLFXh+dhsGaqpaPkhS7K97lXWSui8VXyVDeuONA8IheZZMFSxBt02HuGGSwVdxX7XExx BJkH8Hcs6EyO74YLmpa9y0A+4DYaWcrjR9aMHRGFy4F8znDaYP6pAolFsRghWRrWKawT bRX94k8sTsx+iAHuxZBadAZd1YL/++x2cvNwdzwb7mGoPKBSYTAa2sbX1JQ5PgFlHBTd /xYw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id c24si765275lff.2.2020.05.18.08.12.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 May 2020 08:12:58 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id 04IFCwex010312 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 18 May 2020 17:12:58 +0200 Received: from [167.87.94.217] ([167.87.94.217]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 04IFCvhm005227 for ; Mon, 18 May 2020 17:12:57 +0200 Subject: Re: [PATCH] Add recipe for linux kselftest To: isar-users@googlegroups.com References: <20200518120526.8279-1-Vijaikumar_Kanagarajan@mentor.com> From: Jan Kiszka Message-ID: <42ea0194-db8d-09eb-2157-2b1af59bcad9@siemens.com> Date: Mon, 18 May 2020 17:12:57 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200518120526.8279-1-Vijaikumar_Kanagarajan@mentor.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: ouvyONIhi/Er On 18.05.20 14:05, Vijai Kumar K wrote: > Kselftest is a set of unit and regression tests under the > tools/testing/selftests/ directory of the Linux kernel. These are used > for testing individual code paths in the kernel. > > Kselftest is not debianized and is not available as part of the official > Debian repository. > > This patch provides a recipe to build kselftest from the linux source of > your choice. > > Sometimes developers/testers tend to use the latest version of selftests > from Linux upstream stable releases for testing and hence the need for a > separate recipe instead of being part of the linux recipe of ISAR. > > Some kselftest test cases build are known to break in certain linux > versions, this has to be addressed upstream. Right now kselftest build > succeeds even if atleast one of the testcase case build succeeds. > > You can change that by setting KSELFTEST_FORCE_TARGETS=1. > > TARGETS, TARGETS_SKIP, FORCE_TARETS can be set using the appropriate > KSELFTEST_* recipe variable. > > Signed-off-by: Vijai Kumar K > --- > .../kselftest/kselftest_5.6.13.bb | 27 ++++++++++++ > .../kselftest/files/debian/changelog.tmpl | 5 +++ > .../kselftest/files/debian/compat | 1 + > .../kselftest/files/debian/control.tmpl | 10 +++++ > .../kselftest/files/debian/rules | 27 ++++++++++++ > meta/recipes-kernel/kselftest/kselftest.inc | 44 +++++++++++++++++++ > 6 files changed, 114 insertions(+) > create mode 100644 meta-isar/recipes-kernel/kselftest/kselftest_5.6.13.bb > create mode 100644 meta/recipes-kernel/kselftest/files/debian/changelog.tmpl > create mode 100644 meta/recipes-kernel/kselftest/files/debian/compat > create mode 100644 meta/recipes-kernel/kselftest/files/debian/control.tmpl > create mode 100755 meta/recipes-kernel/kselftest/files/debian/rules > create mode 100644 meta/recipes-kernel/kselftest/kselftest.inc > > diff --git a/meta-isar/recipes-kernel/kselftest/kselftest_5.6.13.bb b/meta-isar/recipes-kernel/kselftest/kselftest_5.6.13.bb > new file mode 100644 > index 0000000..3303742 > --- /dev/null > +++ b/meta-isar/recipes-kernel/kselftest/kselftest_5.6.13.bb > @@ -0,0 +1,27 @@ > +# Kselftest package > +# > +# This software is a part of ISAR. > +# Copyright (c) Mentor Graphics, a Siemens business, 2020 > +# > +# SPDX-License-Identifier: MIT > + > +require recipes-kernel/kselftest/kselftest.inc > + > +KSELFTEST_DEPENDS += " \ > + libelf-dev:native, \ > + libcap-ng-dev:native, \ > + libpopt-dev:native, \ > + libcap-dev:native, \ > + libmount-dev:native, \ > + libnuma-dev:native, \ > + libfuse-dev:native, \ > + libmnl-dev:native, \ > + pkg-config, \ > + clang, \ > + llvm, \ > + " Are all of these deps specific to the version, or would it make sense to extract some common ones (or even all?) to kselftest.inc? > + > +SRC_URI += "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz" > +SRC_URI[sha256sum] = "f125d79c8f6974213638787adcad6b575bbd35a05851802fd83f622ec18ff987" > + > +S = "${WORKDIR}/linux-${PV}" The SRC_URI and S are likely also version-independent. > diff --git a/meta/recipes-kernel/kselftest/files/debian/changelog.tmpl b/meta/recipes-kernel/kselftest/files/debian/changelog.tmpl > new file mode 100644 > index 0000000..6e59e06 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/files/debian/changelog.tmpl > @@ -0,0 +1,5 @@ > +${PN} (${PV}) unstable; urgency=low > + > + * Generated package. > + > + -- ISAR project Tue, 6 Feb 2018 00:00:00 +0000 deb_add_changelog? > diff --git a/meta/recipes-kernel/kselftest/files/debian/compat b/meta/recipes-kernel/kselftest/files/debian/compat > new file mode 100644 > index 0000000..ec63514 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/files/debian/compat > @@ -0,0 +1 @@ > +9 > diff --git a/meta/recipes-kernel/kselftest/files/debian/control.tmpl b/meta/recipes-kernel/kselftest/files/debian/control.tmpl > new file mode 100644 > index 0000000..de5d315 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/files/debian/control.tmpl > @@ -0,0 +1,10 @@ > +Source: ${PN} > +Section: kernel > +Priority: optional > +Build-Depends: ${KSELFTEST_DEPENDS} > +Standards-Version: 3.9.6 > +Maintainer: ISAR project > + > +Package: ${PN} > +Architecture: any > +Description: ${DESCRIPTION} This looks to like deb_create_control could generate it as well. If you like, you could still patch the setion afterward from misc to kernel. > diff --git a/meta/recipes-kernel/kselftest/files/debian/rules b/meta/recipes-kernel/kselftest/files/debian/rules > new file mode 100755 > index 0000000..6f49138 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/files/debian/rules > @@ -0,0 +1,27 @@ > +#!/usr/bin/make -f > + > +# Debian rules for Kselftest build > +# > +# This software is a part of ISAR. > +# Copyright (c) Mentor, A Siemens Business > +# > +# SPDX-License-Identifier: MIT > + > +deb_top_dir:=$(CURDIR)/debian > +kselftest_install_dir :=$(deb_top_dir)/kselftest/usr/libexec/kselftest > + > +PARALLEL_BUILD=-j $(shell echo $$(($$(nproc) * 2))) > + > +override_dh_auto_build: > + $(MAKE) defconfig > + $(MAKE) $(PARALLEL_BUILD) -C tools/testing/selftests/ ${KSELFTEST_ARGS} > + > +override_dh_auto_install: > + mkdir -p ${kselftest_install_dir} > + cd tools/testing/selftests/ && KSFT_INSTALL_PATH=${kselftest_install_dir} $(MAKE) $(PARALLEL_BUILD) install ${KSELFTEST_ARGS} > + > +override_dh_auto_clean: > + rm -rf ${deb_top_dir}/kselftest/ > + > +%: > + CFLAGS= LDFLAGS= dh $@ --parallel > diff --git a/meta/recipes-kernel/kselftest/kselftest.inc b/meta/recipes-kernel/kselftest/kselftest.inc > new file mode 100644 > index 0000000..12ebec9 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/kselftest.inc > @@ -0,0 +1,44 @@ > +# Kselftest package for Linux > +# > +# This software is a part of ISAR. > +# Copyright (c) Mentor Graphics, a Siemens Business, 2020 > +# > +# SPDX-License-Identifier: MIT > + > +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" > + > +DESCRIPTION ?= "Kernel selftests from Linux kernel ${PV}" > + > +ISAR_CROSS_COMPILE = "0" Why that? Please leave a comment so that it can be revisited in future releases, or make version dependent (-> move to .bb recipe). > + > +SRC_URI += "file://debian" > +KSELFTEST_DEPENDS ?= " \ > + rsync, \ > + flex, \ > + bison, \ > + " > +KSELFTEST_TARGETS ?= "" > +KSELFTEST_SKIP_TARGETS ?= "" > +KSELFTEST_FORCE_TARGETS ?= "0" > + > +inherit dpkg > + > +TEMPLATE_FILES += "debian/control.tmpl \ > + debian/changelog.tmpl" > +TEMPLATE_VARS += "KSELFTEST_DEPENDS" > + > +do_prepare_build() { > + cp -rf ${WORKDIR}/debian ${S}/debian > +} > + > +dpkg_runbuild_prepend() { > + if [ -n "${KSELFTEST_TARGETS}" ];then > + export KSELFTEST_ARGS="TARGETS=\"${KSELFTEST_TARGETS}\"" > + fi > + if [ ${KSELFTEST_FORCE_TARGETS} -eq 1 ];then > + export KSELFTEST_ARGS="${KSELFTEST_ARGS} FORCE_TARGETS=1" > + fi > + if [ -n "${KSELFTEST_SKIP_TARGETS}" ];then > + export KSELFTEST_ARGS="${KSELFTEST_ARGS} SKIP_TARGETS=\"${KSELFTEST_SKIP_TARGETS}\"" > + fi > +} > Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux