From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6828154244872273920 X-Received: by 2002:ac2:4105:: with SMTP id b5mr15322666lfi.94.1589888681000; Tue, 19 May 2020 04:44:41 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:86cf:: with SMTP id n15ls2341689ljj.11.gmail; Tue, 19 May 2020 04:44:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQT/Roq6C/6MQCYnfK8kQM8HfeXuHQoLWh6p4F1hETronOAvIB97QGzbJKJVcfyYHWubfp X-Received: by 2002:a2e:96d1:: with SMTP id d17mr13241049ljj.239.1589888680090; Tue, 19 May 2020 04:44:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589888680; cv=none; d=google.com; s=arc-20160816; b=tadgcSAr3WtNrJgM9RHSAGG/Mng845uk7q4rWEXLO4sTcWHdQGQPRxpEF38k00dPFX 2NIMRR8b+8B8zLTGqWSCUnuvxjcrEkCGenOfIm3/XUSamlfPYNYAAHx/1furPH8KEz5W 8CIm7IM5QRd7jrx+IU85pcGlWuef/z44BTommHbd3o3Fc1DkzDMSi2Kw3y8iPQA5WBoe EPx83OVSbyJVQu3fUEles6P9qv62f4aiNJYCoUyLokRGQdJg5qI+9huWIFyZka1wX7Ph 5MgF/MEzsSLm+o4xgAFVyGp/KMI9qflR7NtGeteMxTHthjKoW2p9LrrP7Vp3Jt/26lkN hwoA== 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=vPu/a9T34nwvPSODNM6nR+geST91dwSbz4VH+bF/1i0=; b=VSKXajxqasaMSjXIW9snFM3vNZ8st/9agvlbKkrCJFHOanUfLY0BiMD40SH0D6Pb7v 6+3TQO8D9gmmX2AQtRH/c4Idca7LsM0P1Jmh13dJANMnvibLqwdpjeq/imkjZLZS4aSE pHZJHH2s7I7skkLQE0vesNr4x9ZkSYFJcBekMg3KhGLI9Q65LtP6PGc1zxUXiMO+dSkC P+/nt8OjhzPopsqlheaGPT0XHuvGXP0tvs+zsfhmq+nj5i7KZVBEUUe4/ffhl3B4H5m6 xQLprDeUFuAImO+N9savZ5WniPcGDFzBovUmqAYkV4D+dA8cmacBYKWkpIXR7xDmxznl NQfg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 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 goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id e7si276651ljo.2.2020.05.19.04.44.39 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 May 2020 04:44:39 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 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 goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id 04JBidd6030119 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 19 May 2020 13:44:39 +0200 Received: from [167.87.128.54] ([167.87.128.54]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 04JBibBF017116; Tue, 19 May 2020 13:44:38 +0200 Subject: Re: [PATCH v2] Add recipe for linux kselftest To: Vijai Kumar K , isar-users@googlegroups.com References: <20200519110147.14281-1-Vijaikumar_Kanagarajan@mentor.com> From: Jan Kiszka Message-ID: Date: Tue, 19 May 2020 13:44:37 +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: <20200519110147.14281-1-Vijaikumar_Kanagarajan@mentor.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: YAwH5wVrfvJ8 On 19.05.20 13:01, 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_TARGETS can be set using the appropriate > KSELFTEST_* recipe variable. > > Signed-off-by: Vijai Kumar K > --- > 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 ++++ > .../kselftest/files/debian/rules | 41 +++++++++++++ > meta/recipes-kernel/kselftest/kselftest.inc | 61 +++++++++++++++++++ > 3 files changed, 113 insertions(+) > create mode 100644 meta-isar/recipes-kernel/kselftest/kselftest_5.6.13.bb > 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..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/debian/rules b/meta/recipes-kernel/kselftest/files/debian/rules > new file mode 100755 > index 0000000..776d341 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/files/debian/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..46ca282 > --- /dev/null > +++ b/meta/recipes-kernel/kselftest/kselftest.inc > @@ -0,0 +1,61 @@ > +# 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:" > + > +# 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, \ > + libnuma-dev:native, \ > + libfuse-dev:native, \ > + libmnl-dev:native, \ > + pkg-config, \ > + clang:native, \ > + llvm:native, \ > +" > + > +SRC_URI += "file://debian" > +S = "${WORKDIR}/linux-${PV}" > + > +KSELFTEST_TARGETS ?= "" > +KSELFTEST_SKIP_TARGETS ?= "" > +KSELFTEST_FORCE_TARGETS ?= "0" > + > +inherit dpkg > + > +do_prepare_build() { > + cp -rf ${WORKDIR}/debian ${S}/debian > + deb_create_compat > + deb_create_control > + deb_add_changelog Minor: those three (and only these) are also run when just calling deb_debianize. Rules will be skipped as you supplied that already. > +} > + > +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 > +} > LGTM, Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux