From 37aebd0f00316b25e253324245a6cdb863b9b8c8 Mon Sep 17 00:00:00 2001 From: jsantiago-eProsima <90755661+jsantiago-eProsima@users.noreply.github.com> Date: Fri, 18 Feb 2022 08:49:10 +0100 Subject: [PATCH] Added PrintTo function for null_type (#2462) * Added workaround for GCC's incorrect GTest handling of null_types Signed-off-by: Javier Santiago * Added GTest printer for dds::core::null_type Signed-off-by: Javier Santiago (cherry picked from commit 53ac0123a350d8b03356d5e055bf9bde4c612682) --- test/unittest/common/GTestPrinters.hpp | 43 +++++++++++++++++++ .../dds/participant/ParticipantTests.cpp | 1 + 2 files changed, 44 insertions(+) create mode 100644 test/unittest/common/GTestPrinters.hpp diff --git a/test/unittest/common/GTestPrinters.hpp b/test/unittest/common/GTestPrinters.hpp new file mode 100644 index 00000000000..48298803e00 --- /dev/null +++ b/test/unittest/common/GTestPrinters.hpp @@ -0,0 +1,43 @@ +// Copyright 2022 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @file GTestPrinters.hpp + * + */ + +#ifndef GTESTPRINTERS_HPP +#define GTESTPRINTERS_HPP + +#include + +/** + * Workaround for GCC to behave properly and let Google Test know what to do with null_types + * when printing an ASSERT/EXPECT result. Documentation can be found here: + * https://github.com/google/googletest/blob/main/googletest/include/gtest/gtest-printers.h + * + */ +namespace dds { +namespace core { +void PrintTo( + const null_type, + std::ostream* os) +{ + *os << "::dds::core::null_type"; +} + +} // namespace core +} // namespace dds + +#endif // GTESTPRINTERS_HPP diff --git a/test/unittest/dds/participant/ParticipantTests.cpp b/test/unittest/dds/participant/ParticipantTests.cpp index 31eef1d3ad9..ec4f1920b74 100644 --- a/test/unittest/dds/participant/ParticipantTests.cpp +++ b/test/unittest/dds/participant/ParticipantTests.cpp @@ -60,6 +60,7 @@ #include #include +#include "../../common/GTestPrinters.hpp" #include "../../logging/mock/MockConsumer.h" namespace eprosima {