From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 A48B51DEFD2 for ; Thu, 10 Apr 2025 15:19:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744298380; cv=none; b=PzP3ZyTr/bEMN08ALMPuGfBG1hk7d0K2Dq0pdVM9M9Dcx9fil6spKCdinO91sgDTnjw7x7FqO7aYx4dHSz1fRboMJj4JWI5vSk6s9BPReB7xyUhI4YEp8wQPhv1GeZsqrw6QNGjOGUSIDB72NVq5RXAwkTRVQLC2EeBuqpsI1ps= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744298380; c=relaxed/simple; bh=cEv9BRFMpDV/vpqigYmWTgh5vZ3LGGJz6uau0Z8qq5g=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=fN2w4ABDURXaVCGCERZe2kHIdaFUaiKU4iJEiDFOjvMEz/m7Zrwe7iZrCuEBSHfzpXMMjX3FkzPyquTYAsuG6bgXh2lM7vg0R8o9vYqtMX8dmnv1STdSwp/AbZ5b/VBJeoMVriaus0jKl+fYXKDfCIcR7r4FewiB7foZez9Vjqc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linuxfoundation.org; spf=pass smtp.mailfrom=linuxfoundation.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=AlpRKE1s; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linuxfoundation.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="AlpRKE1s" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-86135d11760so71635039f.2 for ; Thu, 10 Apr 2025 08:19:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1744298377; x=1744903177; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=p0hDnHJGstcN5tjUtZArcj8+BnFv1raQiFlYzncXH4Q=; b=AlpRKE1sQSiwk2ZFeiEaiFDLbTEmbAA22ab2hduE3gEBvhDqm8BEJtSPGheTFwCF2S 2BSQzHMraWKrhr7Fo5MO8rlVR9LJHOChF6yiyi7D/Xg769dBu980WH8m899ohrweCRiO qIWc/aURlpJe1AO2TCmLw0t+Ci97JjNGSiHF0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744298377; x=1744903177; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=p0hDnHJGstcN5tjUtZArcj8+BnFv1raQiFlYzncXH4Q=; b=Eve5KpAcYzM4k3SnfRK4sPfhv4UvdJKvz70HAJ5ZgYwo/s6pwKMFg/MActsY2vIYcO kd6klcwK9RujMP0Zuz1Jgv54B3eR7cGBsuXeLW3MkpUfa0ki+JHEtsnIQ91Fjr2Qbfqb apBO73rtQSxb8lNeHV1dDS5jFxXKdgO1gi/aBbY4PQ0/wFcCgjAYSCnRKUktj4j4oSwk 73CGDSqvj0ww9bPSEbgyQMC31C0cm+PnBWReY7aucZFkIV6rV+w0erBUcoMzx7CKEYnI m3IHEopdDPHgEhNezEtzQ/w7ONr+B4v3Eur5tym6nNBmOvgPnYeFpqcggCNPrvqTcNxY KNcw== X-Gm-Message-State: AOJu0Yy5UaPckbthWAUe10S0ny9jjyLenoS8cydpLrSvR0ArywCnwQss LBGUnWqRqrGsJ39MrP1TRoOQBuQIboBEyD2jGdn6vwpzPI/NNKTIUsU70w6bE+s= X-Gm-Gg: ASbGncsSSsJ4+Ty1dEnXClFXxzGLKZKayyQLnVms6/HSicUBHcgqvDA26N8y/vvpaPC EopDRnt3JV8l9xOSTazYcUUlmYrz2uujW/MAfCQHQVOTuWDAs9gPUoxpcnpiAyTn+AwMDisXGv4 MvQNdepR1s53ecOgOOhOV4/rQFyqqSBjcSG/3P6nbm0wmZi5N+Ms/8o1+bjQEvCb7soauHLtXqX sAWmNsLllFCAKZ1EnbjDx1iA+ZttfdBBiAbrJ+/gxZKrmp5a7XptctCnr+Zfuog76PZDCAjVGNw v4lHpMyK/e0zXwZTPeGqtV5LnzCp2a5ESnfd1FTeYpT1kjylTjA= X-Google-Smtp-Source: AGHT+IGYghOS+7i1wcjdHgqxdKs6EGmjkmfFhSRU0tTXTq7Y1uPzPEsOxwWaQxdrY5CbbwPl+8ibhw== X-Received: by 2002:a05:6e02:1888:b0:3d4:700f:67e7 with SMTP id e9e14a558f8ab-3d7e5fcfe40mr29388885ab.17.1744298377689; Thu, 10 Apr 2025 08:19:37 -0700 (PDT) Received: from [192.168.1.14] ([38.175.170.29]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f505e2e610sm772963173.108.2025.04.10.08.19.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Apr 2025 08:19:37 -0700 (PDT) Message-ID: <04bf6bbc-d813-488d-9117-def19717b8b5@linuxfoundation.org> Date: Thu, 10 Apr 2025 09:19:36 -0600 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 00/32] kselftest harness and nolibc compatibility To: =?UTF-8?Q?Thomas_Wei=C3=9Fschuh?= , Shuah Khan , Willy Tarreau , =?UTF-8?Q?Thomas_Wei=C3=9Fschuh?= Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Shuah Khan References: <20250407-nolibc-kselftest-harness-v2-0-f8812f76e930@linutronix.de> Content-Language: en-US From: Shuah Khan In-Reply-To: <20250407-nolibc-kselftest-harness-v2-0-f8812f76e930@linutronix.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 4/7/25 00:52, Thomas Weißschuh wrote: > Nolibc is useful for selftests as the test programs can be very small, > and compiled with just a kernel crosscompiler, without userspace support. > Currently nolibc is only usable with kselftest.h, not the more > convenient to use kselftest_harness.h > This series provides this compatibility by adding new features to nolibc > and removing the usage of problematic features from the harness. > > The first half of the series are changes to the harness, the second one > are for nolibc. Both parts are very independent and should go through > different trees. > The last patch is not meant to be applied and serves as test that > everything works together correctly. > > Signed-off-by: Thomas Weißschuh > --- > Changes in v2: > - Rebase unto v6.15-rc1 > - Rename internal nolibc symbols > - Handle edge case of waitpid(INT_MIN) == ESRCH > - Fix arm configurations for final testing patch > - Clean up global getopt.h variable declarations > - Add Acks from Willy > - Link to v1: https://lore.kernel.org/r/20250304-nolibc-kselftest-harness-v1-0-adca7cd231e2@linutronix.de Thank you. I am going to start reviewing the series. It could take me a few days to get through all 32 patches. :) > > --- > Thomas Weißschuh (32): > selftests: harness: Add harness selftest > selftests: harness: Use C89 comment style > selftests: harness: Ignore unused variant argument warning > selftests: harness: Mark functions without prototypes static > selftests: harness: Remove inline qualifier for wrappers > selftests: harness: Remove dependency on libatomic > selftests: harness: Implement test timeouts through pidfd > selftests: harness: Don't set setup_completed for fixtureless tests > selftests: harness: Always provide "self" and "variant" > selftests: harness: Move teardown conditional into test metadata > selftests: harness: Add teardown callback to test metadata > selftests: harness: Stop using setjmp()/longjmp() > selftests: harness: Guard includes on nolibc > tools/nolibc: handle intmax_t/uintmax_t in printf > tools/nolibc: use intmax definitions from compiler > tools/nolibc: use pselect6_time64 if available > tools/nolibc: use ppoll_time64 if available > tools/nolibc: add tolower() and toupper() > tools/nolibc: add _exit() > tools/nolibc: add setpgrp() > tools/nolibc: implement waitpid() in terms of waitid() > Revert "selftests/nolibc: use waitid() over waitpid()" > tools/nolibc: add dprintf() and vdprintf() > tools/nolibc: add getopt() > tools/nolibc: allow different write callbacks in printf > tools/nolibc: allow limiting of printf destination size > tools/nolibc: add snprintf() and friends > selftests/nolibc: use snprintf() for printf tests > selftests/nolibc: rename vfprintf test suite > selftests/nolibc: add test for snprintf() truncation > tools/nolibc: implement width padding in printf() > HACK: selftests/nolibc: demonstrate usage of the kselftest harness > > tools/include/nolibc/Makefile | 1 + > tools/include/nolibc/getopt.h | 101 ++ > tools/include/nolibc/nolibc.h | 1 + > tools/include/nolibc/stdint.h | 4 +- > tools/include/nolibc/stdio.h | 127 +- > tools/include/nolibc/string.h | 17 + > tools/include/nolibc/sys.h | 105 +- > tools/testing/selftests/Makefile | 1 + > tools/testing/selftests/kselftest/.gitignore | 1 + > tools/testing/selftests/kselftest/Makefile | 6 + > .../testing/selftests/kselftest/harness-selftest.c | 129 ++ > .../selftests/kselftest/harness-selftest.expected | 62 + > .../selftests/kselftest/harness-selftest.sh | 14 + > tools/testing/selftests/kselftest_harness.h | 181 +- > tools/testing/selftests/nolibc/Makefile | 13 +- > tools/testing/selftests/nolibc/harness-selftest.c | 1 + > tools/testing/selftests/nolibc/nolibc-test.c | 1729 +------------------- > tools/testing/selftests/nolibc/run-tests.sh | 2 +- > 18 files changed, 635 insertions(+), 1860 deletions(-) > --- > base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8 > change-id: 20250130-nolibc-kselftest-harness-8b2c8cac43bf > thanks, -- Shuah