Index: chrome/test/memory_test/memory_test.cc |
=================================================================== |
--- chrome/test/memory_test/memory_test.cc (revision 6886) |
+++ chrome/test/memory_test/memory_test.cc (working copy) |
@@ -27,7 +27,7 @@ |
class MemoryTest : public UITest { |
public: |
- MemoryTest() { |
+ MemoryTest() : cleanup_temp_dir_on_exit_(false) { |
show_window_ = true; |
// For now, turn off plugins because they crash like crazy. |
@@ -52,15 +52,15 @@ |
file_util::AppendToPath(&profile_dir, L"data"); |
file_util::AppendToPath(&profile_dir, L"memory_test"); |
file_util::AppendToPath(&profile_dir, L"general_mix"); |
- } |
- if (!SetupTempDirectory(profile_dir)) { |
- // There isn't really a way to fail gracefully here. |
- // Neither this constuctor nor the SetUp() method return |
- // status to the caller. So, just fall through using the |
- // default profile and log this. The failure will be |
- // obvious. |
- LOG(ERROR) << "Error preparing temp directory for test"; |
+ if (!SetupTempDirectory(profile_dir)) { |
+ // There isn't really a way to fail gracefully here. |
+ // Neither this constuctor nor the SetUp() method return |
+ // status to the caller. So, just fall through using the |
+ // default profile and log this. The failure will be |
+ // obvious. |
+ LOG(ERROR) << "Error preparing temp directory for test"; |
+ } |
} |
CommandLine::AppendSwitchWithValue(&launch_arguments_, |
@@ -70,7 +70,7 @@ |
~MemoryTest() { |
// Cleanup our temporary directory. |
- if (user_data_dir_.length() > 0) |
+ if (cleanup_temp_dir_on_exit_) |
file_util::Delete(user_data_dir_, true); |
} |
@@ -248,6 +248,11 @@ |
&timed_out); |
if (timed_out) |
printf("warning: %s timed out!\n", urls[counter].c_str()); |
+ |
+ // TODO(mbelshe): Bug 2953 |
+ // The automation crashes periodically if we cycle too quickly. |
+ // To make these tests more reliable, slowing them down a bit. |
+ Sleep(100); |
} |
size_t stop_size = GetSystemCommitCharge(); |
@@ -371,23 +376,32 @@ |
// src_dir is set to the source directory |
// Output: |
// On success, modifies user_data_dir_ to be a new profile directory |
+ // and sets cleanup_temp_dir_on_exit_ to true. |
bool SetupTempDirectory(std::wstring src_dir) { |
+ LOG(INFO) << "Setting up temp directory in " << src_dir.c_str(); |
// We create a copy of the test dir and use it so that each |
// run of this test starts with the same data. Running this |
// test has the side effect that it will change the profile. |
std::wstring temp_dir; |
- if (!file_util::CreateNewTempDirectory(kTempDirName, &temp_dir)) |
+ if (!file_util::CreateNewTempDirectory(kTempDirName, &temp_dir)) { |
+ LOG(ERROR) << "Could not create temp directory:" << kTempDirName; |
return false; |
+ } |
src_dir.append(L"\\*"); |
- if (!file_util::CopyDirectory(src_dir, temp_dir, true)) |
+ if (!file_util::CopyDirectory(src_dir, temp_dir, true)) { |
+ LOG(ERROR) << "Could not copy temp directory"; |
return false; |
+ } |
user_data_dir_ = temp_dir; |
+ cleanup_temp_dir_on_exit_ = true; |
+ LOG(INFO) << "Finished temp directory setup."; |
return true; |
} |
+ bool cleanup_temp_dir_on_exit_; |
std::wstring user_data_dir_; |
}; |