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

Unified Diff: base/file_unittest.cc

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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/file_store_unittest.cc ('k') | base/file_ver.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/file_unittest.cc
diff --git a/base/file_unittest.cc b/base/file_unittest.cc
deleted file mode 100644
index c061491715e54e76e26e860c671f666c46657740..0000000000000000000000000000000000000000
--- a/base/file_unittest.cc
+++ /dev/null
@@ -1,439 +0,0 @@
-// Copyright 2003-2009 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// ========================================================================
-//
-// File unittest
-
-#include "omaha/base/file.h"
-#include "omaha/base/logging.h"
-#include "omaha/base/string.h"
-#include "omaha/base/timer.h"
-#include "omaha/base/tr_rand.h"
-#include "omaha/base/utils.h"
-#include "omaha/testing/unit_test.h"
-
-namespace omaha {
-
-// TODO(omaha): test error-prone functions such as ReadLineAnsi
-
-namespace {
-
-#define kIEBrowserExe \
- _T("C:\\PROGRAM FILES\\Internet Explorer\\iexplore.exe")
-
-#define kIEBrowserQuotedExe \
- _T("\"") kIEBrowserExe _T("\"")
-
-} // namespace
-
-void SimpleTest(bool async) {
- File f;
-
- char buf[1000] = "test";
- uint32 len1 = 4;
-
- char buf2[1000] = "aaaa";
- uint32 len2 = 4;
-
- char buf3[1000] = "bbbb";
- uint32 len3 = 4;
-
- char buf4[1000] = " ";
- uint32 len4 = 4;
-
- CString s(_T("test"));
- CString testfile(_T("testfile.1"));
-
- ASSERT_SUCCEEDED(f.Open(testfile, true, async));
- uint32 pos = 0;
- ASSERT_SUCCEEDED(f.WriteAt(pos,
- reinterpret_cast<byte*>(buf),
- len1,
- 0,
- NULL));
- pos += len1;
-
- ASSERT_SUCCEEDED(f.WriteAt(pos,
- reinterpret_cast<byte*>(buf3),
- len3,
- 0,
- NULL));
- pos += len3;
-
- ASSERT_SUCCEEDED(f.WriteAt(pos,
- reinterpret_cast<byte*>(buf3),
- len3,
- 0,
- NULL));
- pos += len3;
-
- ASSERT_SUCCEEDED(f.WriteAt(pos,
- reinterpret_cast<byte*>(buf3),
- len3,
- 0,
- NULL));
- pos += len3;
-
- ASSERT_SUCCEEDED(f.WriteAt(pos,
- reinterpret_cast<byte*>(buf3),
- len3,
- 0,
- NULL));
- pos += len3;
-
- ASSERT_SUCCEEDED(f.WriteAt(pos,
- reinterpret_cast<byte*>(buf3),
- len3,
- 0,
- NULL));
- pos += len3;
-
- ASSERT_SUCCEEDED(f.WriteAt(pos,
- reinterpret_cast<byte*>(buf3),
- len3,
- 0,
- NULL));
- pos += len3;
-
- ASSERT_SUCCEEDED(f.ReadAt(0, reinterpret_cast<byte*>(buf4), len1, 0, NULL));
- ASSERT_STREQ(buf, buf4);
-
- ASSERT_SUCCEEDED(f.ReadAt(4, reinterpret_cast<byte*>(buf4), len3, 0, NULL));
- ASSERT_STREQ(buf3, buf4);
-
- ASSERT_SUCCEEDED(f.WriteAt(1, reinterpret_cast<byte*>(buf3), 2, 0, NULL));
-
- ASSERT_SUCCEEDED(f.WriteAt(20, reinterpret_cast<byte*>(buf), 2, 0, NULL));
- ASSERT_SUCCEEDED(f.ReadAt(20, reinterpret_cast<byte*>(buf), 2, 0, NULL));
-
- ASSERT_SUCCEEDED(f.WriteAt(30, reinterpret_cast<byte*>(buf), 2, 0, NULL));
-
- ASSERT_SUCCEEDED(f.SeekFromBegin(0));
-
- ASSERT_SUCCEEDED(f.ReadAt(30, reinterpret_cast<byte*>(buf), 2, 0, NULL));
-
- ASSERT_SUCCEEDED(f.Close());
-
- ASSERT_SUCCEEDED(f.Open(L"testfile.1", false, false));
- ASSERT_SUCCEEDED(f.ReadAt(0, reinterpret_cast<byte*>(buf), 16, 0, NULL));
- buf[17] = '\0';
-
- uint64 size_on_disk = 0;
- ASSERT_SUCCEEDED(f.GetSizeOnDisk(&size_on_disk));
- ASSERT_EQ(size_on_disk, 32);
-
- ASSERT_SUCCEEDED(f.Close());
-
- ASSERT_TRUE(File::Exists(testfile));
- ASSERT_SUCCEEDED(File::Remove(testfile));
- ASSERT_FALSE(File::Exists(testfile));
-}
-
-void FileWriteCreate(uint32 file_size) {
- Timer time(true);
- CString testfile;
- testfile.Format(L"testfile%u", file_size);
-
- File f;
- ASSERT_SUCCEEDED(f.Open(testfile, true, false));
- ASSERT_SUCCEEDED(f.SetLength(file_size, false));
-
- uint32 write_size = 512;
-
- byte *buf2 = new byte[write_size];
-
- for (uint32 j = 0; j < file_size - write_size; j += write_size) {
- for (uint32 i = 0; i < write_size; i++) {
- buf2[i] = static_cast<byte>(tr_rand() % 255);
- }
- ASSERT_SUCCEEDED(f.WriteAt(j, buf2, write_size, 0, NULL));
- }
-
- f.Sync();
- f.Close();
-
- EXPECT_SUCCEEDED(File::Remove(testfile));
-}
-
-void FileWriteTimeTest(uint32 file_size,
- uint32 number_writes,
- uint32 write_size) {
- Timer time(true);
- CString testfile;
- testfile.Format(L"testfile%u", file_size);
-
- File f;
- ASSERT_SUCCEEDED(f.Open(testfile, true, false));
-
- byte *buf = new byte[write_size];
-
- for (uint32 i = 0; i < number_writes; i++) {
- for (uint32 j = 0; j < write_size; j++) {
- buf[j] = static_cast<byte>(tr_rand() % 255);
- }
- uint32 pos = (tr_rand() * 65536 + tr_rand()) % (file_size - write_size);
- ASSERT_SUCCEEDED(f.WriteAt(pos, buf, write_size, 0, NULL));
- }
-
- delete[] buf;
-
- ASSERT_SUCCEEDED(f.Sync());
- ASSERT_SUCCEEDED(f.Close());
-
- EXPECT_SUCCEEDED(File::Remove(testfile));
-}
-
-TEST(FileTest, File) {
- const TCHAR* const kTestFileName = L"testfile.3";
-
- SimpleTest(false);
-
- int header = 123;
- int header2 = 0;
-
- File f2;
- ASSERT_SUCCEEDED(f2.Open(kTestFileName, true, false));
- ASSERT_SUCCEEDED(f2.WriteAt(0,
- reinterpret_cast<byte*>(&header),
- sizeof(header),
- 0,
- NULL));
- ASSERT_SUCCEEDED(f2.ReadAt(0,
- reinterpret_cast<byte*>(&header2),
- sizeof(header),
- 0,
- NULL));
- ASSERT_EQ(header, header2);
-
- uint64 size_on_disk = 0;
-
- ASSERT_SUCCEEDED(f2.GetSizeOnDisk(&size_on_disk));
- ASSERT_EQ(size_on_disk, sizeof(header));
- ASSERT_SUCCEEDED(f2.Close());
-
- const int kLevel = 1;
- for (uint32 file_size = 2 * 1024 * 1024;
- file_size <= 2 * 1024 * 1024;
- file_size *= 2) {
- for (uint32 number_writes = 100;
- number_writes <= (300 * static_cast<uint32>(kLevel));
- number_writes *= 2) {
- uint32 write_size = 128;
- FileWriteTimeTest(file_size, number_writes, write_size);
- }
- }
-
- // Test File::Copy, File::Move, File::CopyWildcards
- {
- CString windows_dir;
- CString temp_dir;
- DWORD dw = ::GetEnvironmentVariable(
- L"SystemRoot",
- windows_dir.GetBufferSetLength(MAX_PATH),
- MAX_PATH);
- windows_dir.ReleaseBuffer();
- ASSERT_TRUE(dw);
- dw = ::GetEnvironmentVariable(L"TEMP",
- temp_dir.GetBufferSetLength(MAX_PATH),
- MAX_PATH);
- temp_dir.ReleaseBuffer();
- ASSERT_TRUE(dw);
- CString known_file1(windows_dir + L"\\NOTEPAD.EXE");
- CString known_file2(windows_dir + L"\\REGEDIT.EXE");
- CString temp_file1(temp_dir + L"\\FOO.TMP");
- CString temp_file2(temp_dir + L"\\BAR.TMP");
- uint32 known_size1 = 0;
- uint32 known_size2 = 0;
- uint32 temp_size1 = 0;
-
- // Start with neither file existing
- if (File::Exists(temp_file1))
- File::Remove(temp_file1);
- if (File::Exists(temp_file2))
- File::Remove(temp_file2);
- ASSERT_FALSE(File::Exists(temp_file1));
- ASSERT_FALSE(File::Exists(temp_file2));
- ASSERT_SUCCEEDED(File::GetFileSizeUnopen(known_file1, &known_size1));
- ASSERT_SUCCEEDED(File::GetFileSizeUnopen(known_file2, &known_size2));
- ASSERT_NE(known_size1, known_size2);
-
- // Copy to create a file, move it to 2nd file, then remove 2nd file
- ASSERT_SUCCEEDED(File::Copy(known_file1, temp_file1, false));
- ASSERT_TRUE(File::Exists(temp_file1));
- ASSERT_SUCCEEDED(File::Move(temp_file1, temp_file2, false));
- ASSERT_FALSE(File::Exists(temp_file1));
- ASSERT_TRUE(File::Exists(temp_file2));
- ASSERT_SUCCEEDED(File::Remove(temp_file2));
- ASSERT_FALSE(File::Exists(temp_file2));
-
- // Try copying a file on top of a file - with and without
- // replace_existing_file=true
- ASSERT_SUCCEEDED(File::Copy(known_file1, temp_file1, false));
- ASSERT_SUCCEEDED(File::GetFileSizeUnopen(temp_file1, &temp_size1));
- ASSERT_EQ(temp_size1, known_size1);
- ASSERT_SUCCEEDED(File::Copy(known_file2, temp_file1, false));
- ASSERT_TRUE(File::Exists(temp_file1));
- ASSERT_SUCCEEDED(File::GetFileSizeUnopen(temp_file1, &temp_size1));
- ASSERT_EQ(temp_size1, known_size1);
- ASSERT_SUCCEEDED(File::Copy(known_file2, temp_file1, true));
- ASSERT_TRUE(File::Exists(temp_file1));
- ASSERT_SUCCEEDED(File::GetFileSizeUnopen(temp_file1, &temp_size1));
- ASSERT_EQ(temp_size1, known_size2);
- ASSERT_SUCCEEDED(File::Remove(temp_file1));
-
- // Try copying a bunch of files
- CString known_file3(windows_dir + L"\\twunk_32.exe");
- CString known_file4(windows_dir + L"\\twunk_16.exe");
- CString temp_file3(temp_dir + L"\\twunk_32.exe");
- CString temp_file4(temp_dir + L"\\twunk_16.exe");
- if (File::Exists(temp_file3))
- File::Remove(temp_file3);
- if (File::Exists(temp_file4))
- File::Remove(temp_file4);
- ASSERT_TRUE(File::Exists(known_file3));
- ASSERT_TRUE(File::Exists(known_file4));
- ASSERT_FALSE(File::Exists(temp_file3));
- ASSERT_FALSE(File::Exists(temp_file4));
- ASSERT_SUCCEEDED(File::CopyWildcards(windows_dir,
- temp_dir,
- L"twunk*.exe",
- true));
- ASSERT_TRUE(File::Exists(temp_file3));
- ASSERT_TRUE(File::Exists(temp_file4));
- ASSERT_SUCCEEDED(File::Remove(temp_file3));
- ASSERT_SUCCEEDED(File::Remove(temp_file4));
-
- std::vector<CString> matching_files;
- ASSERT_SUCCEEDED(File::GetWildcards(windows_dir,
- L"twunk*.exe",
- &matching_files));
- ASSERT_EQ(matching_files.size(), 2);
- ASSERT_TRUE(matching_files[0] == known_file3 ||
- matching_files[0] == known_file4);
- ASSERT_TRUE(matching_files[1] == known_file3 ||
- matching_files[1] == known_file4);
- ASSERT_TRUE(matching_files[0] != matching_files[1]);
- }
-
- EXPECT_SUCCEEDED(File::Remove(kTestFileName));
-}
-
-
-TEST(FileTest, FileChangeWatcher) {
- CString temp_dir;
- ASSERT_TRUE(::GetEnvironmentVariable(L"TEMP",
- temp_dir.GetBufferSetLength(MAX_PATH),
- MAX_PATH) != 0);
- temp_dir.ReleaseBuffer();
- temp_dir = String_MakeEndWith(temp_dir, _T("\\"), false /* ignore_case */);
- temp_dir = temp_dir + _T("omaha_unittest") + itostr(tr_rand() % 255);
- EXPECT_SUCCEEDED(CreateDir(temp_dir, 0));
-
- // watch the directory for changes
- FileWatcher watcher(temp_dir, false, FILE_NOTIFY_CHANGE_LAST_WRITE);
- EXPECT_SUCCEEDED(watcher.EnsureEventSetup());
- EXPECT_FALSE(watcher.HasChangeOccurred());
-
- //
- // verify that the watcher got set-up correctly the first time
- //
-
- // do something in the dir
- File f;
- int header1 = 94;
- ASSERT_SUCCEEDED(f.Open(temp_dir + _T("\\testfile.1"), true, false));
- ASSERT_SUCCEEDED(f.WriteAt(0, reinterpret_cast<byte*>(&header1),
- sizeof(header1), 0, NULL));
- ASSERT_SUCCEEDED(f.Sync());
- ASSERT_SUCCEEDED(f.Close());
-
- // Did we noticed that something happened?
- EXPECT_TRUE(watcher.HasChangeOccurred());
- EXPECT_SUCCEEDED(watcher.EnsureEventSetup());
- EXPECT_FALSE(watcher.HasChangeOccurred());
-
- //
- // verify that the watcher got set-up correctly the second time
- //
-
- // do something in the dir
- byte header2 = 2;
- ASSERT_SUCCEEDED(f.Open(temp_dir + _T("\\testfile.2"), true, false));
- ASSERT_SUCCEEDED(f.WriteAt(0, reinterpret_cast<byte*>(&header2),
- sizeof(header2), 0, NULL));
- ASSERT_SUCCEEDED(f.Sync());
- ASSERT_SUCCEEDED(f.Close());
-
- // Did we noticed that something happened?
- EXPECT_TRUE(watcher.HasChangeOccurred());
- EXPECT_SUCCEEDED(watcher.EnsureEventSetup());
- EXPECT_FALSE(watcher.HasChangeOccurred());
-
- EXPECT_SUCCEEDED(DeleteDirectory(temp_dir));
-}
-
-TEST(FileTest, Exists_UnQuoted) {
- EXPECT_TRUE(File::Exists(kIEBrowserExe));
- EXPECT_FALSE(File::Exists(_T("C:\\foo\\does not exist.exe")));
- EXPECT_FALSE(File::Exists(_T("Z:\\foo\\does not exist.exe")));
- if (ShouldRunLargeTest()) {
- EXPECT_FALSE(File::Exists(_T("\\\\foo\\does not exist.exe")));
- }
-}
-
-// File::Exists() expects unquoted paths.
-TEST(FileTest, Exists_Quoted) {
- EXPECT_FALSE(File::Exists(kIEBrowserQuotedExe));
- EXPECT_FALSE(File::Exists(_T("\"C:\\foo\\does not exist.exe\"")));
- EXPECT_FALSE(File::Exists(_T("\"Z:\\foo\\does not exist.exe\"")));
- if (ShouldRunLargeTest()) {
- EXPECT_FALSE(File::Exists(_T("\"\\\\foo\\does not exist.exe\"")));
- }
-}
-
-// File::Exists() handles trailing spaces but not leading whitespace, tabs, or
-// enclosed paths.
-TEST(FileTest, Exists_ExtraWhitespace) {
- EXPECT_TRUE(File::Exists(kIEBrowserExe _T(" ")));
- EXPECT_TRUE(File::Exists(kIEBrowserExe _T(" ")));
- EXPECT_FALSE(File::Exists(_T(" ") kIEBrowserExe));
- EXPECT_FALSE(File::Exists(kIEBrowserExe _T("\t")));
-
- EXPECT_FALSE(File::Exists(kIEBrowserQuotedExe _T(" ")));
- EXPECT_FALSE(File::Exists(kIEBrowserQuotedExe _T(" ")));
- EXPECT_FALSE(File::Exists(_T(" ") kIEBrowserQuotedExe));
- EXPECT_FALSE(File::Exists(kIEBrowserQuotedExe _T("\t")));
-
- EXPECT_FALSE(File::Exists(_T("\"") kIEBrowserExe _T(" \"")));
- EXPECT_FALSE(File::Exists(_T("\"") kIEBrowserExe _T(" \"")));
- EXPECT_FALSE(File::Exists(_T("\" ") kIEBrowserExe _T("\"") ));
- EXPECT_FALSE(File::Exists(_T("\"") kIEBrowserExe _T("\t\"")));
-
- EXPECT_FALSE(File::Exists(_T("\"") kIEBrowserExe _T(" \" ")));
-}
-
-TEST(FileTest, AreFilesIdentical) {
- CString windows_dir;
- ASSERT_TRUE(::GetEnvironmentVariable(_T("SystemRoot"),
- CStrBuf(windows_dir, MAX_PATH),
- MAX_PATH));
-
- CString known_file1(windows_dir + _T("\\NOTEPAD.EXE"));
- CString known_file2(windows_dir + _T("\\REGEDIT.EXE"));
-
- EXPECT_TRUE(File::AreFilesIdentical(known_file1, known_file1));
- EXPECT_FALSE(File::AreFilesIdentical(known_file1, known_file2));
-}
-
-} // namespace omaha
« no previous file with comments | « base/file_store_unittest.cc ('k') | base/file_ver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698