From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 8AC5A3033D8 for ; Sat, 2 May 2026 07:25:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706745; cv=none; b=PZuMYkJMk4uqBLFM04TT0RxyZHVMk95iGUj0P+OMcdyczG3fia91FvgIpJmXPXQkDu6Xx1Hybf1ssgTpmn2Ou/QRq8F0mun+CScOHew2wwJDLenNIRBsVwIe901cdKdNIRC60xvq7CIVBnxutXqOMpkpVvOJuL7YMdysGNb/uR4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706745; c=relaxed/simple; bh=uucG/1jEuHJlCiDVmdAyl7VFpcEE1YiKQ96C2nIrYoE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IkgyJiXE8o3jbT8/wuu17Bo9+4pazvCdox6PI60EZtcarc5oj3MoZzmINvH9EjTjGeUKuSNSvUu85curOSL3l1SDEOzVDwzfB5kNsguKUMfy9ytTZ8HEfTT1zXmnowzSW6D2bq2dotYIGsD/NiMjbxMYBVQPq718lh5vcfRo4jE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp; spf=pass smtp.mailfrom=0x0f.com; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b=E1lSYca4; arc=none smtp.client-ip=209.85.216.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=0x0f.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b="E1lSYca4" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-35da2d35eccso1899539a91.0 for ; Sat, 02 May 2026 00:25:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thingy.jp; s=google; t=1777706744; x=1778311544; 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=BFPTfmCNgN3ylM/PE7LJYNHY+2mwzF4UlfLC70z/f/s=; b=E1lSYca4NEK09o9TuTIaWL12ZFqHXTX4HvnUIqzN1Gp5NPJ0n8gmyJ/rpSZSyHdCdz ryeOvojI43IcR76O45MDBUeEr8HZw2bA/yxrhUy1g5iWSELPInI7bGPJpexhmu3BORLE Iqw0gYkGfBLz67T1pZRiHj027AUcxipYUjTPU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777706744; x=1778311544; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BFPTfmCNgN3ylM/PE7LJYNHY+2mwzF4UlfLC70z/f/s=; b=Vq2PwuPwrdUoOiPvpVgV979Jo0Tzqhg6U4NsTf7ORHATRmwfSm6MmeUsJ/YQukhYa5 4mdGyqTmQJzCl+PkiyI/IiCqNKiwNjPGQ5pVbITLv8A8h051MGX6z4Oc/wppRMBqI9Pe HSBgI59cnbyxfZ4hyzbHQd2mabvpY5sCHPMwhmWVKKFvbGfRbsClfbf9hYTsz/atDf9h jB5K43ATrpLW5AVjgp9NhWpErWVEdy48Cf63f/ZwvoX52E7GUYSvDynFz3f25t+JDtoK Ee32WKn+ZCFrmb82QhOxD4GBZg0sbrH/g+vmCbbBN+Mf8RzHQYq59ASYQZ/LG/0WhFEs S51g== X-Gm-Message-State: AOJu0YwPb6RiPDhye2s5UDOQ7JRrd5cWlNyMkoNkD0MvdjeMkOtd4eqe xurEJm250mUs2ADYeo5AN0aKTr6/7sp0EqzGJOxM7xAp4VYfF4XB9U26njvRTcrtb5YmBYHeiMx 0aIhc X-Gm-Gg: AeBDieseywQ3sFZQbnMfOAQCHrEQOjlxyoj/P7mBEKl8Gpd/vCn4SHuubTPzajrB6r7 WTICGuxKyKUNQFZH09qeBQavHGAF4nZKY/xKBGS/2qjVUneFhPmoRqhpNwHqifCR1PobIL6ieMR VSKKUvhjMbE4Gm81huZkTQARw0Kx7EsDE21HbyB8JjCaQ2ptq8iJNV3ivKyYX0nmwjXdwsPK38p sAs+e7bxlw+8pk48QkctB2OzHaKiAzFY2rJ3AHmvygX2muo5nbLUPFxFo2e7EKrRvQlP1RP+WxK 9z/EJ1NEDg4CRlu3Optt63QcJSTJDnogemepMvjBTYy/IRXgxpt2oC138V2e+RgwhQeRvHmkifz NnBM/a/8kcAtn5CcxnJs25bpfQiKqdPeTAtOw3EVr9CliwmbVsuYGSvhwmLRwIiVnSRYwIuueKg F5FobMDQ+wwd4lWg2tvdxC0oH9T625JILmQg1UGOd3JMpbiXTNJNKr9Lm3fxLNzE1gh0Qu9rw41 3fLLPpGP4bA9a2buN9NeKC9qDQ= X-Received: by 2002:a17:90b:3849:b0:359:87a8:e65c with SMTP id 98e67ed59e1d1-3650ce38382mr2341820a91.17.1777706743904; Sat, 02 May 2026 00:25:43 -0700 (PDT) Received: from kinako.work.home.arpa (p1387170-ipxg00a01sizuokaden.shizuoka.ocn.ne.jp. [153.221.239.170]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-364ebf12bcesm4287557a91.7.2026.05.02.00.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 00:25:43 -0700 (PDT) From: Daniel Palmer To: w@1wt.eu, linux@weissschuh.net Cc: linux-kernel@vger.kernel.org, Daniel Palmer Subject: [PATCH 3/3] selftests/nolibc: Add test for getcwd() and readlink() Date: Sat, 2 May 2026 16:25:27 +0900 Message-ID: <20260502072527.1805108-4-daniel@thingy.jp> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260502072527.1805108-1-daniel@thingy.jp> References: <20260502072527.1805108-1-daniel@thingy.jp> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add a test for getcwd() that uses readlink() so tests that at the same time. This is very basic, just getting what should be the same string via getcwd() and readlink() and then checking they are the same. Signed-off-by: Daniel Palmer --- tools/testing/selftests/nolibc/nolibc-test.c | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c index 08610cacf030..54513fb9a16a 100644 --- a/tools/testing/selftests/nolibc/nolibc-test.c +++ b/tools/testing/selftests/nolibc/nolibc-test.c @@ -849,6 +849,31 @@ static int test_dirent(void) return 0; } +static int test_getcwd(void) +{ + char cwd_syscall[1024]; + char cwd_proc[1024]; + ssize_t len; + + /* Read where the link /proc/self/cwd points */ + len = readlink("/proc/self/cwd", cwd_proc, sizeof(cwd_proc) - 1); + if (len <= 0) + return -1; + + /* Terminate the string from readlink() */ + cwd_proc[len] = '\0'; + + /* Get the cwd via syscall */ + if (getcwd(cwd_syscall, sizeof(cwd_syscall)) == NULL) + return -1; + + /* Fail if they aren't the same */ + if (strcmp(cwd_proc, cwd_syscall) != 0) + return -1; + + return 0; +} + int test_getrandom(void) { uint64_t rng = 0; @@ -1477,6 +1502,7 @@ int run_syscall(int min, int max) CASE_TEST(clock_getres); EXPECT_SYSZR(1, clock_getres(CLOCK_MONOTONIC, &ts)); break; CASE_TEST(clock_gettime); EXPECT_SYSZR(1, clock_gettime(CLOCK_MONOTONIC, &ts)); break; CASE_TEST(clock_settime); EXPECT_SYSER(1, clock_settime(CLOCK_MONOTONIC, &ts), -1, EINVAL); break; + CASE_TEST(getcwd); EXPECT_SYSZR(1, test_getcwd()); break; CASE_TEST(getpid); EXPECT_SYSNE(1, getpid(), -1); break; CASE_TEST(getppid); EXPECT_SYSNE(1, getppid(), -1); break; CASE_TEST(gettid); EXPECT_SYSNE(has_gettid, gettid(), -1); break; -- 2.53.0