Commit 5e0f7a1c authored by Sean Gilhuly's avatar Sean Gilhuly Committed by Commit Bot

Reland "Add names to tuple-parameterized tests"

This is a reland of 7456a5e0

Use a custom lambda instead of implementing PrintTo(SkBlendMode).

Original change's description:
> Add names to tuple-parameterized tests
>
> Test names can only contain alphanumeric characters, plus underscores.
> testing::PrintToStringParamName() stringifies tuples using characters
> that aren't valid for test names.
>
> Add a similar function which joins each element using underscores. This
> will generate valid names for test parameterization, provided each
> element of the tuple can be written using valid characters.
>
> Bug: 1092945, 1117587
> Change-Id: I868b1d4040a93bdbf763dbb45b94ff15f181dd18
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2376882
> Reviewed-by: kylechar <kylechar@chromium.org>
> Commit-Queue: Sean Gilhuly <sgilhuly@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#803182}

Bug: 1092945, 1117587, 1123758
Change-Id: I4b3614bae62b557ac5da011f0dd5be1cb3256afb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2386388
Commit-Queue: Sean Gilhuly <sgilhuly@chromium.org>
Reviewed-by: default avatarkylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#803631}
parent b2df556a
...@@ -6,9 +6,29 @@ ...@@ -6,9 +6,29 @@
#define CC_TEST_TEST_TYPES_H_ #define CC_TEST_TEST_TYPES_H_
#include <ostream> #include <ostream>
#include <string>
#include "base/strings/string_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cc { namespace cc {
// Joins all elements of a testing::tuple using an underscore. Use as the fourth
// parameter of INSTANTIATE_TEST_SUITE_P() instead of
// testing::PrintToStringParamName() to generate a valid parameter label. Each
// element of the tuple must be printable, and each combination of tuple values
// must produce a unique string.
// Underscores shouldn't be used in test suite names due to a risk of name
// collision, but this doesn't apply to parameterization labels.
struct PrintTupleToStringParamName {
template <class ParamType>
std::string operator()(const testing::TestParamInfo<ParamType>& info) const {
return base::JoinString(
testing::internal::UniversalTersePrintTupleFieldsToStrings(info.param),
"_");
}
};
enum class TestRendererType { enum class TestRendererType {
kGL, kGL,
kSkiaGL, kSkiaGL,
...@@ -35,9 +55,7 @@ struct RasterTestConfig { ...@@ -35,9 +55,7 @@ struct RasterTestConfig {
void PrintTo(TestRendererType type, std::ostream* os); void PrintTo(TestRendererType type, std::ostream* os);
// Joins the |renderer_type| and |raster_type| labels using an underscore // Joins the |renderer_type| and |raster_type| labels using an underscore
// character, resulting in e.g. "Test/SkiaGL_OOP". Underscores shouldn't be used // character, resulting in e.g. "Test/SkiaGL_OOP".
// in test suite names due to a risk of name collision, but this doesn't apply
// to parameterization labels.
void PrintTo(const RasterTestConfig& config, std::ostream* os); void PrintTo(const RasterTestConfig& config, std::ostream* os);
} // namespace cc } // namespace cc
......
...@@ -268,10 +268,21 @@ std::vector<RasterTestConfig> const kTestCases = { ...@@ -268,10 +268,21 @@ std::vector<RasterTestConfig> const kTestCases = {
#endif // defined(ENABLE_CC_VULKAN_TESTS) #endif // defined(ENABLE_CC_VULKAN_TESTS)
}; };
INSTANTIATE_TEST_SUITE_P(B, INSTANTIATE_TEST_SUITE_P(
LayerTreeHostBlendingPixelTest, B,
::testing::Combine(::testing::ValuesIn(kTestCases), LayerTreeHostBlendingPixelTest,
::testing::ValuesIn(kBlendModes))); ::testing::Combine(::testing::ValuesIn(kTestCases),
::testing::ValuesIn(kBlendModes)),
// Print a parameter label for blending tests. Use this instead of
// PrintTupleToStringParamName() because the PrintTo(SkBlendMode)
// implementation wasn't being used on some platforms (crbug.com/1123758).
[](const testing::TestParamInfo<
testing::tuple<RasterTestConfig, SkBlendMode>>& info) -> std::string {
std::stringstream ss;
PrintTo(testing::get<0>(info.param), &ss);
ss << "_" << SkBlendMode_Name(testing::get<1>(info.param));
return ss.str();
});
TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRoot) { TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRoot) {
const int kRootWidth = 2; const int kRootWidth = 2;
......
...@@ -27,6 +27,14 @@ ...@@ -27,6 +27,14 @@
#include "gpu/GLES2/gl2extchromium.h" #include "gpu/GLES2/gl2extchromium.h"
namespace cc { namespace cc {
// CompositorMode is declared in the cc namespace, so this function also needs
// to be in the cc namespace.
void PrintTo(CompositorMode mode, std::ostream* os) {
*os << (mode == CompositorMode::THREADED ? "MultiThreaded"
: "SingleThreaded");
}
namespace { namespace {
auto CombineWithCompositorModes(const std::vector<TestRendererType>& types) { auto CombineWithCompositorModes(const std::vector<TestRendererType>& types) {
...@@ -169,7 +177,8 @@ INSTANTIATE_TEST_SUITE_P(All, ...@@ -169,7 +177,8 @@ INSTANTIATE_TEST_SUITE_P(All,
LayerTreeHostCopyRequestTestMultipleRequests, LayerTreeHostCopyRequestTestMultipleRequests,
CombineWithCompositorModes( CombineWithCompositorModes(
{TestRendererType::kGL, TestRendererType::kSkiaGL, {TestRendererType::kGL, TestRendererType::kSkiaGL,
TestRendererType::kSoftware})); TestRendererType::kSoftware}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestMultipleRequests, Test) { TEST_P(LayerTreeHostCopyRequestTestMultipleRequests, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -204,7 +213,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -204,7 +213,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestMultipleRequestsOutOfOrder, LayerTreeHostCopyRequestTestMultipleRequestsOutOfOrder,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestMultipleRequestsOutOfOrder, Test) { TEST_P(LayerTreeHostCopyRequestTestMultipleRequestsOutOfOrder, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -263,7 +273,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -263,7 +273,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestCompletionCausesCommit, LayerTreeHostCopyRequestCompletionCausesCommit,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestCompletionCausesCommit, Test) { TEST_P(LayerTreeHostCopyRequestCompletionCausesCommit, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -370,7 +381,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -370,7 +381,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestLayerDestroyed, LayerTreeHostCopyRequestTestLayerDestroyed,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestLayerDestroyed, Test) { TEST_P(LayerTreeHostCopyRequestTestLayerDestroyed, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -476,7 +488,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -476,7 +488,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestInHiddenSubtree, LayerTreeHostCopyRequestTestInHiddenSubtree,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestInHiddenSubtree, Test) { TEST_P(LayerTreeHostCopyRequestTestInHiddenSubtree, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -597,7 +610,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -597,7 +610,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostTestHiddenSurfaceNotAllocatedForSubtreeCopyRequest, LayerTreeHostTestHiddenSurfaceNotAllocatedForSubtreeCopyRequest,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostTestHiddenSurfaceNotAllocatedForSubtreeCopyRequest, Test) { TEST_P(LayerTreeHostTestHiddenSurfaceNotAllocatedForSubtreeCopyRequest, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -653,7 +667,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -653,7 +667,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestClippedOut, LayerTreeHostCopyRequestTestClippedOut,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestClippedOut, Test) { TEST_P(LayerTreeHostCopyRequestTestClippedOut, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -713,7 +728,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -713,7 +728,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestScaledLayer, LayerTreeHostCopyRequestTestScaledLayer,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestScaledLayer, Test) { TEST_P(LayerTreeHostCopyRequestTestScaledLayer, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -808,7 +824,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -808,7 +824,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostTestAsyncTwoReadbacksWithoutDraw, LayerTreeHostTestAsyncTwoReadbacksWithoutDraw,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostTestAsyncTwoReadbacksWithoutDraw, Test) { TEST_P(LayerTreeHostTestAsyncTwoReadbacksWithoutDraw, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -951,7 +968,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -951,7 +968,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestDeleteSharedImage, LayerTreeHostCopyRequestTestDeleteSharedImage,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestDeleteSharedImage, Test) { TEST_P(LayerTreeHostCopyRequestTestDeleteSharedImage, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -1094,7 +1112,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -1094,7 +1112,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestCreatesSharedImage, LayerTreeHostCopyRequestTestCreatesSharedImage,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestCreatesSharedImage, Test) { TEST_P(LayerTreeHostCopyRequestTestCreatesSharedImage, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -1182,7 +1201,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -1182,7 +1201,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestDestroyBeforeCopy, LayerTreeHostCopyRequestTestDestroyBeforeCopy,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestDestroyBeforeCopy, Test) { TEST_P(LayerTreeHostCopyRequestTestDestroyBeforeCopy, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -1265,7 +1285,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -1265,7 +1285,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestShutdownBeforeCopy, LayerTreeHostCopyRequestTestShutdownBeforeCopy,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestShutdownBeforeCopy, Test) { TEST_P(LayerTreeHostCopyRequestTestShutdownBeforeCopy, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
...@@ -1397,7 +1418,8 @@ INSTANTIATE_TEST_SUITE_P( ...@@ -1397,7 +1418,8 @@ INSTANTIATE_TEST_SUITE_P(
All, All,
LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest, LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest,
CombineWithCompositorModes({TestRendererType::kGL, CombineWithCompositorModes({TestRendererType::kGL,
TestRendererType::kSkiaGL})); TestRendererType::kSkiaGL}),
PrintTupleToStringParamName());
TEST_P(LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest, Test) { TEST_P(LayerTreeHostCopyRequestTestMultipleDrawsHiddenCopyRequest, Test) {
RunTest(compositor_mode()); RunTest(compositor_mode());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment