Bug 1963029 - retry checking for file's existence in a test r=jari

Differential Revision: https://phabricator.services.mozilla.com/D249504
This commit is contained in:
Greg Stoll
2025-05-15 11:09:10 +00:00
committed by gstoll@mozilla.com
parent 0cbc6ba1c2
commit 7bcf219968

View File

@@ -5,12 +5,15 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include <thread>
#include "mozilla/dom/BlobImpl.h" #include "mozilla/dom/BlobImpl.h"
#include "mozilla/dom/Directory.h" #include "mozilla/dom/Directory.h"
#include "mozilla/dom/File.h" #include "mozilla/dom/File.h"
#include "mozilla/dom/GetFilesHelper.h" #include "mozilla/dom/GetFilesHelper.h"
#include "mozilla/dom/UnionTypes.h" #include "mozilla/dom/UnionTypes.h"
#include "mozilla/ErrorResult.h" #include "mozilla/ErrorResult.h"
#include "mozilla/gtest/MozAssertions.h"
#include "mozilla/media/MediaUtils.h" #include "mozilla/media/MediaUtils.h"
#include "mozilla/SpinEventLoopUntil.h" #include "mozilla/SpinEventLoopUntil.h"
#include "nsIFile.h" #include "nsIFile.h"
@@ -33,9 +36,16 @@ nsCOMPtr<nsIFile> MakeFileFromPathSegments(
nsresult AppendFileOrDirectory(nsTArray<OwningFileOrDirectory>& aDirectories, nsresult AppendFileOrDirectory(nsTArray<OwningFileOrDirectory>& aDirectories,
const nsTArray<const char*>& aPathSegments) { const nsTArray<const char*>& aPathSegments) {
bool exists = false;
int retryCount = 5;
nsCOMPtr<nsIFile> file = MakeFileFromPathSegments(aPathSegments); nsCOMPtr<nsIFile> file = MakeFileFromPathSegments(aPathSegments);
bool exists; while (retryCount--) {
MOZ_ALWAYS_SUCCEEDS(file->Exists(&exists)); if (NS_SUCCEEDED(file->Exists(&exists))) {
break;
}
// May require retrying (bug 1963029)
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
NS_ENSURE_TRUE(exists, NS_ERROR_FILE_NOT_FOUND); NS_ENSURE_TRUE(exists, NS_ERROR_FILE_NOT_FOUND);
bool isDir; bool isDir;
MOZ_ALWAYS_SUCCEEDS(file->IsDirectory(&isDir)); MOZ_ALWAYS_SUCCEEDS(file->IsDirectory(&isDir));
@@ -154,7 +164,7 @@ void ExpectGetFilesHelperResponse(
TEST(GetFilesHelper, TestSingleDirectory) TEST(GetFilesHelper, TestSingleDirectory)
{ {
nsTArray<OwningFileOrDirectory> directories; nsTArray<OwningFileOrDirectory> directories;
MOZ_ALWAYS_SUCCEEDS( ASSERT_NS_SUCCEEDED(
AppendFileOrDirectory(directories, {"getfiles", "inner2"})); AppendFileOrDirectory(directories, {"getfiles", "inner2"}));
ErrorResult error; ErrorResult error;
@@ -171,7 +181,7 @@ TEST(GetFilesHelper, TestSingleDirectory)
TEST(GetFilesHelper, TestSingleNestedDirectory) TEST(GetFilesHelper, TestSingleNestedDirectory)
{ {
nsTArray<OwningFileOrDirectory> directories; nsTArray<OwningFileOrDirectory> directories;
MOZ_ALWAYS_SUCCEEDS( ASSERT_NS_SUCCEEDED(
AppendFileOrDirectory(directories, {"getfiles", "inner1"})); AppendFileOrDirectory(directories, {"getfiles", "inner1"}));
ErrorResult error; ErrorResult error;
@@ -190,7 +200,7 @@ TEST(GetFilesHelper, TestSingleNestedDirectory)
TEST(GetFilesHelper, TestSingleNestedDirectoryNoRecursion) TEST(GetFilesHelper, TestSingleNestedDirectoryNoRecursion)
{ {
nsTArray<OwningFileOrDirectory> directories; nsTArray<OwningFileOrDirectory> directories;
MOZ_ALWAYS_SUCCEEDS( ASSERT_NS_SUCCEEDED(
AppendFileOrDirectory(directories, {"getfiles", "inner1"})); AppendFileOrDirectory(directories, {"getfiles", "inner1"}));
ErrorResult error; ErrorResult error;
@@ -207,7 +217,7 @@ TEST(GetFilesHelper, TestSingleNestedDirectoryNoRecursion)
TEST(GetFilesHelper, TestSingleDirectoryWithMultipleNestedChildren) TEST(GetFilesHelper, TestSingleDirectoryWithMultipleNestedChildren)
{ {
nsTArray<OwningFileOrDirectory> directories; nsTArray<OwningFileOrDirectory> directories;
MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory(directories, {"getfiles"})); ASSERT_NS_SUCCEEDED(AppendFileOrDirectory(directories, {"getfiles"}));
ErrorResult error; ErrorResult error;
RefPtr<GetFilesHelper> helper = RefPtr<GetFilesHelper> helper =
@@ -229,7 +239,7 @@ TEST(GetFilesHelper, TestSingleDirectoryWithMultipleNestedChildren)
TEST(GetFilesHelper, TestSingleFile) TEST(GetFilesHelper, TestSingleFile)
{ {
nsTArray<OwningFileOrDirectory> directories; nsTArray<OwningFileOrDirectory> directories;
MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory( ASSERT_NS_SUCCEEDED(AppendFileOrDirectory(
directories, {"getfiles", "inner1", "fileinner1.txt"})); directories, {"getfiles", "inner1", "fileinner1.txt"}));
ErrorResult error; ErrorResult error;
@@ -246,9 +256,9 @@ TEST(GetFilesHelper, TestSingleFile)
TEST(GetFilesHelper, TestMultipleFiles) TEST(GetFilesHelper, TestMultipleFiles)
{ {
nsTArray<OwningFileOrDirectory> directories; nsTArray<OwningFileOrDirectory> directories;
MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory( ASSERT_NS_SUCCEEDED(AppendFileOrDirectory(
directories, {"getfiles", "inner1", "fileinner1.txt"})); directories, {"getfiles", "inner1", "fileinner1.txt"}));
MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory( ASSERT_NS_SUCCEEDED(AppendFileOrDirectory(
directories, {"getfiles", "inner2", "fileinner2.txt"})); directories, {"getfiles", "inner2", "fileinner2.txt"}));
ErrorResult error; ErrorResult error;
@@ -269,9 +279,9 @@ TEST(GetFilesHelper, TestMultipleFiles)
TEST(GetFilesHelper, TestMultipleDirectories) TEST(GetFilesHelper, TestMultipleDirectories)
{ {
nsTArray<OwningFileOrDirectory> directories; nsTArray<OwningFileOrDirectory> directories;
MOZ_ALWAYS_SUCCEEDS( ASSERT_NS_SUCCEEDED(
AppendFileOrDirectory(directories, {"getfiles", "inner1"})); AppendFileOrDirectory(directories, {"getfiles", "inner1"}));
MOZ_ALWAYS_SUCCEEDS( ASSERT_NS_SUCCEEDED(
AppendFileOrDirectory(directories, {"getfiles", "inner2"})); AppendFileOrDirectory(directories, {"getfiles", "inner2"}));
ErrorResult error; ErrorResult error;