From b2dd30b753ae810cc3566f6e1ebb2b0dd5b5e4d8 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Fri, 5 Mar 2021 15:50:39 +0800 Subject: [PATCH 1/3] Fix the apache-rat check --- **Motivation** PR #9072 introduces the gtest file but does not exclude for apache-rat check. So that causes the apache-rat check to fail. --- pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pom.xml b/pom.xml index 0e7e935a1f6c5..eaf681d4f34b9 100644 --- a/pom.xml +++ b/pom.xml @@ -1350,6 +1350,9 @@ flexible messaging model and an intuitive client API. pulsar-client-cpp/lib/checksum/crc32c_sw.cc + + pulsar-client-cpp/include/gtest/gtest_prod.h + pulsar-client-cpp/generated/** From af40266719a2df80d7a24e9f22f349a9d4bbcd6c Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Fri, 5 Mar 2021 17:15:07 +0800 Subject: [PATCH 2/3] Move the test to the another file --- pom.xml | 3 - pulsar-client-cpp/include/gtest/gtest_prod.h | 60 -------------------- pulsar-client-cpp/lib/TestUtil.h | 10 ++++ 3 files changed, 10 insertions(+), 63 deletions(-) delete mode 100644 pulsar-client-cpp/include/gtest/gtest_prod.h create mode 100644 pulsar-client-cpp/lib/TestUtil.h diff --git a/pom.xml b/pom.xml index eaf681d4f34b9..0e7e935a1f6c5 100644 --- a/pom.xml +++ b/pom.xml @@ -1350,9 +1350,6 @@ flexible messaging model and an intuitive client API. pulsar-client-cpp/lib/checksum/crc32c_sw.cc - - pulsar-client-cpp/include/gtest/gtest_prod.h - pulsar-client-cpp/generated/** diff --git a/pulsar-client-cpp/include/gtest/gtest_prod.h b/pulsar-client-cpp/include/gtest/gtest_prod.h deleted file mode 100644 index a06bc6f10ff9c..0000000000000 --- a/pulsar-client-cpp/include/gtest/gtest_prod.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2006, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// -// Google C++ Testing and Mocking Framework definitions useful in production code. -// GOOGLETEST_CM0003 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_PROD_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PROD_H_ - -// When you need to test the private or protected members of a class, -// use the FRIEND_TEST macro to declare your tests as friends of the -// class. For example: -// -// class MyClass { -// private: -// void PrivateMethod(); -// FRIEND_TEST(MyClassTest, PrivateMethodWorks); -// }; -// -// class MyClassTest : public testing::Test { -// // ... -// }; -// -// TEST_F(MyClassTest, PrivateMethodWorks) { -// // Can call MyClass::PrivateMethod() here. -// } -// -// Note: The test class must be in the same namespace as the class being tested. -// For example, putting MyClassTest in an anonymous namespace will not work. - -#define FRIEND_TEST(test_case_name, test_name) friend class test_case_name##_##test_name##_Test - -#endif // GTEST_INCLUDE_GTEST_GTEST_PROD_H_ \ No newline at end of file diff --git a/pulsar-client-cpp/lib/TestUtil.h b/pulsar-client-cpp/lib/TestUtil.h new file mode 100644 index 0000000000000..9edece462a64f --- /dev/null +++ b/pulsar-client-cpp/lib/TestUtil.h @@ -0,0 +1,10 @@ +// +// Created by yong on 2021/3/5. +// + +#ifndef PULSAR_CPP_TESTUTIL_H +#define PULSAR_CPP_TESTUTIL_H + +#define FRIEND_TEST(test_case_name, test_name) friend class test_case_name##_##test_name##_Test + +#endif // PULSAR_CPP_TESTUTIL_H From 7c1e8a251b90f8195568fedc470cf8455d5fb461 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Fri, 5 Mar 2021 17:43:26 +0800 Subject: [PATCH 3/3] Address comments --- pom.xml | 1 - .../lib/MultiTopicsConsumerImpl.h | 2 +- .../lib/PartitionedConsumerImpl.h | 2 +- pulsar-client-cpp/lib/TestUtil.h | 21 ++++++++++++++++--- .../lib/UnAckedMessageTrackerEnabled.h | 2 +- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 0e7e935a1f6c5..b33206fd6d857 100644 --- a/pom.xml +++ b/pom.xml @@ -1241,7 +1241,6 @@ flexible messaging model and an intuitive client API. logs/** **/circe/** pulsar-broker/src/test/resources/authentication/basic/.htpasswd - pulsar-client-cpp/include/gtest/gtest_prod.h pulsar-client-cpp/lib/checksum/int_types.h pulsar-client-cpp/lib/checksum/gf2.hpp pulsar-client-cpp/lib/checksum/crc32c_sse42.cc diff --git a/pulsar-client-cpp/lib/MultiTopicsConsumerImpl.h b/pulsar-client-cpp/lib/MultiTopicsConsumerImpl.h index 43f9525f75b88..8216fc5f73590 100644 --- a/pulsar-client-cpp/lib/MultiTopicsConsumerImpl.h +++ b/pulsar-client-cpp/lib/MultiTopicsConsumerImpl.h @@ -18,7 +18,7 @@ */ #ifndef PULSAR_MULTI_TOPICS_CONSUMER_HEADER #define PULSAR_MULTI_TOPICS_CONSUMER_HEADER -#include "gtest/gtest_prod.h" +#include "lib/TestUtil.h" #include "ConsumerImpl.h" #include "ClientImpl.h" #include "BlockingQueue.h" diff --git a/pulsar-client-cpp/lib/PartitionedConsumerImpl.h b/pulsar-client-cpp/lib/PartitionedConsumerImpl.h index f90172ec9ae78..d4b85576060c5 100644 --- a/pulsar-client-cpp/lib/PartitionedConsumerImpl.h +++ b/pulsar-client-cpp/lib/PartitionedConsumerImpl.h @@ -18,7 +18,7 @@ */ #ifndef PULSAR_PARTITIONED_CONSUMER_HEADER #define PULSAR_PARTITIONED_CONSUMER_HEADER -#include "gtest/gtest_prod.h" +#include "lib/TestUtil.h" #include "ConsumerImpl.h" #include "ClientImpl.h" #include diff --git a/pulsar-client-cpp/lib/TestUtil.h b/pulsar-client-cpp/lib/TestUtil.h index 9edece462a64f..1de5ae3a19d1e 100644 --- a/pulsar-client-cpp/lib/TestUtil.h +++ b/pulsar-client-cpp/lib/TestUtil.h @@ -1,6 +1,21 @@ -// -// Created by yong on 2021/3/5. -// +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ #ifndef PULSAR_CPP_TESTUTIL_H #define PULSAR_CPP_TESTUTIL_H diff --git a/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h b/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h index 12daf4565e903..9fd638a187b7b 100644 --- a/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h +++ b/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h @@ -18,7 +18,7 @@ */ #ifndef LIB_UNACKEDMESSAGETRACKERENABLED_H_ #define LIB_UNACKEDMESSAGETRACKERENABLED_H_ -#include "gtest/gtest_prod.h" +#include "lib/TestUtil.h" #include "lib/UnAckedMessageTrackerInterface.h" #include