22 changes: 22 additions & 0 deletions libc/src/unistd/linux/getuid.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//===-- Linux implementation of getuid ------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "src/unistd/getuid.h"

#include "src/__support/OSUtil/syscall.h" // For internal syscall function.
#include "src/__support/common.h"

#include <sys/syscall.h> // For syscall numbers.

namespace __llvm_libc {

LLVM_LIBC_FUNCTION(uid_t, getuid, ()) {
return __llvm_libc::syscall(SYS_getuid);
}

} // namespace __llvm_libc
40 changes: 40 additions & 0 deletions libc/test/src/unistd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -321,3 +321,43 @@ add_libc_unittest(
libc.src.unistd.close
libc.src.unistd.unlinkat
)

add_libc_unittest(
getpid_test
SUITE
libc_unistd_unittests
SRCS
getpid_test.cpp
DEPENDS
libc.src.unistd.getpid
)

add_libc_unittest(
getppid_test
SUITE
libc_unistd_unittests
SRCS
getppid_test.cpp
DEPENDS
libc.src.unistd.getppid
)

add_libc_unittest(
getuid_test
SUITE
libc_unistd_unittests
SRCS
getuid_test.cpp
DEPENDS
libc.src.unistd.getuid
)

add_libc_unittest(
geteuid_test
SUITE
libc_unistd_unittests
SRCS
geteuid_test.cpp
DEPENDS
libc.src.unistd.geteuid
)
15 changes: 15 additions & 0 deletions libc/test/src/unistd/geteuid_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//===-- Unittests for geteuid ---------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "src/unistd/geteuid.h"
#include "utils/UnitTest/Test.h"

TEST(LlvmLibcGetEuidTest, SmokeTest) {
// geteuid always succeeds. So, we just call it as a smoke test.
__llvm_libc::geteuid();
}
15 changes: 15 additions & 0 deletions libc/test/src/unistd/getpid_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//===-- Unittests for getpid ----------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "src/unistd/getpid.h"
#include "utils/UnitTest/Test.h"

TEST(LlvmLibcGetPidTest, SmokeTest) {
// getpid always succeeds. So, we just call it as a smoke test.
__llvm_libc::getpid();
}
15 changes: 15 additions & 0 deletions libc/test/src/unistd/getppid_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//===-- Unittests for getppid ---------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "src/unistd/getppid.h"
#include "utils/UnitTest/Test.h"

TEST(LlvmLibcGetPpidTest, SmokeTest) {
// getppid always succeeds. So, we just call it as a smoke test.
__llvm_libc::getppid();
}
15 changes: 15 additions & 0 deletions libc/test/src/unistd/getuid_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//===-- Unittests for getuid ----------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "src/unistd/getuid.h"
#include "utils/UnitTest/Test.h"

TEST(LlvmLibcGetUidTest, SmokeTest) {
// getuid always succeeds. So, we just call it as a smoke test.
__llvm_libc::getuid();
}