diff --git a/dom/filesystem/tests/gtest/TestGetFilesHelper.cpp b/dom/filesystem/tests/gtest/TestGetFilesHelper.cpp index 92765f35a5e4..899825dde9c6 100644 --- a/dom/filesystem/tests/gtest/TestGetFilesHelper.cpp +++ b/dom/filesystem/tests/gtest/TestGetFilesHelper.cpp @@ -5,12 +5,15 @@ #include "gtest/gtest.h" +#include + #include "mozilla/dom/BlobImpl.h" #include "mozilla/dom/Directory.h" #include "mozilla/dom/File.h" #include "mozilla/dom/GetFilesHelper.h" #include "mozilla/dom/UnionTypes.h" #include "mozilla/ErrorResult.h" +#include "mozilla/gtest/MozAssertions.h" #include "mozilla/media/MediaUtils.h" #include "mozilla/SpinEventLoopUntil.h" #include "nsIFile.h" @@ -33,9 +36,16 @@ nsCOMPtr MakeFileFromPathSegments( nsresult AppendFileOrDirectory(nsTArray& aDirectories, const nsTArray& aPathSegments) { + bool exists = false; + int retryCount = 5; nsCOMPtr file = MakeFileFromPathSegments(aPathSegments); - bool exists; - MOZ_ALWAYS_SUCCEEDS(file->Exists(&exists)); + while (retryCount--) { + 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); bool isDir; MOZ_ALWAYS_SUCCEEDS(file->IsDirectory(&isDir)); @@ -154,7 +164,7 @@ void ExpectGetFilesHelperResponse( TEST(GetFilesHelper, TestSingleDirectory) { nsTArray directories; - MOZ_ALWAYS_SUCCEEDS( + ASSERT_NS_SUCCEEDED( AppendFileOrDirectory(directories, {"getfiles", "inner2"})); ErrorResult error; @@ -171,7 +181,7 @@ TEST(GetFilesHelper, TestSingleDirectory) TEST(GetFilesHelper, TestSingleNestedDirectory) { nsTArray directories; - MOZ_ALWAYS_SUCCEEDS( + ASSERT_NS_SUCCEEDED( AppendFileOrDirectory(directories, {"getfiles", "inner1"})); ErrorResult error; @@ -190,7 +200,7 @@ TEST(GetFilesHelper, TestSingleNestedDirectory) TEST(GetFilesHelper, TestSingleNestedDirectoryNoRecursion) { nsTArray directories; - MOZ_ALWAYS_SUCCEEDS( + ASSERT_NS_SUCCEEDED( AppendFileOrDirectory(directories, {"getfiles", "inner1"})); ErrorResult error; @@ -207,7 +217,7 @@ TEST(GetFilesHelper, TestSingleNestedDirectoryNoRecursion) TEST(GetFilesHelper, TestSingleDirectoryWithMultipleNestedChildren) { nsTArray directories; - MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory(directories, {"getfiles"})); + ASSERT_NS_SUCCEEDED(AppendFileOrDirectory(directories, {"getfiles"})); ErrorResult error; RefPtr helper = @@ -229,7 +239,7 @@ TEST(GetFilesHelper, TestSingleDirectoryWithMultipleNestedChildren) TEST(GetFilesHelper, TestSingleFile) { nsTArray directories; - MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory( + ASSERT_NS_SUCCEEDED(AppendFileOrDirectory( directories, {"getfiles", "inner1", "fileinner1.txt"})); ErrorResult error; @@ -246,9 +256,9 @@ TEST(GetFilesHelper, TestSingleFile) TEST(GetFilesHelper, TestMultipleFiles) { nsTArray directories; - MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory( + ASSERT_NS_SUCCEEDED(AppendFileOrDirectory( directories, {"getfiles", "inner1", "fileinner1.txt"})); - MOZ_ALWAYS_SUCCEEDS(AppendFileOrDirectory( + ASSERT_NS_SUCCEEDED(AppendFileOrDirectory( directories, {"getfiles", "inner2", "fileinner2.txt"})); ErrorResult error; @@ -269,9 +279,9 @@ TEST(GetFilesHelper, TestMultipleFiles) TEST(GetFilesHelper, TestMultipleDirectories) { nsTArray directories; - MOZ_ALWAYS_SUCCEEDS( + ASSERT_NS_SUCCEEDED( AppendFileOrDirectory(directories, {"getfiles", "inner1"})); - MOZ_ALWAYS_SUCCEEDS( + ASSERT_NS_SUCCEEDED( AppendFileOrDirectory(directories, {"getfiles", "inner2"})); ErrorResult error;