Skip to content

Commit b34fd3e

Browse files
committed
fix ioctl test file creation
1 parent 3a71160 commit b34fd3e

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

libc/test/src/sys/ioctl/linux/ioctl_test.cpp

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,33 @@
1111
#include "src/sys/ioctl/ioctl.h"
1212
#include "src/unistd/close.h"
1313
#include "src/unistd/read.h"
14+
#include "src/unistd/write.h"
15+
1416
#include "test/UnitTest/ErrnoSetterMatcher.h"
17+
#include "test/UnitTest/Test.h"
1518

1619
#include "hdr/sys_ioctl_macros.h"
1720

18-
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
1921
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
2022

21-
TEST(LlvmLibcSysIoctlTest, TestFileFIONREAD) {
23+
TEST(LlvmLibcSysIoctlTest, InvalidCommandAndFIONREAD) {
2224
LIBC_NAMESPACE::libc_errno = 0;
2325

24-
constexpr const char TEST_MSG[] = "ioctl test";
26+
// Setup the test file
27+
constexpr const char *TEST_FILE_NAME = "testdata/ioctl.test";
28+
constexpr const char *TEST_MSG = "ioctl test";
2529
constexpr int TEST_MSG_SIZE = sizeof(TEST_MSG) - 1;
26-
constexpr const char *TEST_FILE = "testdata/ioctl.test";
30+
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
31+
int new_test_file_fd =
32+
LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_WRONLY, 0644);
33+
ASSERT_THAT(
34+
(int)LIBC_NAMESPACE::write(new_test_file_fd, TEST_MSG, TEST_MSG_SIZE),
35+
Succeeds(TEST_MSG_SIZE));
36+
ASSERT_ERRNO_SUCCESS();
37+
ASSERT_THAT(LIBC_NAMESPACE::close(new_test_file_fd), Succeeds(0));
38+
ASSERT_ERRNO_SUCCESS();
39+
40+
// Reopen the file for testing
2741
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_RDONLY);
2842
ASSERT_ERRNO_SUCCESS();
2943
ASSERT_GT(fd, 0);
@@ -49,21 +63,11 @@ TEST(LlvmLibcSysIoctlTest, TestFileFIONREAD) {
4963
ASSERT_GT(ret, -1);
5064
ASSERT_EQ(n - READ_COUNT, n_after_reading);
5165

52-
ASSERT_THAT(LIBC_NAMESPACE::close(fd), Succeeds(0));
53-
}
54-
55-
TEST(LlvmLibcSysIoctlTest, InvalidIoctlCommand) {
56-
LIBC_NAMESPACE::libc_errno = 0;
57-
58-
int fd = LIBC_NAMESPACE::open("/dev/zero", O_RDONLY);
59-
ASSERT_GT(fd, 0);
60-
ASSERT_ERRNO_SUCCESS();
61-
6266
// 0xDEADBEEF is just a random nonexistent command;
6367
// calling this should always fail with ENOTTY
64-
int ret = LIBC_NAMESPACE::ioctl(fd, 0xDEADBEEF, NULL);
65-
ASSERT_EQ(ret, -1);
68+
ret = LIBC_NAMESPACE::ioctl(fd, 0xDEADBEEF, NULL);
6669
ASSERT_ERRNO_EQ(ENOTTY);
70+
ASSERT_EQ(ret, -1);
6771

6872
ASSERT_THAT(LIBC_NAMESPACE::close(fd), Succeeds(0));
6973
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
file(GENERATE OUTPUT ioctl.test CONTENT "ioctl test")
1+

0 commit comments

Comments
 (0)