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

Unified Diff: webrtc/test/testsupport/fileutils_unittest.cc

Issue 2898753002: ReadDirectory() added in webrtc/test/testsupport/fileutils.h (Closed)
Patch Set: final changes and win trybot fix gtest Created 3 years, 7 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 | « webrtc/test/testsupport/fileutils.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/test/testsupport/fileutils_unittest.cc
diff --git a/webrtc/test/testsupport/fileutils_unittest.cc b/webrtc/test/testsupport/fileutils_unittest.cc
index 132436f0040974dd151bceb43105f720bb9154d5..560300f64087afc9ad37ef8e0d3888fd9994e99d 100644
--- a/webrtc/test/testsupport/fileutils_unittest.cc
+++ b/webrtc/test/testsupport/fileutils_unittest.cc
@@ -12,9 +12,14 @@
#include <stdio.h>
+#include <fstream>
+#include <iostream>
#include <list>
#include <string>
+#include "webrtc/base/checks.h"
+#include "webrtc/base/optional.h"
+#include "webrtc/base/pathutils.h"
#include "webrtc/test/gtest.h"
#ifdef WIN32
@@ -24,11 +29,41 @@ static const char* kPathDelimiter = "\\";
static const char* kPathDelimiter = "/";
#endif
-static const std::string kResourcesDir = "resources";
-static const std::string kTestName = "fileutils_unittest";
-static const std::string kExtension = "tmp";
+static const char kTestName[] = "fileutils_unittest";
+static const char kExtension[] = "tmp";
namespace webrtc {
+namespace test {
+
+namespace {
+
+// Remove files and directories in a directory non-recursively and writes the
+// number of deleted items in |num_deleted_entries|.
+void CleanDir(const std::string& dir, size_t* num_deleted_entries) {
+ RTC_DCHECK(num_deleted_entries);
+ *num_deleted_entries = 0;
+ rtc::Optional<std::vector<std::string>> dir_content = ReadDirectory(dir);
+ EXPECT_TRUE(dir_content);
+ for (const auto& entry : *dir_content) {
+ if (DirExists(entry)) {
+ EXPECT_TRUE(RemoveDir(entry));
+ (*num_deleted_entries)++;
+ } else if (FileExists(entry)) {
+ EXPECT_TRUE(RemoveFile(entry));
+ (*num_deleted_entries)++;
+ } else {
+ FAIL();
+ }
+ }
+}
+
+void WriteStringInFile(const std::string& what, const std::string& file_path) {
+ std::ofstream out(file_path);
+ out << what;
+ out.close();
+}
+
+} // namespace
// Test fixture to restore the working directory between each test, since some
// of them change it with chdir during execution (not restored by the
@@ -170,4 +205,36 @@ TEST_F(FileUtilsTest, DirExists) {
remove(temp_filename.c_str());
}
+TEST_F(FileUtilsTest, WriteReadDeleteFilesAndDirs) {
+ size_t num_deleted_entries;
+
+ // Create an empty temporary directory for this test.
+ const std::string temp_directory =
+ OutputPath() + "TempFileUtilsTestReadDirectory" + kPathDelimiter;
+ CreateDir(temp_directory);
+ EXPECT_NO_FATAL_FAILURE(CleanDir(temp_directory, &num_deleted_entries));
+ EXPECT_TRUE(DirExists(temp_directory));
+
+ // Add a file.
+ const std::string temp_filename = temp_directory + "TempFilenameTest";
+ WriteStringInFile("test\n", temp_filename);
+ EXPECT_TRUE(FileExists(temp_filename));
+
+ // Add an empty directory.
+ const std::string temp_subdir = temp_directory + "subdir" + kPathDelimiter;
+ EXPECT_TRUE(CreateDir(temp_subdir));
+ EXPECT_TRUE(DirExists(temp_subdir));
+
+ // Checks.
+ rtc::Optional<std::vector<std::string>> dir_content =
+ ReadDirectory(temp_directory);
+ EXPECT_TRUE(dir_content);
+ EXPECT_EQ(2u, dir_content->size());
+ EXPECT_NO_FATAL_FAILURE(CleanDir(temp_directory, &num_deleted_entries));
+ EXPECT_EQ(2u, num_deleted_entries);
+ EXPECT_TRUE(RemoveDir(temp_directory));
+ EXPECT_FALSE(DirExists(temp_directory));
+}
+
+} // namespace test
} // namespace webrtc
« no previous file with comments | « webrtc/test/testsupport/fileutils.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698