summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/test/testsupport/file_utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/test/testsupport/file_utils.cc')
-rw-r--r--third_party/libwebrtc/test/testsupport/file_utils.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/third_party/libwebrtc/test/testsupport/file_utils.cc b/third_party/libwebrtc/test/testsupport/file_utils.cc
index 47fed9ac05..afabbaad3f 100644
--- a/third_party/libwebrtc/test/testsupport/file_utils.cc
+++ b/third_party/libwebrtc/test/testsupport/file_utils.cc
@@ -36,7 +36,7 @@
#include <sys/stat.h> // To check for directory existence.
#ifndef S_ISDIR // Not defined in stat.h on Windows.
-#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
+#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
#endif
#include <stdio.h>
@@ -54,6 +54,7 @@
#include "absl/strings/string_view.h"
#include "rtc_base/checks.h"
+#include "rtc_base/helpers.h"
#include "rtc_base/string_utils.h"
#include "rtc_base/strings/string_builder.h"
#include "test/testsupport/file_utils_override.h"
@@ -94,6 +95,13 @@ std::string OutputPath() {
return webrtc::test::internal::OutputPath();
}
+std::string OutputPathWithRandomDirectory() {
+ std::string path = webrtc::test::internal::OutputPath();
+ std::string rand_dir = path + rtc::CreateRandomUuid();
+
+ return CreateDir(rand_dir) ? rand_dir + std::string(kPathDelimiter) : path;
+}
+
std::string WorkingDir() {
return webrtc::test::internal::WorkingDir();
}
@@ -229,7 +237,12 @@ std::string ResourcePath(absl::string_view name, absl::string_view extension) {
std::string JoinFilename(absl::string_view dir, absl::string_view name) {
RTC_CHECK(!dir.empty()) << "Special cases not implemented.";
rtc::StringBuilder os;
- os << dir << kPathDelimiter << name;
+ os << dir;
+ // If the directory path already ends with a path delimiter don't append it
+ if (dir.back() != kPathDelimiter.back()) {
+ os << kPathDelimiter;
+ }
+ os << name;
return os.Release();
}