From e49fede158e9a8c9e8aeef06093a8d591331e9f7 Mon Sep 17 00:00:00 2001 From: alessiob Date: Wed, 15 Mar 2017 06:04:59 -0700 Subject: [PATCH] FileUtilsTest DirExists function added BUG=webrtc:7218 Review-Url: https://codereview.webrtc.org/2749163003 Cr-Commit-Position: refs/heads/master@{#17247} --- webrtc/test/testsupport/fileutils.cc | 6 ++++++ webrtc/test/testsupport/fileutils.h | 3 +++ webrtc/test/testsupport/fileutils_unittest.cc | 20 +++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/webrtc/test/testsupport/fileutils.cc b/webrtc/test/testsupport/fileutils.cc index 2555f5cc07..899bf31f90 100644 --- a/webrtc/test/testsupport/fileutils.cc +++ b/webrtc/test/testsupport/fileutils.cc @@ -106,6 +106,12 @@ bool FileExists(const std::string& file_name) { return stat(file_name.c_str(), &file_info) == 0; } +bool DirExists(const std::string& directory_name) { + struct stat directory_info = {0}; + return stat(directory_name.c_str(), &directory_info) == 0 && S_ISDIR( + directory_info.st_mode); +} + #ifdef WEBRTC_ANDROID std::string ProjectRootPath() { diff --git a/webrtc/test/testsupport/fileutils.h b/webrtc/test/testsupport/fileutils.h index 1a5f9bbb56..549f96b7e7 100644 --- a/webrtc/test/testsupport/fileutils.h +++ b/webrtc/test/testsupport/fileutils.h @@ -74,6 +74,9 @@ bool CreateDir(const std::string& directory_name); // Checks if a file exists. bool FileExists(const std::string& file_name); +// Checks if a directory exists. +bool DirExists(const std::string& directory_name); + // File size of the supplied file in bytes. Will return 0 if the file is // empty or if the file does not exist/is readable. size_t GetFileSize(const std::string& filename); diff --git a/webrtc/test/testsupport/fileutils_unittest.cc b/webrtc/test/testsupport/fileutils_unittest.cc index f7ddb1539b..132436f004 100644 --- a/webrtc/test/testsupport/fileutils_unittest.cc +++ b/webrtc/test/testsupport/fileutils_unittest.cc @@ -150,4 +150,24 @@ TEST_F(FileUtilsTest, GetFileSizeNonExistingFile) { ASSERT_EQ(0u, webrtc::test::GetFileSize("non-existing-file.tmp")); } +TEST_F(FileUtilsTest, DirExists) { + // Check that an existing directory is recognized as such. + ASSERT_TRUE(webrtc::test::DirExists(webrtc::test::OutputPath())) + << "Existing directory not found"; + + // Check that a non-existing directory is recognized as such. + std::string directory = "direxists-unittest-non_existing-dir"; + ASSERT_FALSE(webrtc::test::DirExists(directory)) + << "Non-existing directory found"; + + // Check that an existing file is not recognized as an existing directory. + std::string temp_filename = webrtc::test::TempFilename( + webrtc::test::OutputPath(), "TempFilenameTest"); + ASSERT_TRUE(webrtc::test::FileExists(temp_filename)) + << "Couldn't find file: " << temp_filename; + ASSERT_FALSE(webrtc::test::DirExists(temp_filename)) + << "Existing file recognized as existing directory"; + remove(temp_filename.c_str()); +} + } // namespace webrtc