Bug 1940115 - Update googletest to 7d76a231b0e29caf86e68d1df858308cd53b2a66 r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D233282
This commit is contained in:
45
third_party/googletest/MODULE.bazel
vendored
45
third_party/googletest/MODULE.bazel
vendored
@@ -39,29 +39,38 @@ module(
|
|||||||
# Only direct dependencies need to be listed below.
|
# Only direct dependencies need to be listed below.
|
||||||
# Please keep the versions in sync with the versions in the WORKSPACE file.
|
# Please keep the versions in sync with the versions in the WORKSPACE file.
|
||||||
|
|
||||||
bazel_dep(name = "abseil-cpp",
|
bazel_dep(
|
||||||
version = "20240116.2")
|
name = "abseil-cpp",
|
||||||
|
version = "20240116.2",
|
||||||
|
)
|
||||||
|
bazel_dep(
|
||||||
|
name = "platforms",
|
||||||
|
version = "0.0.10",
|
||||||
|
)
|
||||||
|
bazel_dep(
|
||||||
|
name = "re2",
|
||||||
|
version = "2024-07-02",
|
||||||
|
)
|
||||||
|
|
||||||
bazel_dep(name = "platforms",
|
bazel_dep(
|
||||||
version = "0.0.10")
|
name = "rules_python",
|
||||||
|
version = "0.34.0",
|
||||||
bazel_dep(name = "re2",
|
dev_dependency = True,
|
||||||
version = "2024-07-02")
|
)
|
||||||
|
|
||||||
bazel_dep(name = "rules_python",
|
|
||||||
version = "0.34.0",
|
|
||||||
dev_dependency = True)
|
|
||||||
|
|
||||||
# https://rules-python.readthedocs.io/en/stable/toolchains.html#library-modules-with-dev-only-python-usage
|
# https://rules-python.readthedocs.io/en/stable/toolchains.html#library-modules-with-dev-only-python-usage
|
||||||
python = use_extension(
|
python = use_extension(
|
||||||
"@rules_python//python/extensions:python.bzl",
|
"@rules_python//python/extensions:python.bzl",
|
||||||
"python",
|
"python",
|
||||||
dev_dependency = True
|
dev_dependency = True,
|
||||||
|
)
|
||||||
|
python.toolchain(
|
||||||
|
ignore_root_user_error = True,
|
||||||
|
is_default = True,
|
||||||
|
python_version = "3.12",
|
||||||
)
|
)
|
||||||
|
|
||||||
python.toolchain(python_version = "3.12",
|
# See fake_fuchsia_sdk.bzl for instructions on how to override this with a real SDK, if needed.
|
||||||
is_default = True,
|
fuchsia_sdk = use_extension("//:fake_fuchsia_sdk.bzl", "fuchsia_sdk")
|
||||||
ignore_root_user_error = True)
|
fuchsia_sdk.create_fake()
|
||||||
|
use_repo(fuchsia_sdk, "fuchsia_sdk")
|
||||||
fake_fuchsia_sdk = use_repo_rule("//:fake_fuchsia_sdk.bzl", "fake_fuchsia_sdk")
|
|
||||||
fake_fuchsia_sdk(name = "fuchsia_sdk")
|
|
||||||
|
|||||||
36
third_party/googletest/fake_fuchsia_sdk.bzl
vendored
36
third_party/googletest/fake_fuchsia_sdk.bzl
vendored
@@ -1,10 +1,20 @@
|
|||||||
"""Provides a fake @fuchsia_sdk implementation that's used when the real one isn't available.
|
"""Provides a fake @fuchsia_sdk implementation that's used when the real one isn't available.
|
||||||
|
|
||||||
This is needed since bazel queries on targets that depend on //:gtest (eg:
|
GoogleTest can be used with the [Fuchsia](https://fuchsia.dev/) SDK. However,
|
||||||
`bazel query "deps(set(//googletest/test:gtest_all_test))"`) will fail if @fuchsia_sdk is not
|
because the Fuchsia SDK does not yet support bzlmod, GoogleTest's `MODULE.bazel`
|
||||||
defined when bazel is evaluating the transitive closure of the query target.
|
file by default provides a "fake" Fuchsia SDK.
|
||||||
|
|
||||||
See https://github.com/google/googletest/issues/4472.
|
To override this and use the real Fuchsia SDK, you can add the following to your
|
||||||
|
project's `MODULE.bazel` file:
|
||||||
|
|
||||||
|
fake_fuchsia_sdk_extension =
|
||||||
|
use_extension("@com_google_googletest//:fake_fuchsia_sdk.bzl", "fuchsia_sdk")
|
||||||
|
override_repo(fake_fuchsia_sdk_extension, "fuchsia_sdk")
|
||||||
|
|
||||||
|
NOTE: The `override_repo` built-in is only available in Bazel 8.0 and higher.
|
||||||
|
|
||||||
|
See https://github.com/google/googletest/issues/4472 for more details of why the
|
||||||
|
fake Fuchsia SDK is needed.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _fake_fuchsia_sdk_impl(repo_ctx):
|
def _fake_fuchsia_sdk_impl(repo_ctx):
|
||||||
@@ -31,3 +41,21 @@ fake_fuchsia_sdk = repository_rule(
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
_create_fake = tag_class()
|
||||||
|
|
||||||
|
def _fuchsia_sdk_impl(module_ctx):
|
||||||
|
create_fake_sdk = False
|
||||||
|
for mod in module_ctx.modules:
|
||||||
|
for _ in mod.tags.create_fake:
|
||||||
|
create_fake_sdk = True
|
||||||
|
|
||||||
|
if create_fake_sdk:
|
||||||
|
fake_fuchsia_sdk(name = "fuchsia_sdk")
|
||||||
|
|
||||||
|
return module_ctx.extension_metadata(reproducible = True)
|
||||||
|
|
||||||
|
fuchsia_sdk = module_extension(
|
||||||
|
implementation = _fuchsia_sdk_impl,
|
||||||
|
tag_classes = {"create_fake": _create_fake},
|
||||||
|
)
|
||||||
|
|||||||
@@ -126,6 +126,10 @@
|
|||||||
#include <span> // NOLINT
|
#include <span> // NOLINT
|
||||||
#endif // GTEST_INTERNAL_HAS_STD_SPAN
|
#endif // GTEST_INTERNAL_HAS_STD_SPAN
|
||||||
|
|
||||||
|
#if GTEST_INTERNAL_HAS_COMPARE_LIB
|
||||||
|
#include <compare> // NOLINT
|
||||||
|
#endif // GTEST_INTERNAL_HAS_COMPARE_LIB
|
||||||
|
|
||||||
namespace testing {
|
namespace testing {
|
||||||
|
|
||||||
// Definitions in the internal* namespaces are subject to change without notice.
|
// Definitions in the internal* namespaces are subject to change without notice.
|
||||||
@@ -782,6 +786,41 @@ void PrintTo(const std::shared_ptr<T>& ptr, std::ostream* os) {
|
|||||||
(PrintSmartPointer<T>)(ptr, os, 0);
|
(PrintSmartPointer<T>)(ptr, os, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if GTEST_INTERNAL_HAS_COMPARE_LIB
|
||||||
|
template <typename T>
|
||||||
|
void PrintOrderingHelper(T ordering, std::ostream* os) {
|
||||||
|
if (ordering == T::less) {
|
||||||
|
*os << "(less)";
|
||||||
|
} else if (ordering == T::greater) {
|
||||||
|
*os << "(greater)";
|
||||||
|
} else if (ordering == T::equivalent) {
|
||||||
|
*os << "(equivalent)";
|
||||||
|
} else {
|
||||||
|
*os << "(unknown ordering)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void PrintTo(std::strong_ordering ordering, std::ostream* os) {
|
||||||
|
if (ordering == std::strong_ordering::equal) {
|
||||||
|
*os << "(equal)";
|
||||||
|
} else {
|
||||||
|
PrintOrderingHelper(ordering, os);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void PrintTo(std::partial_ordering ordering, std::ostream* os) {
|
||||||
|
if (ordering == std::partial_ordering::unordered) {
|
||||||
|
*os << "(unordered)";
|
||||||
|
} else {
|
||||||
|
PrintOrderingHelper(ordering, os);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void PrintTo(std::weak_ordering ordering, std::ostream* os) {
|
||||||
|
PrintOrderingHelper(ordering, os);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Helper function for printing a tuple. T must be instantiated with
|
// Helper function for printing a tuple. T must be instantiated with
|
||||||
// a tuple type.
|
// a tuple type.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
|||||||
@@ -73,8 +73,6 @@
|
|||||||
#include "gtest/internal/gtest-internal.h"
|
#include "gtest/internal/gtest-internal.h"
|
||||||
#include "gtest/internal/gtest-string.h"
|
#include "gtest/internal/gtest-string.h"
|
||||||
|
|
||||||
#include "mozilla/Attributes.h"
|
|
||||||
|
|
||||||
GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
|
GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
|
||||||
/* class A needs to have dll-interface to be used by clients of class B */)
|
/* class A needs to have dll-interface to be used by clients of class B */)
|
||||||
|
|
||||||
@@ -327,7 +325,7 @@ class GTEST_API_ Test {
|
|||||||
//
|
//
|
||||||
// DO NOT OVERRIDE THIS FUNCTION DIRECTLY IN A USER PROGRAM.
|
// DO NOT OVERRIDE THIS FUNCTION DIRECTLY IN A USER PROGRAM.
|
||||||
// Instead, use the TEST or TEST_F macro.
|
// Instead, use the TEST or TEST_F macro.
|
||||||
MOZ_CAN_RUN_SCRIPT virtual void TestBody() = 0;
|
virtual void TestBody() = 0;
|
||||||
|
|
||||||
// Sets up, executes, and tears down the test.
|
// Sets up, executes, and tears down the test.
|
||||||
void Run();
|
void Run();
|
||||||
|
|||||||
@@ -2533,4 +2533,12 @@ using Variant = ::std::variant<T...>;
|
|||||||
#define GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL 1
|
#define GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (defined(__cpp_lib_three_way_comparison) || \
|
||||||
|
(GTEST_INTERNAL_HAS_INCLUDE(<compare>) && \
|
||||||
|
GTEST_INTERNAL_CPLUSPLUS_LANG >= 201907L))
|
||||||
|
#define GTEST_INTERNAL_HAS_COMPARE_LIB 1
|
||||||
|
#else
|
||||||
|
#define GTEST_INTERNAL_HAS_COMPARE_LIB 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
|
#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
|
||||||
|
|||||||
50
third_party/googletest/googletest/src/gtest.cc
vendored
50
third_party/googletest/googletest/src/gtest.cc
vendored
@@ -3989,6 +3989,12 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener {
|
|||||||
static void OutputXmlTestSuiteForTestResult(::std::ostream* stream,
|
static void OutputXmlTestSuiteForTestResult(::std::ostream* stream,
|
||||||
const TestResult& result);
|
const TestResult& result);
|
||||||
|
|
||||||
|
// Streams a test case XML stanza containing the given test result.
|
||||||
|
//
|
||||||
|
// Requires: result.Failed()
|
||||||
|
static void OutputXmlTestCaseForTestResult(::std::ostream* stream,
|
||||||
|
const TestResult& result);
|
||||||
|
|
||||||
// Streams an XML representation of a TestResult object.
|
// Streams an XML representation of a TestResult object.
|
||||||
static void OutputXmlTestResult(::std::ostream* stream,
|
static void OutputXmlTestResult(::std::ostream* stream,
|
||||||
const TestResult& result);
|
const TestResult& result);
|
||||||
@@ -4236,6 +4242,15 @@ void XmlUnitTestResultPrinter::OutputXmlTestSuiteForTestResult(
|
|||||||
FormatEpochTimeInMillisAsIso8601(result.start_timestamp()));
|
FormatEpochTimeInMillisAsIso8601(result.start_timestamp()));
|
||||||
*stream << ">";
|
*stream << ">";
|
||||||
|
|
||||||
|
OutputXmlTestCaseForTestResult(stream, result);
|
||||||
|
|
||||||
|
// Complete the test suite.
|
||||||
|
*stream << " </testsuite>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Streams a test case XML stanza containing the given test result.
|
||||||
|
void XmlUnitTestResultPrinter::OutputXmlTestCaseForTestResult(
|
||||||
|
::std::ostream* stream, const TestResult& result) {
|
||||||
// Output the boilerplate for a minimal test case with a single test.
|
// Output the boilerplate for a minimal test case with a single test.
|
||||||
*stream << " <testcase";
|
*stream << " <testcase";
|
||||||
OutputXmlAttribute(stream, "testcase", "name", "");
|
OutputXmlAttribute(stream, "testcase", "name", "");
|
||||||
@@ -4250,9 +4265,6 @@ void XmlUnitTestResultPrinter::OutputXmlTestSuiteForTestResult(
|
|||||||
|
|
||||||
// Output the actual test result.
|
// Output the actual test result.
|
||||||
OutputXmlTestResult(stream, result);
|
OutputXmlTestResult(stream, result);
|
||||||
|
|
||||||
// Complete the test suite.
|
|
||||||
*stream << " </testsuite>\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prints an XML representation of a TestInfo object.
|
// Prints an XML representation of a TestInfo object.
|
||||||
@@ -4379,6 +4391,10 @@ void XmlUnitTestResultPrinter::PrintXmlTestSuite(std::ostream* stream,
|
|||||||
if (test_suite.GetTestInfo(i)->is_reportable())
|
if (test_suite.GetTestInfo(i)->is_reportable())
|
||||||
OutputXmlTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
|
OutputXmlTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
|
||||||
}
|
}
|
||||||
|
if (test_suite.ad_hoc_test_result().Failed()) {
|
||||||
|
OutputXmlTestCaseForTestResult(stream, test_suite.ad_hoc_test_result());
|
||||||
|
}
|
||||||
|
|
||||||
*stream << " </" << kTestsuite << ">\n";
|
*stream << " </" << kTestsuite << ">\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4518,6 +4534,12 @@ class JsonUnitTestResultPrinter : public EmptyTestEventListener {
|
|||||||
static void OutputJsonTestSuiteForTestResult(::std::ostream* stream,
|
static void OutputJsonTestSuiteForTestResult(::std::ostream* stream,
|
||||||
const TestResult& result);
|
const TestResult& result);
|
||||||
|
|
||||||
|
// Streams a test case JSON stanza containing the given test result.
|
||||||
|
//
|
||||||
|
// Requires: result.Failed()
|
||||||
|
static void OutputJsonTestCaseForTestResult(::std::ostream* stream,
|
||||||
|
const TestResult& result);
|
||||||
|
|
||||||
// Streams a JSON representation of a TestResult object.
|
// Streams a JSON representation of a TestResult object.
|
||||||
static void OutputJsonTestResult(::std::ostream* stream,
|
static void OutputJsonTestResult(::std::ostream* stream,
|
||||||
const TestResult& result);
|
const TestResult& result);
|
||||||
@@ -4688,6 +4710,15 @@ void JsonUnitTestResultPrinter::OutputJsonTestSuiteForTestResult(
|
|||||||
}
|
}
|
||||||
*stream << Indent(6) << "\"testsuite\": [\n";
|
*stream << Indent(6) << "\"testsuite\": [\n";
|
||||||
|
|
||||||
|
OutputJsonTestCaseForTestResult(stream, result);
|
||||||
|
|
||||||
|
// Finish the test suite.
|
||||||
|
*stream << "\n" << Indent(6) << "]\n" << Indent(4) << "}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Streams a test case JSON stanza containing the given test result.
|
||||||
|
void JsonUnitTestResultPrinter::OutputJsonTestCaseForTestResult(
|
||||||
|
::std::ostream* stream, const TestResult& result) {
|
||||||
// Output the boilerplate for a new test case.
|
// Output the boilerplate for a new test case.
|
||||||
*stream << Indent(8) << "{\n";
|
*stream << Indent(8) << "{\n";
|
||||||
OutputJsonKey(stream, "testcase", "name", "", Indent(10));
|
OutputJsonKey(stream, "testcase", "name", "", Indent(10));
|
||||||
@@ -4704,9 +4735,6 @@ void JsonUnitTestResultPrinter::OutputJsonTestSuiteForTestResult(
|
|||||||
|
|
||||||
// Output the actual test result.
|
// Output the actual test result.
|
||||||
OutputJsonTestResult(stream, result);
|
OutputJsonTestResult(stream, result);
|
||||||
|
|
||||||
// Finish the test suite.
|
|
||||||
*stream << "\n" << Indent(6) << "]\n" << Indent(4) << "}";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prints a JSON representation of a TestInfo object.
|
// Prints a JSON representation of a TestInfo object.
|
||||||
@@ -4851,6 +4879,16 @@ void JsonUnitTestResultPrinter::PrintJsonTestSuite(
|
|||||||
OutputJsonTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
|
OutputJsonTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If there was a failure in the test suite setup or teardown include that in
|
||||||
|
// the output.
|
||||||
|
if (test_suite.ad_hoc_test_result().Failed()) {
|
||||||
|
if (comma) {
|
||||||
|
*stream << ",\n";
|
||||||
|
}
|
||||||
|
OutputJsonTestCaseForTestResult(stream, test_suite.ad_hoc_test_result());
|
||||||
|
}
|
||||||
|
|
||||||
*stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
|
*stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
4
third_party/googletest/moz.yaml
vendored
4
third_party/googletest/moz.yaml
vendored
@@ -10,9 +10,9 @@ origin:
|
|||||||
|
|
||||||
url: https://google.github.io/googletest/
|
url: https://google.github.io/googletest/
|
||||||
|
|
||||||
release: 35d0c365609296fa4730d62057c487e3cfa030ff (2024-11-20T17:37:33Z).
|
release: 7d76a231b0e29caf86e68d1df858308cd53b2a66 (2024-12-26T23:30:52Z).
|
||||||
|
|
||||||
revision: 35d0c365609296fa4730d62057c487e3cfa030ff
|
revision: 7d76a231b0e29caf86e68d1df858308cd53b2a66
|
||||||
|
|
||||||
license: BSD-3-Clause
|
license: BSD-3-Clause
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
|
|||||||
Reference in New Issue
Block a user