[libc-commits] [libc] [libc] Add sys/xattr.h and entrypoints flistxattr, listxattr, and llistxattr. (PR #224357)

Alex Strelnikov via libc-commits libc-commits at lists.llvm.org
Thu Sep 17 12:06:36 PDT 2026


================
@@ -0,0 +1,66 @@
+add_custom_target(libc_sys_xattr_unittests)
+
+add_libc_test(
+  flistxattr_test
+  SUITE
+    libc_sys_xattr_unittests
+  SRCS
+    flistxattr_test.cpp
+  DEPENDS
+    libc.hdr.sys_stat_macros
+    libc.include.sys_xattr
+    libc.src.__support.CPP.scope
+    libc.src.__support.OSUtil.osutil
+    libc.src.__support.libc_errno
+    libc.src.errno.errno
+    libc.src.fcntl.creat
+    libc.src.sys.xattr.flistxattr
+    libc.src.unistd.close
+    libc.src.unistd.unlink
+    libc.test.UnitTest.ErrnoCheckingTest
+    libc.test.UnitTest.ErrnoSetterMatcher
+)
+
+add_libc_test(
+  listxattr_test
+  SUITE
+    libc_sys_xattr_unittests
+  SRCS
+    listxattr_test.cpp
+  DEPENDS
+    libc.hdr.sys_stat_macros
+    libc.include.sys_xattr
+    libc.src.__support.OSUtil.osutil
+    libc.src.__support.libc_errno
+    libc.src.errno.errno
+    libc.src.fcntl.creat
+    libc.src.sys.xattr.listxattr
+    libc.src.unistd.close
+    libc.src.unistd.symlink
+    libc.src.unistd.unlink
+    libc.test.UnitTest.ErrnoCheckingTest
+    libc.test.UnitTest.ErrnoSetterMatcher
+)
+
+add_libc_test(
+  llistxattr_test
+  SUITE
+    libc_sys_xattr_unittests
+  SRCS
+    llistxattr_test.cpp
+  DEPENDS
+    libc.hdr.sys_stat_macros
+    libc.include.sys_xattr
+    libc.src.__support.OSUtil.osutil
+    libc.src.__support.libc_errno
+    libc.src.errno.errno
+    libc.src.fcntl.creat
+    libc.src.sys.xattr.llistxattr
+    libc.src.unistd.close
+    libc.src.unistd.symlink
+    libc.src.unistd.unlink
+    libc.test.UnitTest.ErrnoCheckingTest
+    libc.test.UnitTest.ErrnoSetterMatcher
+)
+
+add_subdirectory(testdata)
----------------
strel-12 wrote:

This is the existing pattern I saw with a bunch of the tests that interact with files, where `add_subdirectory` (+ an empty CMakeLists.txt there) is used so that cmake creates that testdata subdirectory in the build tree.

Otherwise, calls like `creat` fail because `testdata` does not exist yet. If you have a strong preference, I could remove the "testdata/" prefix from the test file paths used in the test itself.

https://github.com/llvm/llvm-project/pull/224357


More information about the libc-commits mailing list