[libc][stdio] Separate temporary files for unit test and hermetic test in stdio test suite. (#149740)
This commit is contained in:
parent
2b826dff01
commit
b78b16b213
@ -71,6 +71,7 @@ endfunction()
|
|||||||
|
|
||||||
function(_get_hermetic_test_compile_options output_var)
|
function(_get_hermetic_test_compile_options output_var)
|
||||||
_get_common_test_compile_options(compile_options "" "")
|
_get_common_test_compile_options(compile_options "" "")
|
||||||
|
list(APPEND compile_options "-DLIBC_TEST=HERMETIC")
|
||||||
|
|
||||||
# null check tests are death tests, remove from hermetic tests for now.
|
# null check tests are death tests, remove from hermetic tests for now.
|
||||||
if(LIBC_ADD_NULL_CHECKS)
|
if(LIBC_ADD_NULL_CHECKS)
|
||||||
@ -232,6 +233,7 @@ function(create_libc_unittest fq_target_name)
|
|||||||
|
|
||||||
_get_common_test_compile_options(compile_options "${LIBC_UNITTEST_C_TEST}"
|
_get_common_test_compile_options(compile_options "${LIBC_UNITTEST_C_TEST}"
|
||||||
"${LIBC_UNITTEST_FLAGS}")
|
"${LIBC_UNITTEST_FLAGS}")
|
||||||
|
list(APPEND compile_options "-DLIBC_TEST=UNIT")
|
||||||
# TODO: Ideally we would have a separate function for link options.
|
# TODO: Ideally we would have a separate function for link options.
|
||||||
set(link_options
|
set(link_options
|
||||||
${compile_options}
|
${compile_options}
|
||||||
|
@ -52,4 +52,13 @@
|
|||||||
libc_errno = 0; \
|
libc_errno = 0; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
// Some macro utility to append file names with LIBC_TEST macro's value to be
|
||||||
|
// used in stdio tests.
|
||||||
|
#undef STR
|
||||||
|
#undef EVAL_THEN_STR
|
||||||
|
#define STR(X) #X
|
||||||
|
#define EVAL_THEN_STR(X) STR(X)
|
||||||
|
|
||||||
|
#define APPEND_LIBC_TEST(X) X "." EVAL_THEN_STR(LIBC_TEST)
|
||||||
|
|
||||||
#endif // LLVM_LIBC_TEST_UNITTEST_TEST_H
|
#endif // LLVM_LIBC_TEST_UNITTEST_TEST_H
|
||||||
|
@ -21,7 +21,8 @@ LIBC_INLINE File *openfile(const char *file_name, const char *mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcPlatformFileTest, CreateWriteCloseAndReadBack) {
|
TEST(LlvmLibcPlatformFileTest, CreateWriteCloseAndReadBack) {
|
||||||
constexpr char FILENAME[] = "testdata/create_write_close_and_readback.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/create_write_close_and_readback.test");
|
||||||
File *file = openfile(FILENAME, "w");
|
File *file = openfile(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
||||||
@ -42,7 +43,8 @@ TEST(LlvmLibcPlatformFileTest, CreateWriteCloseAndReadBack) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcPlatformFileTest, CreateWriteSeekAndReadBack) {
|
TEST(LlvmLibcPlatformFileTest, CreateWriteSeekAndReadBack) {
|
||||||
constexpr char FILENAME[] = "testdata/create_write_seek_and_readback.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/create_write_seek_and_readback.test");
|
||||||
File *file = openfile(FILENAME, "w+");
|
File *file = openfile(FILENAME, "w+");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
||||||
@ -62,7 +64,8 @@ TEST(LlvmLibcPlatformFileTest, CreateWriteSeekAndReadBack) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcPlatformFileTest, CreateAppendCloseAndReadBack) {
|
TEST(LlvmLibcPlatformFileTest, CreateAppendCloseAndReadBack) {
|
||||||
constexpr char FILENAME[] = "testdata/create_append_close_and_readback.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/create_append_close_and_readback.test");
|
||||||
File *file = openfile(FILENAME, "w");
|
File *file = openfile(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
||||||
@ -91,7 +94,8 @@ TEST(LlvmLibcPlatformFileTest, CreateAppendCloseAndReadBack) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcPlatformFileTest, CreateAppendSeekAndReadBack) {
|
TEST(LlvmLibcPlatformFileTest, CreateAppendSeekAndReadBack) {
|
||||||
constexpr char FILENAME[] = "testdata/create_append_seek_and_readback.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/create_append_seek_and_readback.test");
|
||||||
File *file = openfile(FILENAME, "w");
|
File *file = openfile(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
ASSERT_EQ(file->write(TEXT, TEXT_SIZE).value, TEXT_SIZE);
|
||||||
@ -124,7 +128,7 @@ TEST(LlvmLibcPlatformFileTest, LargeFile) {
|
|||||||
for (size_t i = 0; i < DATA_SIZE; ++i)
|
for (size_t i = 0; i < DATA_SIZE; ++i)
|
||||||
write_data[i] = BYTE;
|
write_data[i] = BYTE;
|
||||||
|
|
||||||
constexpr char FILENAME[] = "testdata/large_file.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/large_file.test");
|
||||||
File *file = openfile(FILENAME, "w");
|
File *file = openfile(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
|
|
||||||
@ -151,7 +155,8 @@ TEST(LlvmLibcPlatformFileTest, LargeFile) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcPlatformFileTest, ReadSeekCurAndRead) {
|
TEST(LlvmLibcPlatformFileTest, ReadSeekCurAndRead) {
|
||||||
constexpr char FILENAME[] = "testdata/read_seek_cur_and_read.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/read_seek_cur_and_read.test");
|
||||||
File *file = openfile(FILENAME, "w");
|
File *file = openfile(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
constexpr char CONTENT[] = "1234567890987654321";
|
constexpr char CONTENT[] = "1234567890987654321";
|
||||||
@ -178,7 +183,8 @@ TEST(LlvmLibcPlatformFileTest, ReadSeekCurAndRead) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcPlatformFileTest, IncorrectOperation) {
|
TEST(LlvmLibcPlatformFileTest, IncorrectOperation) {
|
||||||
constexpr char FILENAME[] = "testdata/incorrect_operation.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/incorrect_operation.test");
|
||||||
char data[1] = {123};
|
char data[1] = {123};
|
||||||
|
|
||||||
File *file = openfile(FILENAME, "w");
|
File *file = openfile(FILENAME, "w");
|
||||||
|
@ -24,7 +24,8 @@ using LlvmLibcStdioFdopenTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
|||||||
|
|
||||||
TEST_F(LlvmLibcStdioFdopenTest, WriteAppendRead) {
|
TEST_F(LlvmLibcStdioFdopenTest, WriteAppendRead) {
|
||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||||
constexpr const char *TEST_FILE_NAME = "testdata/write_read_append.test";
|
constexpr const char *TEST_FILE_NAME =
|
||||||
|
APPEND_LIBC_TEST("testdata/write_read_append.test");
|
||||||
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
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);
|
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_TRUNC | O_RDWR, S_IRWXU);
|
||||||
auto *fp = LIBC_NAMESPACE::fdopen(fd, "w");
|
auto *fp = LIBC_NAMESPACE::fdopen(fd, "w");
|
||||||
@ -54,7 +55,8 @@ TEST_F(LlvmLibcStdioFdopenTest, WriteAppendRead) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LlvmLibcStdioFdopenTest, InvalidFd) {
|
TEST_F(LlvmLibcStdioFdopenTest, InvalidFd) {
|
||||||
constexpr const char *TEST_FILE_NAME = "testdata/invalid_fd.test";
|
constexpr const char *TEST_FILE_NAME =
|
||||||
|
APPEND_LIBC_TEST("testdata/invalid_fd.test");
|
||||||
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
||||||
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_TRUNC);
|
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_TRUNC);
|
||||||
LIBC_NAMESPACE::close(fd);
|
LIBC_NAMESPACE::close(fd);
|
||||||
@ -65,7 +67,8 @@ TEST_F(LlvmLibcStdioFdopenTest, InvalidFd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LlvmLibcStdioFdopenTest, InvalidMode) {
|
TEST_F(LlvmLibcStdioFdopenTest, InvalidMode) {
|
||||||
constexpr const char *TEST_FILE_NAME = "testdata/invalid_mode.test";
|
constexpr const char *TEST_FILE_NAME =
|
||||||
|
APPEND_LIBC_TEST("testdata/invalid_mode.test");
|
||||||
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
auto TEST_FILE = libc_make_test_file_path(TEST_FILE_NAME);
|
||||||
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_RDONLY, S_IRWXU);
|
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_CREAT | O_RDONLY, S_IRWXU);
|
||||||
ASSERT_ERRNO_SUCCESS();
|
ASSERT_ERRNO_SUCCESS();
|
||||||
|
@ -56,9 +56,10 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithFgetc) {
|
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithFgetc) {
|
||||||
test_with_func(&LIBC_NAMESPACE::fgetc, "testdata/fgetc.test");
|
test_with_func(&LIBC_NAMESPACE::fgetc,
|
||||||
|
APPEND_LIBC_TEST("testdata/fgetc.test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithGetc) {
|
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithGetc) {
|
||||||
test_with_func(&LIBC_NAMESPACE::getc, "testdata/getc.test");
|
test_with_func(&LIBC_NAMESPACE::getc, APPEND_LIBC_TEST("testdata/getc.test"));
|
||||||
}
|
}
|
||||||
|
@ -62,9 +62,10 @@ public:
|
|||||||
|
|
||||||
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithFgetcUnlocked) {
|
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithFgetcUnlocked) {
|
||||||
test_with_func(&LIBC_NAMESPACE::fgetc_unlocked,
|
test_with_func(&LIBC_NAMESPACE::fgetc_unlocked,
|
||||||
"testdata/fgetc_unlocked.test");
|
APPEND_LIBC_TEST("testdata/fgetc_unlocked.test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithGetcUnlocked) {
|
TEST_F(LlvmLibcGetcTest, WriteAndReadCharactersWithGetcUnlocked) {
|
||||||
test_with_func(&LIBC_NAMESPACE::getc_unlocked, "testdata/getc_unlocked.test");
|
test_with_func(&LIBC_NAMESPACE::getc_unlocked,
|
||||||
|
APPEND_LIBC_TEST("testdata/getc_unlocked.test"));
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ using LlvmLibcFgetsTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
|||||||
using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
|
using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
|
||||||
|
|
||||||
TEST_F(LlvmLibcFgetsTest, WriteAndReadCharacters) {
|
TEST_F(LlvmLibcFgetsTest, WriteAndReadCharacters) {
|
||||||
constexpr char FILENAME[] = "testdata/fgets.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/fgets.test");
|
||||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
constexpr char CONTENT[] = "123456789\n"
|
constexpr char CONTENT[] = "123456789\n"
|
||||||
|
@ -29,7 +29,8 @@ using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::NE;
|
|||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::returns;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::returns;
|
||||||
|
|
||||||
TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
||||||
constexpr char FILENAME[] = "testdata/simple_operations.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/simple_operations.test");
|
||||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
ASSERT_GE(LIBC_NAMESPACE::fileno(file), 0);
|
ASSERT_GE(LIBC_NAMESPACE::fileno(file), 0);
|
||||||
@ -127,7 +128,7 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LlvmLibcFILETest, FFlush) {
|
TEST_F(LlvmLibcFILETest, FFlush) {
|
||||||
constexpr char FILENAME[] = "testdata/fflush.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/fflush.test");
|
||||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w+");
|
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w+");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
constexpr char CONTENT[] = "1234567890987654321";
|
constexpr char CONTENT[] = "1234567890987654321";
|
||||||
@ -154,7 +155,7 @@ TEST_F(LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
|
|||||||
};
|
};
|
||||||
constexpr MyStruct WRITE_DATA[] = {{'a', 1}, {'b', 2}, {'c', 3}};
|
constexpr MyStruct WRITE_DATA[] = {{'a', 1}, {'b', 2}, {'c', 3}};
|
||||||
constexpr size_t WRITE_NMEMB = sizeof(WRITE_DATA) / sizeof(MyStruct);
|
constexpr size_t WRITE_NMEMB = sizeof(WRITE_DATA) / sizeof(MyStruct);
|
||||||
constexpr char FILENAME[] = "testdata/fread_fwrite.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/fread_fwrite.test");
|
||||||
|
|
||||||
FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
|
@ -17,7 +17,8 @@
|
|||||||
TEST(LlvmLibcFOpenTest, PrintToFile) {
|
TEST(LlvmLibcFOpenTest, PrintToFile) {
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
FILE *file = LIBC_NAMESPACE::fopen("./testdata/test_data.txt", "w");
|
FILE *file =
|
||||||
|
LIBC_NAMESPACE::fopen(APPEND_LIBC_TEST("testdata/test.txt"), "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
|
|
||||||
static constexpr char STRING[] = "A simple string written to a file\n";
|
static constexpr char STRING[] = "A simple string written to a file\n";
|
||||||
@ -26,7 +27,8 @@ TEST(LlvmLibcFOpenTest, PrintToFile) {
|
|||||||
|
|
||||||
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
ASSERT_EQ(0, LIBC_NAMESPACE::fclose(file));
|
||||||
|
|
||||||
FILE *new_file = LIBC_NAMESPACE::fopen("./testdata/test_data.txt", "r");
|
FILE *new_file =
|
||||||
|
LIBC_NAMESPACE::fopen(APPEND_LIBC_TEST("testdata/test.txt"), "r");
|
||||||
ASSERT_FALSE(new_file == nullptr);
|
ASSERT_FALSE(new_file == nullptr);
|
||||||
|
|
||||||
static char data[64] = {0};
|
static char data[64] = {0};
|
||||||
|
@ -32,7 +32,7 @@ using ::fread;
|
|||||||
} // namespace printf_test
|
} // namespace printf_test
|
||||||
|
|
||||||
TEST(LlvmLibcFPrintfTest, WriteToFile) {
|
TEST(LlvmLibcFPrintfTest, WriteToFile) {
|
||||||
const char *FILENAME = "fprintf_output.test";
|
const char *FILENAME = APPEND_LIBC_TEST("fprintf_output.test");
|
||||||
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
||||||
|
|
||||||
::FILE *file = printf_test::fopen(FILE_PATH, "w");
|
::FILE *file = printf_test::fopen(FILE_PATH, "w");
|
||||||
|
@ -34,7 +34,7 @@ using ::fwrite;
|
|||||||
} // namespace scanf_test
|
} // namespace scanf_test
|
||||||
|
|
||||||
TEST(LlvmLibcFScanfTest, WriteToFile) {
|
TEST(LlvmLibcFScanfTest, WriteToFile) {
|
||||||
const char *FILENAME = "fscanf_output.test";
|
const char *FILENAME = APPEND_LIBC_TEST("fscanf_output.test");
|
||||||
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
||||||
::FILE *file = scanf_test::fopen(FILE_PATH, "w");
|
::FILE *file = scanf_test::fopen(FILE_PATH, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
class LlvmLibcFTellTest : public LIBC_NAMESPACE::testing::Test {
|
class LlvmLibcFTellTest : public LIBC_NAMESPACE::testing::Test {
|
||||||
protected:
|
protected:
|
||||||
void test_with_bufmode(int bufmode) {
|
void test_with_bufmode(int bufmode) {
|
||||||
constexpr char FILENAME[] = "testdata/ftell.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/ftell.test");
|
||||||
// We will set a special buffer to the file so that we guarantee buffering.
|
// We will set a special buffer to the file so that we guarantee buffering.
|
||||||
constexpr size_t BUFFER_SIZE = 1024;
|
constexpr size_t BUFFER_SIZE = 1024;
|
||||||
char buffer[BUFFER_SIZE];
|
char buffer[BUFFER_SIZE];
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include "test/UnitTest/Test.h"
|
#include "test/UnitTest/Test.h"
|
||||||
|
|
||||||
TEST(LlvmLibcPutcTest, WriteToFile) {
|
TEST(LlvmLibcPutcTest, WriteToFile) {
|
||||||
constexpr char FILENAME[] = "testdata/putc_output.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/putc_output.test");
|
||||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ TEST_F(LlvmLibcRemoveTest, CreateAndRemoveFile) {
|
|||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||||
|
|
||||||
constexpr const char *FILENAME = "remove.test.file";
|
constexpr const char *FILENAME = APPEND_LIBC_TEST("remove.test.file");
|
||||||
auto TEST_FILE = libc_make_test_file_path(FILENAME);
|
auto TEST_FILE = libc_make_test_file_path(FILENAME);
|
||||||
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_WRONLY | O_CREAT, S_IRWXU);
|
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_WRONLY | O_CREAT, S_IRWXU);
|
||||||
ASSERT_ERRNO_SUCCESS();
|
ASSERT_ERRNO_SUCCESS();
|
||||||
@ -42,7 +42,7 @@ TEST_F(LlvmLibcRemoveTest, CreateAndRemoveDir) {
|
|||||||
// it was removed.
|
// it was removed.
|
||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||||
constexpr const char *FILENAME = "remove.test.dir";
|
constexpr const char *FILENAME = APPEND_LIBC_TEST("remove.test.dir");
|
||||||
auto TEST_DIR = libc_make_test_file_path(FILENAME);
|
auto TEST_DIR = libc_make_test_file_path(FILENAME);
|
||||||
ASSERT_THAT(LIBC_NAMESPACE::mkdirat(AT_FDCWD, TEST_DIR, S_IRWXU),
|
ASSERT_THAT(LIBC_NAMESPACE::mkdirat(AT_FDCWD, TEST_DIR, S_IRWXU),
|
||||||
Succeeds(0));
|
Succeeds(0));
|
||||||
|
@ -24,7 +24,7 @@ TEST_F(LlvmLibcRenameTest, CreateAndRenameFile) {
|
|||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
|
||||||
|
|
||||||
constexpr const char *FILENAME0 = "rename.test.file0";
|
constexpr const char *FILENAME0 = APPEND_LIBC_TEST("rename.test.file0");
|
||||||
auto TEST_FILEPATH0 = libc_make_test_file_path(FILENAME0);
|
auto TEST_FILEPATH0 = libc_make_test_file_path(FILENAME0);
|
||||||
|
|
||||||
int fd = LIBC_NAMESPACE::open(TEST_FILEPATH0, O_WRONLY | O_CREAT, S_IRWXU);
|
int fd = LIBC_NAMESPACE::open(TEST_FILEPATH0, O_WRONLY | O_CREAT, S_IRWXU);
|
||||||
@ -33,7 +33,7 @@ TEST_F(LlvmLibcRenameTest, CreateAndRenameFile) {
|
|||||||
ASSERT_THAT(LIBC_NAMESPACE::close(fd), Succeeds(0));
|
ASSERT_THAT(LIBC_NAMESPACE::close(fd), Succeeds(0));
|
||||||
ASSERT_THAT(LIBC_NAMESPACE::access(TEST_FILEPATH0, F_OK), Succeeds(0));
|
ASSERT_THAT(LIBC_NAMESPACE::access(TEST_FILEPATH0, F_OK), Succeeds(0));
|
||||||
|
|
||||||
constexpr const char *FILENAME1 = "rename.test.file1";
|
constexpr const char *FILENAME1 = APPEND_LIBC_TEST("rename.test.file1");
|
||||||
auto TEST_FILEPATH1 = libc_make_test_file_path(FILENAME1);
|
auto TEST_FILEPATH1 = libc_make_test_file_path(FILENAME1);
|
||||||
ASSERT_THAT(LIBC_NAMESPACE::rename(TEST_FILEPATH0, TEST_FILEPATH1),
|
ASSERT_THAT(LIBC_NAMESPACE::rename(TEST_FILEPATH0, TEST_FILEPATH1),
|
||||||
Succeeds(0));
|
Succeeds(0));
|
||||||
@ -44,7 +44,7 @@ TEST_F(LlvmLibcRenameTest, CreateAndRenameFile) {
|
|||||||
TEST_F(LlvmLibcRenameTest, RenameNonExistent) {
|
TEST_F(LlvmLibcRenameTest, RenameNonExistent) {
|
||||||
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
|
||||||
|
|
||||||
constexpr const char *FILENAME1 = "rename.test.file1";
|
constexpr const char *FILENAME1 = APPEND_LIBC_TEST("rename.test.file1");
|
||||||
auto TEST_FILEPATH1 = libc_make_test_file_path(FILENAME1);
|
auto TEST_FILEPATH1 = libc_make_test_file_path(FILENAME1);
|
||||||
|
|
||||||
ASSERT_THAT(LIBC_NAMESPACE::rename("non-existent", TEST_FILEPATH1),
|
ASSERT_THAT(LIBC_NAMESPACE::rename("non-existent", TEST_FILEPATH1),
|
||||||
|
@ -18,7 +18,8 @@
|
|||||||
TEST(LlvmLibcSetbufTest, DefaultBufsize) {
|
TEST(LlvmLibcSetbufTest, DefaultBufsize) {
|
||||||
// The idea in this test is to change the buffer after opening a file and
|
// The idea in this test is to change the buffer after opening a file and
|
||||||
// ensure that read and write work as expected.
|
// ensure that read and write work as expected.
|
||||||
constexpr char FILENAME[] = "testdata/setbuf_test_default_bufsize.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/setbuf_test_default_bufsize.test");
|
||||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
char buffer[BUFSIZ];
|
char buffer[BUFSIZ];
|
||||||
@ -41,7 +42,8 @@ TEST(LlvmLibcSetbufTest, DefaultBufsize) {
|
|||||||
TEST(LlvmLibcSetbufTest, NullBuffer) {
|
TEST(LlvmLibcSetbufTest, NullBuffer) {
|
||||||
// The idea in this test is that we set a null buffer and ensure that
|
// The idea in this test is that we set a null buffer and ensure that
|
||||||
// everything works correctly.
|
// everything works correctly.
|
||||||
constexpr char FILENAME[] = "testdata/setbuf_test_null_buffer.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/setbuf_test_null_buffer.test");
|
||||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
LIBC_NAMESPACE::setbuf(file, nullptr);
|
LIBC_NAMESPACE::setbuf(file, nullptr);
|
||||||
|
@ -23,7 +23,7 @@ TEST_F(LlvmLibcSetvbufTest, SetNBFBuffer) {
|
|||||||
// then set a NBF buffer to the write handle. Since it is NBF, the data
|
// 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
|
// written using the write handle should be immediately readable by the read
|
||||||
// handle.
|
// handle.
|
||||||
constexpr char FILENAME[] = "testdata/setvbuf_nbf.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/setvbuf_nbf.test");
|
||||||
|
|
||||||
::FILE *fw = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *fw = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(fw == nullptr);
|
ASSERT_FALSE(fw == nullptr);
|
||||||
@ -59,7 +59,7 @@ TEST_F(LlvmLibcSetvbufTest, SetLBFBuffer) {
|
|||||||
// then set a LBF buffer to the write handle. Since it is LBF, the data
|
// 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
|
// written using the write handle should be available right after a '\n' is
|
||||||
// written.
|
// written.
|
||||||
constexpr char FILENAME[] = "testdata/setvbuf_lbf.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/setvbuf_lbf.test");
|
||||||
|
|
||||||
::FILE *fw = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *fw = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(fw == nullptr);
|
ASSERT_FALSE(fw == nullptr);
|
||||||
@ -96,7 +96,8 @@ TEST_F(LlvmLibcSetvbufTest, SetLBFBuffer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcSetbufTest, InvalidBufferMode) {
|
TEST(LlvmLibcSetbufTest, InvalidBufferMode) {
|
||||||
constexpr char FILENAME[] = "testdata/setvbuf_invalid_bufmode.test";
|
constexpr char FILENAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/setvbuf_invalid_bufmode.test");
|
||||||
::FILE *f = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *f = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(f == nullptr);
|
ASSERT_FALSE(f == nullptr);
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include "test/UnitTest/Test.h"
|
#include "test/UnitTest/Test.h"
|
||||||
|
|
||||||
TEST(LlvmLibcUngetcTest, UngetAndReadBack) {
|
TEST(LlvmLibcUngetcTest, UngetAndReadBack) {
|
||||||
constexpr char FILENAME[] = "testdata/ungetc_test.test";
|
constexpr char FILENAME[] = APPEND_LIBC_TEST("testdata/ungetc_test.test");
|
||||||
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
::FILE *file = LIBC_NAMESPACE::fopen(FILENAME, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
constexpr char CONTENT[] = "abcdef";
|
constexpr char CONTENT[] = "abcdef";
|
||||||
|
@ -21,7 +21,8 @@
|
|||||||
using LlvmLibcFILETest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
using LlvmLibcFILETest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
|
||||||
|
|
||||||
TEST_F(LlvmLibcFILETest, UnlockedReadAndWrite) {
|
TEST_F(LlvmLibcFILETest, UnlockedReadAndWrite) {
|
||||||
constexpr char fNAME[] = "testdata/unlocked_read_and_write.test";
|
constexpr char fNAME[] =
|
||||||
|
APPEND_LIBC_TEST("testdata/unlocked_read_and_write.test");
|
||||||
::FILE *f = LIBC_NAMESPACE::fopen(fNAME, "w");
|
::FILE *f = LIBC_NAMESPACE::fopen(fNAME, "w");
|
||||||
ASSERT_FALSE(f == nullptr);
|
ASSERT_FALSE(f == nullptr);
|
||||||
constexpr char CONTENT[] = "1234567890987654321";
|
constexpr char CONTENT[] = "1234567890987654321";
|
||||||
|
@ -45,7 +45,7 @@ int call_vfprintf(::FILE *__restrict stream, const char *__restrict format,
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcVFPrintfTest, WriteToFile) {
|
TEST(LlvmLibcVFPrintfTest, WriteToFile) {
|
||||||
const char *FILENAME = "vfprintf_output.test";
|
const char *FILENAME = APPEND_LIBC_TEST("vfprintf_output.test");
|
||||||
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
||||||
|
|
||||||
::FILE *file = printf_test::fopen(FILE_PATH, "w");
|
::FILE *file = printf_test::fopen(FILE_PATH, "w");
|
||||||
|
@ -42,7 +42,7 @@ static int call_vfscanf(::FILE *stream, const char *__restrict format, ...) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(LlvmLibcVFScanfTest, WriteToFile) {
|
TEST(LlvmLibcVFScanfTest, WriteToFile) {
|
||||||
const char *FILENAME = "vfscanf_output.test";
|
const char *FILENAME = APPEND_LIBC_TEST("vfscanf_output.test");
|
||||||
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
auto FILE_PATH = libc_make_test_file_path(FILENAME);
|
||||||
::FILE *file = scanf_test::fopen(FILE_PATH, "w");
|
::FILE *file = scanf_test::fopen(FILE_PATH, "w");
|
||||||
ASSERT_FALSE(file == nullptr);
|
ASSERT_FALSE(file == nullptr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user