From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6890474322769477632 X-Received: by 2002:adf:f289:: with SMTP id k9mr36582660wro.0.1604522690459; Wed, 04 Nov 2020 12:44:50 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:20c9:: with SMTP id g192ls1746067wmg.1.canary-gmail; Wed, 04 Nov 2020 12:44:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJz3LZEVedS+rfVJvIcuz8Nt7HV5xkEi/aYu/KFUtGzNUlwyOBFYkbQztBKtZJJR9iUjs4pY X-Received: by 2002:a1c:3d54:: with SMTP id k81mr6910846wma.144.1604522689437; Wed, 04 Nov 2020 12:44:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604522689; cv=none; d=google.com; s=arc-20160816; b=GpvNhc8SS6cd+iHJxv9Vsr1isXgLjcCGJYel3juy1q6tjIk97iNPSs087we8lck7L+ ABFpiiJL9ib+DAskZNCvvmFG2Ii4DwkzKM4DXGbh4gnJZWjiA4aYymDSPIE0Eo/awNd+ 1f8p2w6/APhtZlJLJfwWZMyx5VVaJoxEN9z5Kn7V5Ddnm1TW2WAPq0KGNn7SFYNZ6nE0 RGpfW5ATcvDeEtZP/Q188cSVETFXL28DZXZz1mz8VNp5amIoWVMBSADqGB0HpkqZ2Mf/ KN81gx8lHPdqMT8rB4Wx6NWDOhb4uANcIh241epr7aV9sgAj7maf8RALxCIy9+eM4ocm NdSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date; bh=jCGuKMo5S8p659uCN/7iLyXxuOLvL9X9CNTfSu/4gNY=; b=qGPCn+vE8cPAp6+7PcjeOAH6EUQ8pWrNLzjiUkRBbdw1tsZp5wMuwNzzkBdDR6mPQ/ o9VdZVdDk6ZHZ5gs8Z+GaKdcZROrPkumB3aHeHywMBxFsI+wispPJJWKKIS+nVyRPOY1 FNc5zDBhtRUJtV8+JPbvrgjMFsIJhJXBNgo4nA7gPj2WzEpdQv6Q9YsOYS4QyZ29E0+G JxhCqQ6947rvLxGLiPtUkpFCfy4qpT+4vL4bAnmrN3zA9IyHnKf+vMXTGJd4LRhJqG6S q/0CZaZpG7vyV3InIyMifc9I30CwSMsn8O0GhB9I1XYSagg+EVxM7buy1wv8cS2/oq+A Rgag== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id o16si92998wrv.1.2020.11.04.12.44.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Nov 2020 12:44:49 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=henning.schild@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 lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 0A4Kinb9029244 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 4 Nov 2020 21:44:49 +0100 Received: from md1za8fc.ad001.siemens.net ([167.87.3.45]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 0A4KimVL016174; Wed, 4 Nov 2020 21:44:48 +0100 Date: Wed, 4 Nov 2020 21:44:47 +0100 From: Henning Schild To: Vijai Kumar K Cc: Subject: Re: [PATCH v4] Add recipe for linux kselftest Message-ID: <20201104214447.25133bb0@md1za8fc.ad001.siemens.net> In-Reply-To: <20201102072511.26675-1-Vijaikumar_Kanagarajan@mentor.com> References: <20201102072511.26675-1-Vijaikumar_Kanagarajan@mentor.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: E2y8AkiOSQUO Did not follow the thread and coming late to the table. Did anyone consider pushing this upstream into the kernel? For the kernel itself we eventually failed. But because it turned out to be too complicated to find a generic debianization that fits all the needs. For a tool it might be a different story. Henning Am Mon, 2 Nov 2020 12:55:11 +0530 schrieb Vijai Kumar K : > 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_TARGETS can be set using the appropriate > KSELFTEST_* recipe variable. > > Signed-off-by: Vijai Kumar K > --- > Changes since v3: > - Remove libnuma-dev. Since it is not available in stretch. > - remove entry in isar-image-debug. Added to CI image using > IMAGE_INSTALL. > > Changes since v2: > - Use deb_debianize instead of individual calls for changelog, compat > & control. > - Add package to isar-image-debug > > Changes since v1: > - Addressed review comments in v1 > - Used debianize APIs for control, compat and changelog. > - Moved Depends & S definitions to include file. > - Added cross compilation bits in rules. > - Change clang, llvm to clang:native & llvm:native > > .../kselftest/kselftest_5.6.13.bb | 11 ++++ > meta/recipes-kernel/kselftest/files/rules | 41 +++++++++++++ > meta/recipes-kernel/kselftest/kselftest.inc | 58 > +++++++++++++++++++ scripts/ci_build.sh | > 1 + 4 files changed, 111 insertions(+) > create mode 100644 > meta-isar/recipes-kernel/kselftest/kselftest_5.6.13.bb create mode > 100755 meta/recipes-kernel/kselftest/files/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..0c9818a > --- /dev/null > +++ b/meta-isar/recipes-kernel/kselftest/kselftest_5.6.13.bb > @@ -0,0 +1,11 @@ > +# 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 > + > +SRC_URI += > "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz" > +SRC_URI[sha256sum] = > "f125d79c8f6974213638787adcad6b575bbd35a05851802fd83f622ec18ff987" > diff --git a/meta/recipes-kernel/kselftest/files/rules > b/meta/recipes-kernel/kselftest/files/rules new file mode 100755 > index 0000000..776d341 --- /dev/null +++ > b/meta/recipes-kernel/kselftest/files/rules @@ -0,0 +1,41 @@ > +#!/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 +export > CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)- + > +ifeq ($(DEB_HOST_GNU_CPU), arm) > +export ARCH=arm > +endif > +ifeq ($(DEB_HOST_GNU_CPU), aarch64) > +export ARCH=arm64 > +endif > +ifeq ($(DEB_HOST_GNU_CPU), riscv64) > +export ARCH=riscv > +endif > +ifneq (,$(findstring 86,$(DEB_HOST_GNU_CPU))) > +export ARCH=x86 > +endif > + > +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..2a76028 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/kselftest.inc > @@ -0,0 +1,58 @@ > +# Kselftest package for Linux > +# > +# This software is a part of ISAR. > +# Copyright (c) Mentor Graphics, a Siemens Business, 2020 > +# > +# SPDX-License-Identifier: MIT > + > +inherit dpkg > + > +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" > + > +# Some test-cases like memfd compilation failed in cross-compilation. > +# Force native compilation for now to have consistent output across > +# ISAR native/cross compilation setups. > +ISAR_CROSS_COMPILE = "0" > + > +DESCRIPTION ?= "Kernel selftests from Linux kernel ${PV}" > + > +DEBIAN_BUILD_DEPENDS ?= " \ > + rsync, \ > + flex, \ > + bison, \ > + fuse, \ > + libelf-dev:native, \ > + libcap-ng-dev:native, \ > + libpopt-dev:native, \ > + libcap-dev:native, \ > + libmount-dev:native, \ > + libfuse-dev:native, \ > + libmnl-dev:native, \ > + pkg-config, \ > + clang:native, \ > + llvm:native, \ > +" > + > +SRC_URI += "file://rules" > +S = "${WORKDIR}/linux-${PV}" > + > +KSELFTEST_TARGETS ?= "" > +KSELFTEST_SKIP_TARGETS ?= "" > +KSELFTEST_FORCE_TARGETS ?= "0" > + > +do_prepare_build[cleandirs] += "${S}/debian" > +do_prepare_build() { > + deb_debianize > +} > + > +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 > +} > diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh > index c0a032e..2d06543 100755 > --- a/scripts/ci_build.sh > +++ b/scripts/ci_build.sh > @@ -143,6 +143,7 @@ cat >>conf/local.conf < ISAR_ENABLE_COMPAT_ARCH_amd64 = "1" > ISAR_ENABLE_COMPAT_ARCH_arm64 = "1" > ISAR_ENABLE_COMPAT_ARCH_debian-stretch_amd64 = "0" > +IMAGE_INSTALL += "kselftest" > EOF > > if [ -n "$CROSS_BUILD" ]; then