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

Side by Side Diff: third_party/protobuf/src/google/protobuf/testing/file.cc

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 bool File::WriteStringToFile(const string& contents, const string& name) { 85 bool File::WriteStringToFile(const string& contents, const string& name) {
86 FILE* file = fopen(name.c_str(), "wb"); 86 FILE* file = fopen(name.c_str(), "wb");
87 if (file == NULL) { 87 if (file == NULL) {
88 GOOGLE_LOG(ERROR) << "fopen(" << name << ", \"wb\"): " << strerror(errno); 88 GOOGLE_LOG(ERROR) << "fopen(" << name << ", \"wb\"): " << strerror(errno);
89 return false; 89 return false;
90 } 90 }
91 91
92 if (fwrite(contents.data(), 1, contents.size(), file) != contents.size()) { 92 if (fwrite(contents.data(), 1, contents.size(), file) != contents.size()) {
93 GOOGLE_LOG(ERROR) << "fwrite(" << name << "): " << strerror(errno); 93 GOOGLE_LOG(ERROR) << "fwrite(" << name << "): " << strerror(errno);
94 fclose(file);
94 return false; 95 return false;
95 } 96 }
96 97
97 if (fclose(file) != 0) { 98 if (fclose(file) != 0) {
98 return false; 99 return false;
99 } 100 }
100 return true; 101 return true;
101 } 102 }
102 103
103 void File::WriteStringToFileOrDie(const string& contents, const string& name) { 104 void File::WriteStringToFileOrDie(const string& contents, const string& name) {
(...skipping 29 matching lines...) Expand all
133 134
134 void File::DeleteRecursively(const string& name, 135 void File::DeleteRecursively(const string& name,
135 void* dummy1, void* dummy2) { 136 void* dummy1, void* dummy2) {
136 if (name.empty()) return; 137 if (name.empty()) return;
137 138
138 // We don't care too much about error checking here since this is only used 139 // We don't care too much about error checking here since this is only used
139 // in tests to delete temporary directories that are under /tmp anyway. 140 // in tests to delete temporary directories that are under /tmp anyway.
140 141
141 #ifdef _MSC_VER 142 #ifdef _MSC_VER
142 // This interface is so weird. 143 // This interface is so weird.
143 WIN32_FIND_DATA find_data; 144 WIN32_FIND_DATAA find_data;
144 HANDLE find_handle = FindFirstFile((name + "/*").c_str(), &find_data); 145 HANDLE find_handle = FindFirstFileA((name + "/*").c_str(), &find_data);
145 if (find_handle == INVALID_HANDLE_VALUE) { 146 if (find_handle == INVALID_HANDLE_VALUE) {
146 // Just delete it, whatever it is. 147 // Just delete it, whatever it is.
147 DeleteFile(name.c_str()); 148 DeleteFileA(name.c_str());
148 RemoveDirectory(name.c_str()); 149 RemoveDirectoryA(name.c_str());
149 return; 150 return;
150 } 151 }
151 152
152 do { 153 do {
153 string entry_name = find_data.cFileName; 154 string entry_name = find_data.cFileName;
154 if (entry_name != "." && entry_name != "..") { 155 if (entry_name != "." && entry_name != "..") {
155 string path = name + "/" + entry_name; 156 string path = name + "/" + entry_name;
156 if (find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { 157 if (find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
157 DeleteRecursively(path, NULL, NULL); 158 DeleteRecursively(path, NULL, NULL);
158 RemoveDirectory(path.c_str()); 159 RemoveDirectoryA(path.c_str());
159 } else { 160 } else {
160 DeleteFile(path.c_str()); 161 DeleteFileA(path.c_str());
161 } 162 }
162 } 163 }
163 } while(FindNextFile(find_handle, &find_data)); 164 } while(FindNextFileA(find_handle, &find_data));
164 FindClose(find_handle); 165 FindClose(find_handle);
165 166
166 RemoveDirectory(name.c_str()); 167 RemoveDirectoryA(name.c_str());
167 #else 168 #else
168 // Use opendir()! Yay! 169 // Use opendir()! Yay!
169 // lstat = Don't follow symbolic links. 170 // lstat = Don't follow symbolic links.
170 struct stat stats; 171 struct stat stats;
171 if (lstat(name.c_str(), &stats) != 0) return; 172 if (lstat(name.c_str(), &stats) != 0) return;
172 173
173 if (S_ISDIR(stats.st_mode)) { 174 if (S_ISDIR(stats.st_mode)) {
174 DIR* dir = opendir(name.c_str()); 175 DIR* dir = opendir(name.c_str());
175 if (dir != NULL) { 176 if (dir != NULL) {
176 while (true) { 177 while (true) {
(...skipping 14 matching lines...) Expand all
191 } 192 }
192 #endif 193 #endif
193 } 194 }
194 195
195 bool File::ChangeWorkingDirectory(const string& new_working_directory) { 196 bool File::ChangeWorkingDirectory(const string& new_working_directory) {
196 return chdir(new_working_directory.c_str()) == 0; 197 return chdir(new_working_directory.c_str()) == 0;
197 } 198 }
198 199
199 } // namespace protobuf 200 } // namespace protobuf
200 } // namespace google 201 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698