Revert "Fix/reapply "[libc] Migrate stdio tests to ErrnoCheckingTest."" (#144129)
Reverts llvm/llvm-project#143972 - matcher seems to be pedantic for fgets tests, reverting to verify and fix.
This commit is contained in:
@@ -20,7 +20,6 @@ add_libc_test(
|
||||
libc.src.stdio.fread
|
||||
libc.src.stdio.fseek
|
||||
libc.src.stdio.fwrite
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
@@ -69,7 +68,6 @@ add_libc_test(
|
||||
libc.src.stdio.fread
|
||||
libc.src.stdio.fwrite
|
||||
libc.src.stdio.setvbuf
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
@@ -90,7 +88,6 @@ add_libc_test(
|
||||
libc.src.stdio.fread_unlocked
|
||||
libc.src.stdio.funlockfile
|
||||
libc.src.stdio.fwrite_unlocked
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
@@ -112,7 +109,6 @@ add_libc_test(
|
||||
libc.src.stdio.fread
|
||||
libc.src.stdio.fseek
|
||||
libc.src.stdio.fwrite
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
LINK_LIBRARIES
|
||||
LibcMemoryHelpers
|
||||
)
|
||||
@@ -442,7 +438,6 @@ if(${LIBC_TARGET_OS} STREQUAL "linux")
|
||||
libc.src.sys.stat.mkdirat
|
||||
libc.src.unistd.access
|
||||
libc.src.unistd.close
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
@@ -457,7 +452,6 @@ if(${LIBC_TARGET_OS} STREQUAL "linux")
|
||||
libc.src.stdio.rename
|
||||
libc.src.unistd.access
|
||||
libc.src.unistd.close
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
libc.test.UnitTest.ErrnoSetterMatcher
|
||||
)
|
||||
|
||||
@@ -474,7 +468,6 @@ if(${LIBC_TARGET_OS} STREQUAL "linux")
|
||||
libc.src.stdio.fgets
|
||||
libc.src.stdio.fputs
|
||||
libc.src.unistd.close
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
libc.test.UnitTest.ErrnoSetterMatcher
|
||||
)
|
||||
endif()
|
||||
@@ -495,8 +488,6 @@ add_libc_test(
|
||||
libc.src.stdio.fopen
|
||||
libc.src.stdio.fwrite
|
||||
libc.src.stdio.getc
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
libc.test.UnitTest.ErrnoSetterMatcher
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
@@ -519,8 +510,6 @@ add_libc_test(
|
||||
libc.src.stdio.funlockfile
|
||||
libc.src.stdio.fwrite
|
||||
libc.src.stdio.getc_unlocked
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
libc.test.UnitTest.ErrnoSetterMatcher
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
@@ -538,8 +527,6 @@ add_libc_test(
|
||||
libc.src.stdio.fgets
|
||||
libc.src.stdio.fopen
|
||||
libc.src.stdio.fwrite
|
||||
libc.test.UnitTest.ErrnoCheckingTest
|
||||
libc.test.UnitTest.ErrnoSetterMatcher
|
||||
)
|
||||
|
||||
add_libc_test(
|
||||
|
||||
@@ -9,21 +9,20 @@
|
||||
#include "src/stdio/fdopen.h"
|
||||
|
||||
#include "hdr/fcntl_macros.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
#include "src/fcntl/open.h"
|
||||
#include "src/stdio/fclose.h"
|
||||
#include "src/stdio/fgets.h"
|
||||
#include "src/stdio/fputs.h"
|
||||
#include "src/unistd/close.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/ErrnoSetterMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
#include <sys/stat.h> // For S_IRWXU
|
||||
|
||||
using LlvmLibcStdioFdopenTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
|
||||
TEST_F(LlvmLibcStdioFdopenTest, WriteAppendRead) {
|
||||
TEST(LlvmLibcStdioFdopenTest, WriteAppendRead) {
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||
libc_errno = 0;
|
||||
constexpr const char *TEST_FILE_NAME = "testdata/write_read_append.test";
|
||||
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
||||
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_TRUNC | O_RDWR, S_IRWXU);
|
||||
@@ -53,7 +52,8 @@ TEST_F(LlvmLibcStdioFdopenTest, WriteAppendRead) {
|
||||
ASSERT_ERRNO_SUCCESS();
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcStdioFdopenTest, InvalidFd) {
|
||||
TEST(LlvmLibcStdioFdopenTest, InvalidFd) {
|
||||
libc_errno = 0;
|
||||
constexpr const char *TEST_FILE_NAME = "testdata/invalid_fd.test";
|
||||
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
||||
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_TRUNC);
|
||||
@@ -64,7 +64,8 @@ TEST_F(LlvmLibcStdioFdopenTest, InvalidFd) {
|
||||
ASSERT_TRUE(nullptr == fp);
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcStdioFdopenTest, InvalidMode) {
|
||||
TEST(LlvmLibcStdioFdopenTest, InvalidMode) {
|
||||
libc_errno = 0;
|
||||
constexpr const char *TEST_FILE_NAME = "testdata/invalid_mode.test";
|
||||
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
||||
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_RDONLY, S_IRWXU);
|
||||
@@ -82,6 +83,7 @@ TEST_F(LlvmLibcStdioFdopenTest, InvalidMode) {
|
||||
auto *fp2 = LIBC_NAMESPACE::fdopen(fd, "w");
|
||||
ASSERT_ERRNO_EQ(EINVAL);
|
||||
ASSERT_TRUE(nullptr == fp2);
|
||||
libc_errno = 0;
|
||||
LIBC_NAMESPACE::close(fd);
|
||||
ASSERT_ERRNO_SUCCESS();
|
||||
}
|
||||
|
||||
@@ -14,15 +14,12 @@
|
||||
#include "src/stdio/fopen.h"
|
||||
#include "src/stdio/fwrite.h"
|
||||
#include "src/stdio/getc.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/ErrnoSetterMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
#include "hdr/stdio_macros.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
|
||||
using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
|
||||
|
||||
class LlvmLibcGetcTest : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {
|
||||
class LlvmLibcGetcTest : public LIBC_NAMESPACE::testing::Test {
|
||||
public:
|
||||
using GetcFunc = int(FILE *);
|
||||
void test_with_func(GetcFunc *func, const char *filename) {
|
||||
@@ -30,28 +27,29 @@ public:
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
constexpr char CONTENT[] = "123456789";
|
||||
constexpr size_t WRITE_SIZE = sizeof(CONTENT) - 1;
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fwrite(CONTENT, 1, WRITE_SIZE, file),
|
||||
Succeeds(WRITE_SIZE));
|
||||
ASSERT_EQ(WRITE_SIZE, LIBC_NAMESPACE::fwrite(CONTENT, 1, WRITE_SIZE, file));
|
||||
// This is a write-only file so reads should fail.
|
||||
ASSERT_THAT(func(file), Fails(EBADF, EOF));
|
||||
ASSERT_EQ(func(file), EOF);
|
||||
// This is an error and not a real EOF.
|
||||
ASSERT_EQ(LIBC_NAMESPACE::feof(file), 0);
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(file), 0);
|
||||
libc_errno = 0;
|
||||
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fclose(file), Succeeds());
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||
|
||||
file = LIBC_NAMESPACE::fopen(filename, "r");
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
|
||||
for (size_t i = 0; i < WRITE_SIZE; ++i) {
|
||||
ASSERT_THAT(func(file), Succeeds(int('1' + i)));
|
||||
int c = func(file);
|
||||
ASSERT_EQ(c, int('1' + i));
|
||||
}
|
||||
// Reading more should return EOF but not set error.
|
||||
ASSERT_THAT(func(file), Succeeds(EOF));
|
||||
ASSERT_EQ(func(file), EOF);
|
||||
ASSERT_NE(LIBC_NAMESPACE::feof(file), 0);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror(file), 0);
|
||||
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fclose(file), Succeeds());
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -17,15 +17,12 @@
|
||||
#include "src/stdio/funlockfile.h"
|
||||
#include "src/stdio/fwrite.h"
|
||||
#include "src/stdio/getc_unlocked.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/ErrnoSetterMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
#include "hdr/stdio_macros.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
|
||||
using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
|
||||
|
||||
class LlvmLibcGetcTest : public LIBC_NAMESPACE::testing::ErrnoCheckingTest {
|
||||
class LlvmLibcGetcTest : public LIBC_NAMESPACE::testing::Test {
|
||||
public:
|
||||
using GetcFunc = int(FILE *);
|
||||
void test_with_func(GetcFunc *func, const char *filename) {
|
||||
@@ -33,30 +30,31 @@ public:
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
constexpr char CONTENT[] = "123456789";
|
||||
constexpr size_t WRITE_SIZE = sizeof(CONTENT) - 1;
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fwrite(CONTENT, 1, WRITE_SIZE, file),
|
||||
Succeeds(WRITE_SIZE));
|
||||
ASSERT_EQ(WRITE_SIZE, LIBC_NAMESPACE::fwrite(CONTENT, 1, WRITE_SIZE, file));
|
||||
// This is a write-only file so reads should fail.
|
||||
ASSERT_THAT(func(file), Fails(EBADF, EOF));
|
||||
ASSERT_EQ(func(file), EOF);
|
||||
// This is an error and not a real EOF.
|
||||
ASSERT_EQ(LIBC_NAMESPACE::feof(file), 0);
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(file), 0);
|
||||
libc_errno = 0;
|
||||
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fclose(file), Succeeds());
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||
|
||||
file = LIBC_NAMESPACE::fopen(filename, "r");
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
|
||||
LIBC_NAMESPACE::flockfile(file);
|
||||
for (size_t i = 0; i < WRITE_SIZE; ++i) {
|
||||
ASSERT_THAT(func(file), Succeeds(int('1' + i)));
|
||||
int c = func(file);
|
||||
ASSERT_EQ(c, int('1' + i));
|
||||
}
|
||||
// Reading more should return EOF but not set error.
|
||||
ASSERT_THAT(func(file), Succeeds(EOF));
|
||||
ASSERT_EQ(func(file), EOF);
|
||||
ASSERT_NE(LIBC_NAMESPACE::feof_unlocked(file), 0);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror_unlocked(file), 0);
|
||||
|
||||
LIBC_NAMESPACE::funlockfile(file);
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fclose(file), Succeeds());
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -12,14 +12,11 @@
|
||||
#include "src/stdio/fgets.h"
|
||||
#include "src/stdio/fopen.h"
|
||||
#include "src/stdio/fwrite.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/ErrnoSetterMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
using LlvmLibcFgetsTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
|
||||
#include "src/__support/libc_errno.h"
|
||||
|
||||
TEST_F(LlvmLibcFgetsTest, WriteAndReadCharacters) {
|
||||
TEST(LlvmLibcFgetsTest, WriteAndReadCharacters) {
|
||||
constexpr char FILENAME[] = "testdata/fgets.test";
|
||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
@@ -32,15 +29,15 @@ TEST_F(LlvmLibcFgetsTest, WriteAndReadCharacters) {
|
||||
char buff[8];
|
||||
char *output;
|
||||
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fwrite(CONTENT, 1, WRITE_SIZE, file),
|
||||
Succeeds(WRITE_SIZE));
|
||||
ASSERT_EQ(WRITE_SIZE, LIBC_NAMESPACE::fwrite(CONTENT, 1, WRITE_SIZE, file));
|
||||
// This is a write-only file so reads should fail.
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fgets(buff, 8, file), Fails(EBADF, nullptr));
|
||||
ASSERT_TRUE(LIBC_NAMESPACE::fgets(buff, 8, file) == nullptr);
|
||||
// This is an error and not a real EOF.
|
||||
ASSERT_EQ(LIBC_NAMESPACE::feof(file), 0);
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(file), 0);
|
||||
libc_errno = 0;
|
||||
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fclose(file), Succeeds());
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||
|
||||
file = LIBC_NAMESPACE::fopen(FILENAME, "r");
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
@@ -58,7 +55,6 @@ TEST_F(LlvmLibcFgetsTest, WriteAndReadCharacters) {
|
||||
// This is also implementation defined.
|
||||
output = LIBC_NAMESPACE::fgets(buff, 0, file);
|
||||
ASSERT_TRUE(output == nullptr);
|
||||
ASSERT_ERRNO_SUCCESS();
|
||||
#endif
|
||||
|
||||
const char *output_arr[] = {
|
||||
@@ -90,5 +86,5 @@ TEST_F(LlvmLibcFgetsTest, WriteAndReadCharacters) {
|
||||
ASSERT_NE(LIBC_NAMESPACE::feof(file), 0);
|
||||
ASSERT_ERRNO_SUCCESS();
|
||||
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fclose(file), Succeeds());
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||
}
|
||||
|
||||
@@ -17,18 +17,17 @@
|
||||
#include "src/stdio/fread.h"
|
||||
#include "src/stdio/fseek.h"
|
||||
#include "src/stdio/fwrite.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/ErrnoSetterMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
#include "hdr/stdio_macros.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
|
||||
using LlvmLibcFILETest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::EQ;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::NE;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::returns;
|
||||
|
||||
TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
||||
TEST(LlvmLibcFILETest, SimpleFileOperations) {
|
||||
constexpr char FILENAME[] = "testdata/simple_operations.test";
|
||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
@@ -42,6 +41,7 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fread(read_data, 1, sizeof(CONTENT), file),
|
||||
returns(EQ(size_t(0))).with_errno(NE(0)));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(file), 0);
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr(file);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror(file), 0);
|
||||
@@ -72,6 +72,7 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fwrite(CONTENT, 1, sizeof(CONTENT), file),
|
||||
returns(EQ(size_t(0))).with_errno(NE(0)));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(file), 0);
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr(file);
|
||||
|
||||
@@ -79,12 +80,15 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fputs(CONTENT, file),
|
||||
returns(EQ(EOF)).with_errno(NE(0)));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(file), 0);
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr(file);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror(file), 0);
|
||||
|
||||
libc_errno = 0;
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fwrite("nothing", 1, 1, file),
|
||||
returns(EQ(size_t(0))).with_errno(NE(0)));
|
||||
libc_errno = 0;
|
||||
|
||||
ASSERT_EQ(LIBC_NAMESPACE::fclose(file), 0);
|
||||
|
||||
@@ -99,8 +103,10 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror(file), 0);
|
||||
|
||||
// This is not a readable file.
|
||||
libc_errno = 0;
|
||||
ASSERT_THAT(LIBC_NAMESPACE::fread(data, 1, 1, file),
|
||||
returns(EQ(0)).with_errno(NE(0)));
|
||||
libc_errno = 0;
|
||||
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||
|
||||
@@ -115,18 +121,21 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
||||
|
||||
// Check that the other functions correctly set libc_errno.
|
||||
|
||||
// libc_errno = 0;
|
||||
// ASSERT_NE(LIBC_NAMESPACE::fseek(file, 0, SEEK_SET), 0);
|
||||
// ASSERT_ERRNO_FAILURE();
|
||||
|
||||
// libc_errno = 0;
|
||||
// ASSERT_NE(LIBC_NAMESPACE::fclose(file), 0);
|
||||
// ASSERT_ERRNO_FAILURE();
|
||||
|
||||
// libc_errno = 0;
|
||||
// ASSERT_EQ(LIBC_NAMESPACE::fopen("INVALID FILE NAME", "r"),
|
||||
// static_cast<FILE *>(nullptr));
|
||||
// ASSERT_ERRNO_FAILURE();
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcFILETest, FFlush) {
|
||||
TEST(LlvmLibcFILETest, FFlush) {
|
||||
constexpr char FILENAME[] = "testdata/fflush.test";
|
||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w+");
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
@@ -147,7 +156,7 @@ TEST_F(LlvmLibcFILETest, FFlush) {
|
||||
ASSERT_EQ(LIBC_NAMESPACE::fclose(file), 0);
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
|
||||
TEST(LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
|
||||
using MyStruct = struct {
|
||||
char c;
|
||||
unsigned long long i;
|
||||
@@ -156,6 +165,7 @@ TEST_F(LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
|
||||
constexpr size_t WRITE_NMEMB = sizeof(WRITE_DATA) / sizeof(MyStruct);
|
||||
constexpr char FILENAME[] = "testdata/fread_fwrite.test";
|
||||
|
||||
libc_errno = 0;
|
||||
FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||
ASSERT_FALSE(file == nullptr);
|
||||
ASSERT_EQ(size_t(0), LIBC_NAMESPACE::fwrite(WRITE_DATA, 0, 1, file));
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
#include "src/stdio/fread.h"
|
||||
#include "src/stdio/fseek.h"
|
||||
#include "src/stdio/fwrite.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/MemoryMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
@@ -23,7 +22,6 @@
|
||||
#include "hdr/types/size_t.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
|
||||
using LlvmLibcFOpenCookieTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
using MemoryView = LIBC_NAMESPACE::testing::MemoryView;
|
||||
|
||||
struct StringStream {
|
||||
@@ -90,7 +88,7 @@ int close_ss(void *cookie) {
|
||||
constexpr cookie_io_functions_t STRING_STREAM_FUNCS = {&read_ss, &write_ss,
|
||||
&seek_ss, &close_ss};
|
||||
|
||||
TEST_F(LlvmLibcFOpenCookieTest, ReadOnlyCookieTest) {
|
||||
TEST(LlvmLibcFOpenCookie, ReadOnlyCookieTest) {
|
||||
constexpr char CONTENT[] = "Hello,readonly!";
|
||||
auto *ss = reinterpret_cast<StringStream *>(malloc(sizeof(StringStream)));
|
||||
ss->buf = reinterpret_cast<char *>(malloc(sizeof(CONTENT)));
|
||||
@@ -117,6 +115,7 @@ TEST_F(LlvmLibcFOpenCookieTest, ReadOnlyCookieTest) {
|
||||
ASSERT_EQ(size_t(0), LIBC_NAMESPACE::fwrite(CONTENT, 1, sizeof(CONTENT), f));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(f), 0);
|
||||
ASSERT_ERRNO_FAILURE();
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr(f);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror(f), 0);
|
||||
@@ -125,7 +124,7 @@ TEST_F(LlvmLibcFOpenCookieTest, ReadOnlyCookieTest) {
|
||||
free(ss);
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcFOpenCookieTest, WriteOnlyCookieTest) {
|
||||
TEST(LlvmLibcFOpenCookie, WriteOnlyCookieTest) {
|
||||
size_t INIT_BUFSIZE = 32;
|
||||
auto *ss = reinterpret_cast<StringStream *>(malloc(sizeof(StringStream)));
|
||||
ss->buf = reinterpret_cast<char *>(malloc(INIT_BUFSIZE));
|
||||
@@ -150,6 +149,7 @@ TEST_F(LlvmLibcFOpenCookieTest, WriteOnlyCookieTest) {
|
||||
LIBC_NAMESPACE::fread(read_data, 1, sizeof(WRITE_DATA), f));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(f), 0);
|
||||
ASSERT_ERRNO_EQ(EBADF);
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr(f);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror(f), 0);
|
||||
@@ -158,7 +158,7 @@ TEST_F(LlvmLibcFOpenCookieTest, WriteOnlyCookieTest) {
|
||||
free(ss);
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcFOpenCookieTest, AppendOnlyCookieTest) {
|
||||
TEST(LlvmLibcFOpenCookie, AppendOnlyCookieTest) {
|
||||
constexpr char INITIAL_CONTENT[] = "1234567890987654321";
|
||||
constexpr char WRITE_DATA[] = "append";
|
||||
auto *ss = reinterpret_cast<StringStream *>(malloc(sizeof(StringStream)));
|
||||
@@ -178,6 +178,7 @@ TEST_F(LlvmLibcFOpenCookieTest, AppendOnlyCookieTest) {
|
||||
ASSERT_EQ(LIBC_NAMESPACE::fread(read_data, 1, READ_SIZE, f), size_t(0));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror(f), 0);
|
||||
ASSERT_ERRNO_FAILURE();
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr(f);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror(f), 0);
|
||||
@@ -191,7 +192,7 @@ TEST_F(LlvmLibcFOpenCookieTest, AppendOnlyCookieTest) {
|
||||
free(ss);
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcFOpenCookieTest, ReadUpdateCookieTest) {
|
||||
TEST(LlvmLibcFOpenCookie, ReadUpdateCookieTest) {
|
||||
const char INITIAL_CONTENT[] = "1234567890987654321";
|
||||
auto *ss = reinterpret_cast<StringStream *>(malloc(sizeof(StringStream)));
|
||||
ss->buf = reinterpret_cast<char *>(malloc(sizeof(INITIAL_CONTENT)));
|
||||
@@ -222,7 +223,7 @@ TEST_F(LlvmLibcFOpenCookieTest, ReadUpdateCookieTest) {
|
||||
free(ss);
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcFOpenCookieTest, WriteUpdateCookieTest) {
|
||||
TEST(LlvmLibcFOpenCookie, WriteUpdateCookieTest) {
|
||||
constexpr char WRITE_DATA[] = "hello, file";
|
||||
auto *ss = reinterpret_cast<StringStream *>(malloc(sizeof(StringStream)));
|
||||
ss->buf = reinterpret_cast<char *>(malloc(sizeof(WRITE_DATA)));
|
||||
|
||||
@@ -11,17 +11,16 @@
|
||||
#include "src/sys/stat/mkdirat.h"
|
||||
#include "src/unistd/access.h"
|
||||
#include "src/unistd/close.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/ErrnoSetterMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
#include "src/__support/libc_errno.h"
|
||||
#include <unistd.h>
|
||||
|
||||
using LlvmLibcRemoveTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
|
||||
TEST_F(LlvmLibcRemoveTest, CreateAndRemoveFile) {
|
||||
TEST(LlvmLibcRemoveTest, CreateAndRemoveFile) {
|
||||
// The test strategy is to create a file and remove it, and also verify that
|
||||
// it was removed.
|
||||
libc_errno = 0;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||
|
||||
@@ -37,9 +36,10 @@ TEST_F(LlvmLibcRemoveTest, CreateAndRemoveFile) {
|
||||
ASSERT_THAT(LIBC_NAMESPACE::access(TEST_FILE, F_OK), Fails(ENOENT));
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcRemoveTest, CreateAndRemoveDir) {
|
||||
TEST(LlvmLibcRemoveTest, CreateAndRemoveDir) {
|
||||
// The test strategy is to create a dir and remove it, and also verify that
|
||||
// it was removed.
|
||||
libc_errno = 0;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||
constexpr const char *FILENAME = "remove.test.dir";
|
||||
|
||||
@@ -8,19 +8,18 @@
|
||||
|
||||
#include "include/llvm-libc-macros/linux/sys-stat-macros.h"
|
||||
#include "include/llvm-libc-macros/linux/unistd-macros.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
#include "src/fcntl/open.h"
|
||||
#include "src/stdio/rename.h"
|
||||
#include "src/unistd/access.h"
|
||||
#include "src/unistd/close.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/ErrnoSetterMatcher.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
using LlvmLibcRenameTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
|
||||
TEST_F(LlvmLibcRenameTest, CreateAndRenameFile) {
|
||||
TEST(LlvmLibcRenameTest, CreateAndRenameFile) {
|
||||
// The test strategy is to create a file and rename it, and also verify that
|
||||
// it was renamed.
|
||||
libc_errno = 0;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||
|
||||
@@ -41,7 +40,7 @@ TEST_F(LlvmLibcRenameTest, CreateAndRenameFile) {
|
||||
ASSERT_THAT(LIBC_NAMESPACE::access(TEST_FILEPATH0, F_OK), Fails(ENOENT));
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcRenameTest, RenameNonExistent) {
|
||||
TEST(LlvmLibcRenameTest, RenameNonExistent) {
|
||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||
|
||||
constexpr const char *FILENAME1 = "rename.test.file1";
|
||||
|
||||
@@ -11,14 +11,12 @@
|
||||
#include "src/stdio/fread.h"
|
||||
#include "src/stdio/fwrite.h"
|
||||
#include "src/stdio/setvbuf.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
#include "hdr/stdio_macros.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
|
||||
using LlvmLibcSetvbufTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
|
||||
TEST_F(LlvmLibcSetvbufTest, SetNBFBuffer) {
|
||||
TEST(LlvmLibcSetvbufTest, SetNBFBuffer) {
|
||||
// The idea in this test is that we open a file for writing and reading, and
|
||||
// then set a NBF buffer to the write handle. Since it is NBF, the data
|
||||
// written using the write handle should be immediately readable by the read
|
||||
@@ -54,7 +52,7 @@ TEST_F(LlvmLibcSetvbufTest, SetNBFBuffer) {
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(fr));
|
||||
}
|
||||
|
||||
TEST_F(LlvmLibcSetvbufTest, SetLBFBuffer) {
|
||||
TEST(LlvmLibcSetvbufTest, SetLBFBuffer) {
|
||||
// The idea in this test is that we open a file for writing and reading, and
|
||||
// then set a LBF buffer to the write handle. Since it is LBF, the data
|
||||
// written using the write handle should be available right after a '\n' is
|
||||
@@ -104,5 +102,6 @@ TEST(LlvmLibcSetbufTest, InvalidBufferMode) {
|
||||
0);
|
||||
ASSERT_ERRNO_EQ(EINVAL);
|
||||
|
||||
libc_errno = 0;
|
||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(f));
|
||||
}
|
||||
|
||||
@@ -15,12 +15,11 @@
|
||||
#include "src/stdio/fread_unlocked.h"
|
||||
#include "src/stdio/funlockfile.h"
|
||||
#include "src/stdio/fwrite_unlocked.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
using LlvmLibcFILETest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||
#include "src/__support/libc_errno.h"
|
||||
|
||||
TEST_F(LlvmLibcFILETest, UnlockedReadAndWrite) {
|
||||
TEST(LlvmLibcFILETest, UnlockedReadAndWrite) {
|
||||
constexpr char fNAME[] = "testdata/unlocked_read_and_write.test";
|
||||
::FILE *f = LIBC_NAMESPACE::fopen(fNAME, "w");
|
||||
ASSERT_FALSE(f == nullptr);
|
||||
@@ -37,6 +36,7 @@ TEST_F(LlvmLibcFILETest, UnlockedReadAndWrite) {
|
||||
LIBC_NAMESPACE::fread_unlocked(data, 1, sizeof(READ_SIZE), f));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror_unlocked(f), 0);
|
||||
ASSERT_ERRNO_FAILURE();
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr_unlocked(f);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror_unlocked(f), 0);
|
||||
@@ -57,6 +57,7 @@ TEST_F(LlvmLibcFILETest, UnlockedReadAndWrite) {
|
||||
LIBC_NAMESPACE::fwrite_unlocked(CONTENT, 1, sizeof(CONTENT), f));
|
||||
ASSERT_NE(LIBC_NAMESPACE::ferror_unlocked(f), 0);
|
||||
ASSERT_ERRNO_FAILURE();
|
||||
libc_errno = 0;
|
||||
|
||||
LIBC_NAMESPACE::clearerr_unlocked(f);
|
||||
ASSERT_EQ(LIBC_NAMESPACE::ferror_unlocked(f), 0);
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "src/__support/CPP/limits.h"
|
||||
#include "src/__support/CPP/type_traits.h"
|
||||
#include "src/__support/ctype_utils.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
#include "src/__support/macros/properties/architectures.h"
|
||||
#include "test/UnitTest/ErrnoCheckingTest.h"
|
||||
#include "test/UnitTest/Test.h"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "src/__support/FPUtil/FPBits.h"
|
||||
#include "src/__support/libc_errno.h"
|
||||
#include "src/__support/uint128.h"
|
||||
#include "src/stdlib/strtold.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user