pytorch/test/cpp/nativert/test_file_util.cpp
Georgia Phillips f8010e7b93 [nativert] Move file_util to pytorch core (#153162)
Summary: fbcode//sigmoid/core/common -> fbcode//caffe2/torch/nativert/common

Test Plan: Github CI

Differential Revision: D74328089

Pull Request resolved: https://github.com/pytorch/pytorch/pull/153162
Approved by: https://github.com/zhxchen17
2025-05-27 03:42:47 +00:00

112 lines
2.2 KiB
C++

#include <gtest/gtest.h>
#include <torch/nativert/common/FileUtil.h>
#include <fstream>
namespace torch {
namespace nativert {
TEST(FileUtilTest, OpenNoInt) {
// Create a temporary file
std::ofstream tmpFile("tmp_file.txt");
tmpFile.close();
int fd = openNoInt("tmp_file.txt", O_RDONLY, 0);
ASSERT_GE(fd, 0);
closeNoInt(fd);
}
TEST(FileUtilTest, CloseNoInt) {
// Create a temporary file
std::ofstream tmpFile("tmp_file.txt");
tmpFile.close();
int fd = openNoInt("tmp_file.txt", O_RDONLY, 0);
ASSERT_GE(fd, 0);
int result = closeNoInt(fd);
ASSERT_EQ(result, 0);
}
TEST(FileUtilTest, WriteFull) {
// Create a temporary file
std::ofstream tmpFile("tmp_file.txt");
tmpFile.close();
int fd = openNoInt("tmp_file.txt", O_WRONLY | O_CREAT, 0644);
ASSERT_GE(fd, 0);
const char* data = "Hello, World!";
ssize_t bytesWritten = writeFull(fd, data, strlen(data));
ASSERT_EQ(bytesWritten, strlen(data));
closeNoInt(fd);
}
TEST(FileUtilTest, ReadFull) {
// Create a temporary file
std::ofstream tmpFile("tmp_file.txt");
tmpFile << "Hello, World!";
tmpFile.close();
int fd = openNoInt("tmp_file.txt", O_RDONLY, 0);
ASSERT_GE(fd, 0);
char buffer[1024];
ssize_t bytesRead = readFull(fd, buffer, 1024);
ASSERT_EQ(bytesRead, 13); // length of "Hello, World!"
closeNoInt(fd);
}
TEST(FileUtilTest, FileConstructor) {
// Create a temporary file
std::ofstream tmpFile("tmp_file.txt");
tmpFile.close();
File file("tmp_file.txt", O_RDONLY, 0);
ASSERT_GE(file.fd(), 0);
file.close();
}
TEST(FileUtilTest, FileMoveConstructor) {
// Create a temporary file
std::ofstream tmpFile("tmp_file.txt");
tmpFile.close();
File file1("tmp_file.txt", O_RDONLY, 0);
File file2(std::move(file1));
ASSERT_GE(file2.fd(), 0);
ASSERT_EQ(file1.fd(), -1);
file2.close();
}
TEST(FileUtilTest, FileAssignmentOperator) {
// Create a temporary file
std::ofstream tmpFile("tmp_file.txt");
tmpFile.close();
File file1("tmp_file.txt", O_RDONLY, 0);
File file2;
file2 = std::move(file1);
ASSERT_GE(file2.fd(), 0);
ASSERT_EQ(file1.fd(), -1);
file2.close();
}
TEST(FileUtilTest, TemporaryFile) {
File file = File::temporary();
ASSERT_GE(file.fd(), 0);
file.close();
}
} // namespace nativert
} // namespace torch