Skip to content

Commit 7a7d548

Browse files
[libc] add bazel support for most of unistd (llvm#80078)
Much of unistd involves modifying files. The tests for these functions need to use libc_make_test_file_path which didn't exist when they were first implemented. This patch adds most of unistd to the bazel along with the corresponding tests. Tests that modify directories had to be disabled since bazel doesn't seem to handle them properly.
1 parent 6f32d6a commit 7a7d548

27 files changed

+707
-56
lines changed

libc/test/src/stdio/remove_test.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ TEST(LlvmLibcRemoveTest, CreateAndRemoveFile) {
2323
libc_errno = 0;
2424
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
2525
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
26-
constexpr const char *TEST_FILE = "testdata/remove.test.file";
26+
27+
constexpr const char *FILENAME = "remove.test.file";
28+
auto TEST_FILE = libc_make_test_file_path(FILENAME);
2729
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_WRONLY | O_CREAT, S_IRWXU);
2830
ASSERT_ERRNO_SUCCESS();
2931
ASSERT_GT(fd, 0);
@@ -40,7 +42,8 @@ TEST(LlvmLibcRemoveTest, CreateAndRemoveDir) {
4042
libc_errno = 0;
4143
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
4244
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
43-
constexpr const char *TEST_DIR = "testdata/remove.test.dir";
45+
constexpr const char *FILENAME = "remove.test.dir";
46+
auto TEST_DIR = libc_make_test_file_path(FILENAME);
4447
ASSERT_THAT(LIBC_NAMESPACE::mkdirat(AT_FDCWD, TEST_DIR, S_IRWXU),
4548
Succeeds(0));
4649

@@ -51,5 +54,5 @@ TEST(LlvmLibcRemoveTest, CreateAndRemoveDir) {
5154

5255
TEST(LlvmLibcRemoveTest, RemoveNonExistent) {
5356
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
54-
ASSERT_THAT(LIBC_NAMESPACE::remove("testdata/non-existent"), Fails(ENOENT));
57+
ASSERT_THAT(LIBC_NAMESPACE::remove("non-existent"), Fails(ENOENT));
5558
}

libc/test/src/sys/stat/mkdirat_test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
TEST(LlvmLibcMkdiratTest, CreateAndRemove) {
1717
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
18-
constexpr const char *TEST_DIR = "testdata/mkdirat.testdir";
18+
constexpr const char *FILENAME = "testdata/mkdirat.testdir";
19+
auto TEST_DIR = libc_make_test_file_path(FILENAME);
1920
ASSERT_THAT(LIBC_NAMESPACE::mkdirat(AT_FDCWD, TEST_DIR, S_IRWXU),
2021
Succeeds(0));
2122
ASSERT_THAT(LIBC_NAMESPACE::rmdir(TEST_DIR), Succeeds(0));

libc/test/src/unistd/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ add_libc_unittest(
159159
libc.src.unistd.fsync
160160
libc.src.unistd.read
161161
libc.src.unistd.write
162+
libc.src.stdio.remove
162163
libc.test.UnitTest.ErrnoSetterMatcher
163164
)
164165

libc/test/src/unistd/access_test.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "src/unistd/close.h"
1313
#include "src/unistd/unlink.h"
1414
#include "test/UnitTest/ErrnoSetterMatcher.h"
15+
#include "test/UnitTest/LibcTest.h"
1516
#include "test/UnitTest/Test.h"
1617

1718
#include <sys/stat.h>
@@ -22,7 +23,8 @@ TEST(LlvmLibcAccessTest, CreateAndTest) {
2223
// test that it is accessable in those modes but not in others.
2324
libc_errno = 0;
2425
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
25-
constexpr const char *TEST_FILE = "testdata/access.test";
26+
constexpr const char *FILENAME = "access.test";
27+
auto TEST_FILE = libc_make_test_file_path(FILENAME);
2628
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_WRONLY | O_CREAT, S_IRWXU);
2729
ASSERT_ERRNO_SUCCESS();
2830
ASSERT_GT(fd, 0);

libc/test/src/unistd/chdir_test.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@ TEST(LlvmLibcChdirTest, ChangeAndOpen) {
2121
// directory and open the same file to make sure that the "chdir" operation
2222
// succeeded.
2323
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
24-
constexpr const char *TEST_DIR = "testdata";
25-
constexpr const char *TEST_FILE = "testdata/chdir.test";
26-
constexpr const char *TEST_FILE_BASE = "chdir.test";
24+
constexpr const char *FILENAME = "testdata";
25+
auto TEST_DIR = libc_make_test_file_path(FILENAME);
26+
constexpr const char *FILENAME2 = "testdata/chdir.test";
27+
auto TEST_FILE = libc_make_test_file_path(FILENAME2);
28+
constexpr const char *FILENAME3 = "chdir.test";
29+
auto TEST_FILE_BASE = libc_make_test_file_path(FILENAME3);
2730
libc_errno = 0;
2831

2932
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_PATH);

libc/test/src/unistd/dup2_test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ TEST(LlvmLibcdupTest, ReadAndWriteViaDup) {
2222
constexpr int DUPFD = 0xD0;
2323
libc_errno = 0;
2424
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
25-
constexpr const char *TEST_FILE = "testdata/dup2.test";
25+
constexpr const char *FILENAME = "dup2.test";
26+
auto TEST_FILE = libc_make_test_file_path(FILENAME);
2627
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_WRONLY | O_CREAT, S_IRWXU);
2728
ASSERT_ERRNO_SUCCESS();
2829
ASSERT_GT(fd, 0);

libc/test/src/unistd/dup3_test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ TEST(LlvmLibcdupTest, ReadAndWriteViaDup) {
2828
libc_errno = 0;
2929
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
3030
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
31-
constexpr const char *TEST_FILE = "testdata/dup3.test";
31+
constexpr const char *FILENAME = "dup3.test";
32+
auto TEST_FILE = libc_make_test_file_path(FILENAME);
3233
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_WRONLY | O_CREAT, S_IRWXU);
3334
ASSERT_ERRNO_SUCCESS();
3435
ASSERT_GT(fd, 0);

libc/test/src/unistd/dup_test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
TEST(LlvmLibcdupTest, ReadAndWriteViaDup) {
2222
libc_errno = 0;
2323
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
24-
constexpr const char *TEST_FILE = "testdata/dup.test";
24+
constexpr const char *FILENAME = "dup.test";
25+
auto TEST_FILE = libc_make_test_file_path(FILENAME);
2526
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_WRONLY | O_CREAT, S_IRWXU);
2627
ASSERT_ERRNO_SUCCESS();
2728
ASSERT_GT(fd, 0);

libc/test/src/unistd/fchdir_test.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@ TEST(LlvmLibcChdirTest, ChangeAndOpen) {
2121
// directory and open the same file to make sure that the "fchdir" operation
2222
// succeeded.
2323
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
24-
constexpr const char *TEST_DIR = "testdata";
25-
constexpr const char *TEST_FILE = "testdata/fchdir.test";
26-
constexpr const char *TEST_FILE_BASE = "fchdir.test";
24+
constexpr const char *FILENAME = "testdata";
25+
auto TEST_DIR = libc_make_test_file_path(FILENAME);
26+
constexpr const char *FILENAME2 = "testdata/fchdir.test";
27+
auto TEST_FILE = libc_make_test_file_path(FILENAME2);
28+
constexpr const char *FILENAME3 = "fchdir.test";
29+
auto TEST_FILE_BASE = libc_make_test_file_path(FILENAME3);
2730
libc_errno = 0;
2831

2932
int dir_fd = LIBC_NAMESPACE::open(TEST_DIR, O_DIRECTORY);

libc/test/src/unistd/ftruncate_test.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ namespace cpp = LIBC_NAMESPACE::cpp;
2323

2424
TEST(LlvmLibcFtruncateTest, CreateAndTruncate) {
2525
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
26-
constexpr const char TEST_FILE[] = "testdata/ftruncate.test";
26+
constexpr const char *FILENAME = "ftruncate.test";
27+
auto TEST_FILE = libc_make_test_file_path(FILENAME);
2728
constexpr const char WRITE_DATA[] = "hello, ftruncate";
2829
constexpr size_t WRITE_SIZE = sizeof(WRITE_DATA);
2930
char buf[WRITE_SIZE];
@@ -68,5 +69,5 @@ TEST(LlvmLibcFtruncateTest, CreateAndTruncate) {
6869

6970
TEST(LlvmLibcFtruncateTest, TruncateBadFD) {
7071
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
71-
ASSERT_THAT(LIBC_NAMESPACE::ftruncate(1, off_t(1)), Fails(EINVAL));
72+
ASSERT_THAT(LIBC_NAMESPACE::ftruncate(0, off_t(1)), Fails(EINVAL));
7273
}

0 commit comments

Comments
 (0)