This is an automated email from the ASF dual-hosted git repository.
chenBright pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brpc.git
The following commit(s) were added to refs/heads/master by this push:
new 11c8ea95 Use -fno-access-control instead of -Dprivate=public for tests
(#3346)
11c8ea95 is described below
commit 11c8ea95b292a2e3ce3db9df4a4b755def165b23
Author: Felix-Gong <[email protected]>
AuthorDate: Tue Jun 16 13:09:34 2026 +0800
Use -fno-access-control instead of -Dprivate=public for tests (#3346)
Replace the -Dprivate=public/-Dprotected=public macro hack with
-fno-access-control compiler flag in test builds. This avoids
redeclaration issues with standard library headers (e.g. <any>
under C++17) while still allowing tests to access private members.
Changes:
- test/CMakeLists.txt: replace -Dprivate=public with -fno-access-control
- test/Makefile: replace -Dprivate=public with -fno-access-control
- test/BUILD.bazel: remove sstream_workaround cc_library and all deps
- test/sstream_workaround.h: remove workaround (no longer needed)
---
test/BUILD.bazel | 11 -----------
test/CMakeLists.txt | 4 ++--
test/Makefile | 4 ++--
test/sstream_workaround.h | 33 ---------------------------------
4 files changed, 4 insertions(+), 48 deletions(-)
diff --git a/test/BUILD.bazel b/test/BUILD.bazel
index d442d3b7..3efe804c 100644
--- a/test/BUILD.bazel
+++ b/test/BUILD.bazel
@@ -143,13 +143,6 @@ brpc_proto_library(
visibility = ["//visibility:public"],
)
-cc_library(
- name = "sstream_workaround",
- hdrs = [
- "sstream_workaround.h",
- ],
-)
-
cc_library(
name = "gperftools_helper",
hdrs = [
@@ -182,7 +175,6 @@ cc_test(
defines = ["HAS_NLOHMANN_JSON=1"],
deps = [
":cc_test_proto",
- ":sstream_workaround",
":gperftools_helper",
"//:butil",
"//:bthread",
@@ -195,7 +187,6 @@ cc_test(
name = "bvar_unittests",
srcs = glob(["bvar_*_unittest.cpp"]),
deps = [
- ":sstream_workaround",
":gperftools_helper",
"//:bvar",
"@com_google_googletest//:gtest",
@@ -210,7 +201,6 @@ generate_unittests(
"bthread*_unittest.cpp",
]),
deps = [
- ":sstream_workaround",
":gperftools_helper",
"//:bthread",
"@com_google_googletest//:gtest",
@@ -239,7 +229,6 @@ generate_unittests(
"brpc_*_unittest.cpp",
]),
deps = [
- ":sstream_workaround",
":gperftools_helper",
"//:brpc",
":cc_test_proto",
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index ade7350f..df8fedce 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -53,8 +53,8 @@ else()
endif()
set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} ${DEFINE_CLOCK_GETTIME}
-DBRPC_WITH_GLOG=${WITH_GLOG_VAL} -DBRPC_WITH_RDMA=${WITH_RDMA_VAL}")
-set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -DBTHREAD_USE_FAST_PTHREAD_MUTEX
-D__const__=__unused__ -D_GNU_SOURCE -DUSE_SYMBOLIZE -DNO_TCMALLOC
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
-DUNIT_TEST -Dprivate=public -Dprotected=public
-DBVAR_NOT_LINK_DEFAULT_VARIABLES -D__STRICT_ANSI__ -include
${PROJECT_SOURCE_DIR}/test/sstream_workaround.h")
-set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -g -O2 -pipe -Wall -W -fPIC
-fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter
-fno-omit-frame-pointer")
+set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -DBTHREAD_USE_FAST_PTHREAD_MUTEX
-D__const__=__unused__ -D_GNU_SOURCE -DUSE_SYMBOLIZE -DNO_TCMALLOC
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
-DUNIT_TEST -DBVAR_NOT_LINK_DEFAULT_VARIABLES -D__STRICT_ANSI__")
+set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -g -O2 -pipe -Wall -W -fPIC
-fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter
-fno-omit-frame-pointer -fno-access-control")
use_cxx11()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
diff --git a/test/Makefile b/test/Makefile
index 30e196bb..15169937 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -18,8 +18,8 @@
NEED_GPERFTOOLS=1
NEED_GTEST=1
include ../config.mk
-CPPFLAGS+=-DBTHREAD_USE_FAST_PTHREAD_MUTEX -D_GNU_SOURCE -DUSE_SYMBOLIZE
-DNO_TCMALLOC -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS -DUNIT_TEST -Dprivate=public -Dprotected=public
-DBVAR_NOT_LINK_DEFAULT_VARIABLES --include sstream_workaround.h
-CXXFLAGS+=$(CPPFLAGS) -pipe -Wall -W -fPIC -fstrict-aliasing
-Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer -std=c++0x
+CPPFLAGS+=-DBTHREAD_USE_FAST_PTHREAD_MUTEX -D_GNU_SOURCE -DUSE_SYMBOLIZE
-DNO_TCMALLOC -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS -DUNIT_TEST -DBVAR_NOT_LINK_DEFAULT_VARIABLES
+CXXFLAGS+=$(CPPFLAGS) -pipe -Wall -W -fPIC -fstrict-aliasing
-Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer
-fno-access-control -std=c++0x
# On Darwin, only gtest library is needed, other libraries have been linked in
`brpc.dbg.dylib`
ifeq ($(SYSTEM),Darwin)
diff --git a/test/sstream_workaround.h b/test/sstream_workaround.h
deleted file mode 100644
index 05934e55..00000000
--- a/test/sstream_workaround.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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 BUTIL_TEST_SSTREAM_WORKAROUND
-#define BUTIL_TEST_SSTREAM_WORKAROUND
-
-// defining private as public makes it fail to compile sstream with gcc5.x
like this:
-// "error: ‘struct std::__cxx11::basic_stringbuf<_CharT, _Traits, _Alloc>::
-// __xfer_bufptrs’ redeclared with different access"
-
-#ifdef private
-# undef private
-# include <sstream>
-# define private public
-#else
-# include <sstream>
-#endif
-
-#endif // BUTIL_TEST_SSTREAM_WORKAROUND
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]