[libc-commits] [libc] [libc] Add getpwnam_r and getpwuid_r entrypoints (PR #220833)
via libc-commits
libc-commits at lists.llvm.org
Thu Sep 3 00:34:32 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,h -- libc/src/pwd/getpwnam_r.cpp libc/src/pwd/getpwnam_r.h libc/src/pwd/getpwuid_r.cpp libc/src/pwd/getpwuid_r.h libc/test/src/pwd/getpwnam_r_test.cpp libc/test/src/pwd/getpwuid_r_test.cpp libc/src/pwd/pwd_utils.cpp libc/src/pwd/pwd_utils.h --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/libc/test/src/pwd/getpwnam_r_test.cpp b/libc/test/src/pwd/getpwnam_r_test.cpp
index a33a2bd28..5aa5cb96b 100644
--- a/libc/test/src/pwd/getpwnam_r_test.cpp
+++ b/libc/test/src/pwd/getpwnam_r_test.cpp
@@ -44,7 +44,8 @@ public:
const char *get_path() const { return path; }
};
-class LlvmLibcGetpwnamRTest : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
+class LlvmLibcGetpwnamRTest
+ : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
} // namespace
@@ -60,8 +61,8 @@ TEST_F(LlvmLibcGetpwnamRTest, Success) {
char buffer[256];
struct passwd *result = nullptr;
- int ret = LIBC_NAMESPACE::getpwnam_r("bin", &pwd, buffer, sizeof(buffer),
- &result);
+ int ret =
+ LIBC_NAMESPACE::getpwnam_r("bin", &pwd, buffer, sizeof(buffer), &result);
ASSERT_EQ(ret, 0);
ASSERT_EQ(result, &pwd);
ASSERT_STREQ(pwd.pw_name, "bin");
@@ -95,8 +96,8 @@ TEST_F(LlvmLibcGetpwnamRTest, FirstAndLastEntries) {
// Lookup the last entry
result = nullptr;
- ret = LIBC_NAMESPACE::getpwnam_r("last", &pwd, buffer, sizeof(buffer),
- &result);
+ ret =
+ LIBC_NAMESPACE::getpwnam_r("last", &pwd, buffer, sizeof(buffer), &result);
ASSERT_EQ(ret, 0);
ASSERT_EQ(result, &pwd);
ASSERT_STREQ(pwd.pw_name, "last");
@@ -141,8 +142,8 @@ TEST_F(LlvmLibcGetpwnamRTest, InvalidArguments) {
struct passwd *result = nullptr;
// Null result pointer
- int ret = LIBC_NAMESPACE::getpwnam_r("root", &pwd, buffer, sizeof(buffer),
- nullptr);
+ int ret =
+ LIBC_NAMESPACE::getpwnam_r("root", &pwd, buffer, sizeof(buffer), nullptr);
ASSERT_EQ(ret, EINVAL);
// Null name
diff --git a/libc/test/src/pwd/getpwuid_r_test.cpp b/libc/test/src/pwd/getpwuid_r_test.cpp
index 711918ea2..3a9876001 100644
--- a/libc/test/src/pwd/getpwuid_r_test.cpp
+++ b/libc/test/src/pwd/getpwuid_r_test.cpp
@@ -45,7 +45,8 @@ public:
const char *get_path() const { return path; }
};
-class LlvmLibcGetpwuidRTest : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
+class LlvmLibcGetpwuidRTest
+ : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {};
} // namespace
@@ -62,8 +63,8 @@ TEST_F(LlvmLibcGetpwuidRTest, Success) {
char buffer[256];
struct passwd *result = nullptr;
- int ret = LIBC_NAMESPACE::getpwuid_r(1, &pwd, buffer, sizeof(buffer),
- &result);
+ int ret =
+ LIBC_NAMESPACE::getpwuid_r(1, &pwd, buffer, sizeof(buffer), &result);
ASSERT_EQ(ret, 0);
ASSERT_EQ(result, &pwd);
ASSERT_STREQ(pwd.pw_name, "bin");
@@ -74,8 +75,8 @@ TEST_F(LlvmLibcGetpwuidRTest, Success) {
// Lookup high UID (nobody)
result = nullptr;
- ret = LIBC_NAMESPACE::getpwuid_r(65534, &pwd, buffer, sizeof(buffer),
- &result);
+ ret =
+ LIBC_NAMESPACE::getpwuid_r(65534, &pwd, buffer, sizeof(buffer), &result);
ASSERT_EQ(ret, 0);
ASSERT_EQ(result, &pwd);
ASSERT_STREQ(pwd.pw_name, "nobody");
@@ -93,8 +94,8 @@ TEST_F(LlvmLibcGetpwuidRTest, RootUidZero) {
char buffer[256];
struct passwd *result = nullptr;
- int ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer),
- &result);
+ int ret =
+ LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer), &result);
ASSERT_EQ(ret, 0);
ASSERT_EQ(result, &pwd);
ASSERT_STREQ(pwd.pw_name, "root");
@@ -111,8 +112,8 @@ TEST_F(LlvmLibcGetpwuidRTest, NotFound) {
char buffer[256];
struct passwd *result = reinterpret_cast<struct passwd *>(0xdeadbeef);
- int ret = LIBC_NAMESPACE::getpwuid_r(999, &pwd, buffer, sizeof(buffer),
- &result);
+ int ret =
+ LIBC_NAMESPACE::getpwuid_r(999, &pwd, buffer, sizeof(buffer), &result);
ASSERT_EQ(ret, 0);
ASSERT_EQ(result, static_cast<struct passwd *>(nullptr));
}
@@ -139,19 +140,17 @@ TEST_F(LlvmLibcGetpwuidRTest, InvalidArguments) {
struct passwd *result = nullptr;
// Null result pointer
- int ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer),
- nullptr);
+ int ret =
+ LIBC_NAMESPACE::getpwuid_r(0, &pwd, buffer, sizeof(buffer), nullptr);
ASSERT_EQ(ret, EINVAL);
// Null pwd pointer
- ret = LIBC_NAMESPACE::getpwuid_r(0, nullptr, buffer, sizeof(buffer),
- &result);
+ ret = LIBC_NAMESPACE::getpwuid_r(0, nullptr, buffer, sizeof(buffer), &result);
ASSERT_EQ(ret, EINVAL);
ASSERT_EQ(result, static_cast<struct passwd *>(nullptr));
// Null buffer pointer
- ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, nullptr, sizeof(buffer),
- &result);
+ ret = LIBC_NAMESPACE::getpwuid_r(0, &pwd, nullptr, sizeof(buffer), &result);
ASSERT_EQ(ret, EINVAL);
ASSERT_EQ(result, static_cast<struct passwd *>(nullptr));
``````````
</details>
https://github.com/llvm/llvm-project/pull/220833
More information about the libc-commits
mailing list