Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(795)

Unified Diff: base/platform_file_unittest.cc

Issue 15861011: Add an "append flag" to base::PlatformFile. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Ignore write offset when PLATFORM_FILE_APPEND. Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/platform_file_posix.cc ('k') | base/platform_file_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/platform_file_unittest.cc
diff --git a/base/platform_file_unittest.cc b/base/platform_file_unittest.cc
index 748387610f0436ca3ee90147e81dd3cc2482e114..1106f98bcdd93a20124bb2901838b54302ca1ed5 100644
--- a/base/platform_file_unittest.cc
+++ b/base/platform_file_unittest.cc
@@ -35,8 +35,10 @@ TEST(PlatformFile, CreatePlatformFile) {
// Open a file that doesn't exist.
base::PlatformFileError error_code = base::PLATFORM_FILE_OK;
base::PlatformFile file = base::CreatePlatformFile(
- file_path, base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
- NULL, &error_code);
+ file_path,
+ base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
+ NULL,
+ &error_code);
EXPECT_EQ(base::kInvalidPlatformFileValue, file);
EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, error_code);
@@ -44,8 +46,10 @@ TEST(PlatformFile, CreatePlatformFile) {
bool created = false;
error_code = base::PLATFORM_FILE_OK;
file = base::CreatePlatformFile(
- file_path, base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_READ,
- &created, &error_code);
+ file_path,
+ base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_READ,
+ &created,
+ &error_code);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
EXPECT_TRUE(created);
EXPECT_EQ(base::PLATFORM_FILE_OK, error_code);
@@ -54,8 +58,10 @@ TEST(PlatformFile, CreatePlatformFile) {
// Open an existing file.
created = false;
file = base::CreatePlatformFile(
- file_path, base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
- &created, &error_code);
+ file_path,
+ base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
+ &created,
+ &error_code);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
EXPECT_FALSE(created);
EXPECT_EQ(base::PLATFORM_FILE_OK, error_code);
@@ -63,8 +69,10 @@ TEST(PlatformFile, CreatePlatformFile) {
// Create a file that exists.
file = base::CreatePlatformFile(
- file_path, base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_READ,
- &created, &error_code);
+ file_path,
+ base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_READ,
+ &created,
+ &error_code);
EXPECT_EQ(base::kInvalidPlatformFileValue, file);
EXPECT_FALSE(created);
EXPECT_EQ(base::PLATFORM_FILE_ERROR_EXISTS, error_code);
@@ -72,8 +80,10 @@ TEST(PlatformFile, CreatePlatformFile) {
// Create or overwrite a file.
error_code = base::PLATFORM_FILE_OK;
file = base::CreatePlatformFile(
- file_path, base::PLATFORM_FILE_CREATE_ALWAYS | base::PLATFORM_FILE_READ,
- &created, &error_code);
+ file_path,
+ base::PLATFORM_FILE_CREATE_ALWAYS | base::PLATFORM_FILE_READ,
+ &created,
+ &error_code);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
EXPECT_TRUE(created);
EXPECT_EQ(base::PLATFORM_FILE_OK, error_code);
@@ -84,10 +94,10 @@ TEST(PlatformFile, CreatePlatformFile) {
file_path = temp_dir.path().AppendASCII("create_file_2");
file = base::CreatePlatformFile(
file_path,
- base::PLATFORM_FILE_OPEN_ALWAYS |
- base::PLATFORM_FILE_DELETE_ON_CLOSE |
- base::PLATFORM_FILE_READ,
- &created, &error_code);
+ base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_DELETE_ON_CLOSE |
+ base::PLATFORM_FILE_READ,
+ &created,
+ &error_code);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
EXPECT_TRUE(created);
EXPECT_EQ(base::PLATFORM_FILE_OK, error_code);
@@ -106,10 +116,10 @@ TEST(PlatformFile, DeleteOpenFile) {
base::PlatformFileError error_code = base::PLATFORM_FILE_OK;
base::PlatformFile file = base::CreatePlatformFile(
file_path,
- base::PLATFORM_FILE_OPEN_ALWAYS |
- base::PLATFORM_FILE_READ |
- base::PLATFORM_FILE_SHARE_DELETE,
- &created, &error_code);
+ base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_READ |
+ base::PLATFORM_FILE_SHARE_DELETE,
+ &created,
+ &error_code);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
EXPECT_TRUE(created);
EXPECT_EQ(base::PLATFORM_FILE_OK, error_code);
@@ -118,10 +128,10 @@ TEST(PlatformFile, DeleteOpenFile) {
created = false;
base::PlatformFile same_file = base::CreatePlatformFile(
file_path,
- base::PLATFORM_FILE_OPEN |
- base::PLATFORM_FILE_DELETE_ON_CLOSE |
- base::PLATFORM_FILE_READ,
- &created, &error_code);
+ base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_DELETE_ON_CLOSE |
+ base::PLATFORM_FILE_READ,
+ &created,
+ &error_code);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
EXPECT_FALSE(created);
EXPECT_EQ(base::PLATFORM_FILE_OK, error_code);
@@ -138,10 +148,10 @@ TEST(PlatformFile, ReadWritePlatformFile) {
FilePath file_path = temp_dir.path().AppendASCII("read_write_file");
base::PlatformFile file = base::CreatePlatformFile(
file_path,
- base::PLATFORM_FILE_CREATE |
- base::PLATFORM_FILE_READ |
- base::PLATFORM_FILE_WRITE,
- NULL, NULL);
+ base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_READ |
+ base::PLATFORM_FILE_WRITE,
+ NULL,
+ NULL);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
char data_to_write[] = "test";
@@ -211,16 +221,69 @@ TEST(PlatformFile, ReadWritePlatformFile) {
base::ClosePlatformFile(file);
}
+TEST(PlatformFile, AppendPlatformFile) {
+ base::ScopedTempDir temp_dir;
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+ FilePath file_path = temp_dir.path().AppendASCII("append_file");
+ base::PlatformFile file = base::CreatePlatformFile(
+ file_path,
+ base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_APPEND,
+ NULL,
+ NULL);
+ EXPECT_NE(base::kInvalidPlatformFileValue, file);
+
+ char data_to_write[] = "test";
+ const int kTestDataSize = 4;
+
+ // Write 0 bytes to the file.
+ int bytes_written = WriteFully(file, 0, data_to_write, 0);
+ EXPECT_EQ(0, bytes_written);
+
+ // Write "test" to the file.
+ bytes_written = WriteFully(file, 0, data_to_write, kTestDataSize);
+ EXPECT_EQ(kTestDataSize, bytes_written);
+
+ base::ClosePlatformFile(file);
+ file = base::CreatePlatformFile(
+ file_path,
+ base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ |
+ base::PLATFORM_FILE_APPEND,
+ NULL,
+ NULL);
+ EXPECT_NE(base::kInvalidPlatformFileValue, file);
+
+ char append_data_to_write[] = "78";
+ const int kAppendDataSize = 2;
+
+ // Append "78" to the file.
+ bytes_written = WriteFully(file, 0, append_data_to_write, kAppendDataSize);
+ EXPECT_EQ(kAppendDataSize, bytes_written);
+
+ // Read the entire file.
+ char data_read_1[32];
+ int bytes_read = ReadFully(file, 0, data_read_1,
+ kTestDataSize + kAppendDataSize);
+ EXPECT_EQ(kTestDataSize + kAppendDataSize, bytes_read);
+ for (int i = 0; i < kTestDataSize; i++)
+ EXPECT_EQ(data_to_write[i], data_read_1[i]);
+ for (int i = 0; i < kAppendDataSize; i++)
+ EXPECT_EQ(append_data_to_write[i], data_read_1[kTestDataSize + i]);
+
+ // Close the file handle to allow the temp directory to be deleted.
+ base::ClosePlatformFile(file);
+}
+
+
TEST(PlatformFile, TruncatePlatformFile) {
base::ScopedTempDir temp_dir;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
FilePath file_path = temp_dir.path().AppendASCII("truncate_file");
base::PlatformFile file = base::CreatePlatformFile(
file_path,
- base::PLATFORM_FILE_CREATE |
- base::PLATFORM_FILE_READ |
- base::PLATFORM_FILE_WRITE,
- NULL, NULL);
+ base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_READ |
+ base::PLATFORM_FILE_WRITE,
+ NULL,
+ NULL);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
// Write "test" to the file.
@@ -271,10 +334,10 @@ TEST(PlatformFile, DISABLED_TouchGetInfoPlatformFile) {
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
base::PlatformFile file = base::CreatePlatformFile(
temp_dir.path().AppendASCII("touch_get_info_file"),
- base::PLATFORM_FILE_CREATE |
- base::PLATFORM_FILE_WRITE |
- base::PLATFORM_FILE_WRITE_ATTRIBUTES,
- NULL, NULL);
+ base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_WRITE |
+ base::PLATFORM_FILE_WRITE_ATTRIBUTES,
+ NULL,
+ NULL);
EXPECT_NE(base::kInvalidPlatformFileValue, file);
// Get info for a newly created file.
« no previous file with comments | « base/platform_file_posix.cc ('k') | base/platform_file_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698