Make file/directory related tests safe for concurrent execution

Providing unique identifiers for files and directories created as part
of unit tests.

Bug: webrtc:15833
Change-Id: If2835c362c47a111aa99b0e3c6ad6a33be061978
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338260
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41704}
This commit is contained in:
Dor Hen 2024-02-08 12:47:54 +02:00 committed by WebRTC LUCI CQ
parent dcd1ce2325
commit 5ba4f2ab58
6 changed files with 13 additions and 4 deletions

View file

@ -375,6 +375,7 @@ if (rtc_include_tests && !build_with_chromium) {
"../rtc_base:checks",
"../rtc_base:macromagic",
"../rtc_base:rtc_base_tests_utils",
"../rtc_base:ssl",
"../rtc_base:stringutils",
"../rtc_base:timeutils",
"../rtc_base/system:arch",

View file

@ -17,6 +17,7 @@
#include <limits>
#include "common_audio/wav_header.h"
#include "rtc_base/helpers.h"
#include "test/gtest.h"
#include "test/testsupport/file_utils.h"
@ -35,7 +36,8 @@ static const float kSamples[] = {0.0, 10.0, 4e4, -1e9};
// Write a tiny WAV file with the C++ interface and verify the result.
TEST(WavWriterTest, MAYBE_CPP) {
const std::string outfile = test::OutputPath() + "wavtest1.wav";
const std::string outfile =
test::OutputPath() + "wavtest1-" + rtc::CreateRandomUuid() + ".wav";
static const size_t kNumSamples = 3;
{
WavWriter w(outfile, 14099, 1);

View file

@ -488,6 +488,7 @@ if (rtc_include_tests && !build_with_chromium) {
"../../rtc_base:race_checker",
"../../rtc_base:rtc_event",
"../../rtc_base:safe_conversions",
"../../rtc_base:ssl",
"../../rtc_base:timeutils",
"../../rtc_base/synchronization:mutex",
"../../system_wrappers",

View file

@ -24,6 +24,7 @@
#include "common_audio/wav_header.h"
#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/checks.h"
#include "rtc_base/helpers.h"
#include "rtc_base/logging.h"
#include "rtc_base/synchronization/mutex.h"
#include "test/gmock.h"
@ -41,7 +42,7 @@ void RunWavTest(const std::vector<int16_t>& input_samples,
const std::string output_filename =
test::OutputPath() + "BoundedWavFileWriterTest_" + test_info->name() +
"_" + std::to_string(std::rand()) + ".wav";
"_" + rtc::CreateRandomUuid() + ".wav";
static const size_t kSamplesPerFrame = 8;
static const int kSampleRate = kSamplesPerFrame * 100;

View file

@ -950,6 +950,7 @@ rtc_library("fileutils_unittests") {
":fileutils",
":test_support",
"../rtc_base:checks",
"../rtc_base:ssl",
]
absl_deps = [
"//third_party/abseil-cpp/absl/strings:strings",

View file

@ -19,6 +19,7 @@
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "rtc_base/checks.h"
#include "rtc_base/helpers.h"
#include "test/gmock.h"
#include "test/gtest.h"
@ -147,7 +148,8 @@ TEST_F(FileUtilsTest, GenerateTempFilename) {
#define MAYBE_CreateDir CreateDir
#endif
TEST_F(FileUtilsTest, MAYBE_CreateDir) {
std::string directory = "fileutils-unittest-empty-dir";
std::string directory = test::OutputPath() + "fileutils-unittest-empty-dir" +
rtc::CreateRandomUuid();
// Make sure it's removed if a previous test has failed:
remove(directory.c_str());
ASSERT_TRUE(webrtc::test::CreateDir(directory));
@ -231,7 +233,8 @@ TEST_F(FileUtilsTest, WriteReadDeleteFilesAndDirs) {
// Create an empty temporary directory for this test.
const std::string temp_directory =
OutputPath() + Path("TempFileUtilsTestReadDirectory/");
OutputPath() +
Path("TempFileUtilsTestReadDirectory" + rtc::CreateRandomUuid() + "/");
CreateDir(temp_directory);
EXPECT_NO_FATAL_FAILURE(CleanDir(temp_directory, &num_deleted_entries));
EXPECT_TRUE(DirExists(temp_directory));