diff --git a/src/obproxy/obutils/ob_config_server_processor.cpp b/src/obproxy/obutils/ob_config_server_processor.cpp index 201d17337cd861f2357b290f33416641e3fe166f..febf185a48878b22e7fb14ccb0cd62f5e0b8b99d 100644 --- a/src/obproxy/obutils/ob_config_server_processor.cpp +++ b/src/obproxy/obutils/ob_config_server_processor.cpp @@ -938,7 +938,7 @@ int ObConfigServerProcessor::do_fetch_proxy_bin(const char *bin_save_path, const LOG_WARN("fail to fetch new proxy bin", K(bin_url), K(bin_save_path), K(ret)); } else { } - if (fd > 0) { + if (fd >= 0) { ::close(fd); } } @@ -1085,7 +1085,7 @@ int ObConfigServerProcessor::get_kernel_release_by_redhat(ObProxyKernelRelease & "release", get_kernel_release_string(release)); } - if (fd > 0) { + if (fd >= 0) { ::close(fd); } return ret; diff --git a/src/obproxy/obutils/ob_hot_upgrade_processor.cpp b/src/obproxy/obutils/ob_hot_upgrade_processor.cpp index e3cf61f46fa75c7f8a195a3e0b1fa56477e6ff6a..660a3d40d201c568b06faf7c98c5691763a546c3 100644 --- a/src/obproxy/obutils/ob_hot_upgrade_processor.cpp +++ b/src/obproxy/obutils/ob_hot_upgrade_processor.cpp @@ -223,28 +223,30 @@ int get_binary_md5(const char *binary, char *md5_buf, const int64_t md5_buf_len) } else if (OB_UNLIKELY(0 != sigaction(SIGCHLD, &action, &old_action))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("fail to sigaction SIGCHLD", KERRMSGS, K(ret)); - } else if (OB_ISNULL((fp = popen(shell_str, "r")))) { - ret = ob_get_sys_errno(); - LOG_WARN("failed to popen fp", K(shell_str), K(binary), KERRMSGS, K(ret)); - } else if (OB_ISNULL(fgets(md5_buf, static_cast(md5_buf_len), fp))) { - ret = ob_get_sys_errno(); - LOG_WARN("fail to fgets md5_str", K(shell_str), K(md5_buf), KERRMSGS, K(ret)); } else { - LOG_INFO("succeed to get binary md5", K(shell_str), K(md5_buf), K(md5_buf_len)); - } - - if (OB_LIKELY(NULL != fp)) { - if (-1 == pclose(fp)) { + if (OB_ISNULL((fp = popen(shell_str, "r")))) { ret = ob_get_sys_errno(); - LOG_WARN("failed to pclose fp", K(fp), KERRMSGS, K(ret)); + LOG_WARN("failed to popen fp", K(shell_str), K(binary), KERRMSGS, K(ret)); + } else if (OB_ISNULL(fgets(md5_buf, static_cast(md5_buf_len), fp))) { + ret = ob_get_sys_errno(); + LOG_WARN("fail to fgets md5_str", K(shell_str), K(md5_buf), KERRMSGS, K(ret)); } else { - fp = NULL; + LOG_INFO("succeed to get binary md5", K(shell_str), K(md5_buf), K(md5_buf_len)); } - } - if (OB_UNLIKELY(0 != sigaction(SIGCHLD, &old_action, NULL))) {//reset it - ret = OB_ERR_UNEXPECTED; - LOG_WARN("fail to sigaction SIGCHLD", KERRMSGS, K(ret)); + if (OB_LIKELY(NULL != fp)) { + if (-1 == pclose(fp)) { + ret = ob_get_sys_errno(); + LOG_WARN("failed to pclose fp", K(fp), KERRMSGS, K(ret)); + } else { + fp = NULL; + } + } + + if (OB_UNLIKELY(0 != sigaction(SIGCHLD, &old_action, NULL))) {//reset it + ret = OB_ERR_UNEXPECTED; + LOG_WARN("fail to sigaction SIGCHLD", KERRMSGS, K(ret)); + } } } @@ -588,37 +590,39 @@ int ObHotUpgradeProcessor::check_proxy_bin_release(const char *binary) } else if (OB_UNLIKELY(0 != sigaction(SIGCHLD, &action, &old_action))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("fail to sigaction SIGCHLD", KERRMSGS, K(ret)); - } else if (OB_ISNULL((fp = popen(shell_str, "r")))) { - ret = ob_get_sys_errno(); - LOG_WARN("failed to popen fp", K(shell_str), K(binary), KERRMSGS, K(ret)); } else { - char *result_buf = shell_str; - MEMSET(result_buf, 0, MAX_SHELL_STR_LENGTH); - fgets(result_buf, static_cast(MAX_SHELL_STR_LENGTH), fp); - if (0 != STRLEN(result_buf) - && (NULL != strstr(result_buf, ".el") || NULL != strstr(result_buf, ".alios"))) { - if (OB_FAIL(get_global_config_server_processor().check_kernel_release(result_buf))) { - LOG_WARN("failed to parser linux kernel release in result_buf", K(result_buf), K(ret)); + if (OB_ISNULL((fp = popen(shell_str, "r")))) { + ret = ob_get_sys_errno(); + LOG_WARN("failed to popen fp", K(shell_str), K(binary), KERRMSGS, K(ret)); + } else { + char *result_buf = shell_str; + MEMSET(result_buf, 0, MAX_SHELL_STR_LENGTH); + fgets(result_buf, static_cast(MAX_SHELL_STR_LENGTH), fp); + if (0 != STRLEN(result_buf) + && (NULL != strstr(result_buf, ".el") || NULL != strstr(result_buf, ".alios"))) { + if (OB_FAIL(get_global_config_server_processor().check_kernel_release(result_buf))) { + LOG_WARN("failed to parser linux kernel release in result_buf", K(result_buf), K(ret)); + } else { + LOG_INFO("succeed to check proxy binary release", K(result_buf)); + } } else { - LOG_INFO("succeed to check proxy binary release", K(result_buf)); + LOG_INFO("maybe upgrade to old proxy, treat it succ", K(result_buf)); } - } else { - LOG_INFO("maybe upgrade to old proxy, treat it succ", K(result_buf)); } - } - if (OB_LIKELY(NULL != fp)) { - if (-1 == pclose(fp)) { - ret = ob_get_sys_errno(); - LOG_WARN("failed to pclose fp", K(fp), KERRMSGS, K(ret)); - } else { - fp = NULL; + if (OB_LIKELY(NULL != fp)) { + if (-1 == pclose(fp)) { + ret = ob_get_sys_errno(); + LOG_WARN("failed to pclose fp", K(fp), KERRMSGS, K(ret)); + } else { + fp = NULL; + } } - } - if (OB_UNLIKELY(0 != sigaction(SIGCHLD, &old_action, NULL))) {//reset it - ret = OB_ERR_UNEXPECTED; - LOG_WARN("fail to sigaction SIGCHLD", KERRMSGS, K(ret)); + if (OB_UNLIKELY(0 != sigaction(SIGCHLD, &old_action, NULL))) {//reset it + ret = OB_ERR_UNEXPECTED; + LOG_WARN("fail to sigaction SIGCHLD", KERRMSGS, K(ret)); + } } if (NULL != shell_str) { diff --git a/src/obproxy/obutils/ob_proxy_config_utils.cpp b/src/obproxy/obutils/ob_proxy_config_utils.cpp index 075a7d8bcf14202b0ad6a27f8cd6c532f243dfa3..e82608cba5fde68eb8c55125e9a28137515a02d2 100644 --- a/src/obproxy/obutils/ob_proxy_config_utils.cpp +++ b/src/obproxy/obutils/ob_proxy_config_utils.cpp @@ -708,7 +708,7 @@ int ObProxyFileUtils::write_and_backup_file(const char *path, const char *tmp_pa } } } - if (fd > 0) { + if (fd >= 0) { ::close(fd); } } @@ -792,7 +792,7 @@ int ObProxyFileUtils::read_from_file(const char *dir, const char *file_name, } else if (OB_LIKELY(read_len < len)) { buf[read_len] = '\0'; } - if (fd > 0) ::close(fd); + if (fd >= 0) ::close(fd); } } diff --git a/src/obproxy/opsql/Makemodule.am b/src/obproxy/opsql/Makemodule.am index 9574bf98a4ad54a9d54ad2986c3cf37c392a3f63..0f361ae56d669f9cc58ec377c04e3c0f6f4977ca 100644 --- a/src/obproxy/opsql/Makemodule.am +++ b/src/obproxy/opsql/Makemodule.am @@ -29,9 +29,7 @@ obproxy/opsql/expr_parser/ob_expr_parser.h opsql_expr_resolver_sources:=\ obproxy/opsql/expr_resolver/ob_expr_resolver.h\ -obproxy/opsql/expr_resolver/ob_expr_resolver.cpp\ -obproxy/opsql/expr_resolver/ob_proxy_obj_caster.h\ -obproxy/opsql/expr_resolver/ob_proxy_obj_caster.cpp +obproxy/opsql/expr_resolver/ob_expr_resolver.cpp opsql_func_expr_parser_sources:=\ obproxy/opsql/func_expr_parser/ob_func_expr_parser_lex.c\ diff --git a/src/obproxy/opsql/expr_resolver/ob_proxy_obj_caster.cpp b/src/obproxy/opsql/expr_resolver/ob_proxy_obj_caster.cpp deleted file mode 100644 index f767627dd3e947ffc20a863e27c8542cd527b83a..0000000000000000000000000000000000000000 --- a/src/obproxy/opsql/expr_resolver/ob_proxy_obj_caster.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2021 OceanBase - * OceanBase Database Proxy(ODP) is licensed under Mulan PubL v2. - * You can use this software according to the terms and conditions of the Mulan PubL v2. - * You may obtain a copy of Mulan PubL v2 at: - * http://license.coscl.org.cn/MulanPubL-2.0 - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, - * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, - * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PubL v2 for more details. - */ - -#include "opsql/expr_resolver/ob_proxy_obj_caster.h" -using namespace oceanbase::common; -namespace oceanbase -{ -namespace obproxy -{ -namespace opsql -{ -ObProxyObjCaster::ObProxyObjCaster(ObIAllocator &allocator) : allocator_(allocator) - , casted_cell_() - , cast_ctx_(&allocator_, - NULL, - CM_NONE, - CS_TYPE_UTF8MB4_GENERAL_CI) -{ -} - -int ObProxyObjCaster::cast(const ObObj orig_obj, const ObObjType expect_type, const ObObj *&res_obj) -{ - return ObObjCasterV2::to_type(expect_type, cast_ctx_, orig_obj, casted_cell_, res_obj); -} - -} // end of opsql -} // end of obproxy -} // end of oceanbase diff --git a/src/obproxy/opsql/expr_resolver/ob_proxy_obj_caster.h b/src/obproxy/opsql/expr_resolver/ob_proxy_obj_caster.h deleted file mode 100644 index 7bbd54a0476ba356b19c9448fe7c09c84ac57392..0000000000000000000000000000000000000000 --- a/src/obproxy/opsql/expr_resolver/ob_proxy_obj_caster.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright (c) 2021 OceanBase - * OceanBase Database Proxy(ODP) is licensed under Mulan PubL v2. - * You can use this software according to the terms and conditions of the Mulan PubL v2. - * You may obtain a copy of Mulan PubL v2 at: - * http://license.coscl.org.cn/MulanPubL-2.0 - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, - * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, - * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PubL v2 for more details. - */ - -#ifndef OBPROXY_OBJ_CASTER_H -#define OBPROXY_OBJ_CASTER_H -#include "common/ob_object.h" -#include "common/ob_obj_cast.h" - -namespace oceanbase -{ -namespace common -{ -class ObIAllocator; -} -namespace obproxy -{ -namespace opsql -{ -class ObProxyObjCaster -{ -public: - explicit ObProxyObjCaster(common::ObIAllocator &allocator); - int cast(const common::ObObj orig_obj, const common::ObObjType expect_type, - const common::ObObj *&res_obj); -private: - common::ObIAllocator &allocator_; - common::ObObj casted_cell_; - common::ObCastCtx cast_ctx_; -}; - -} // end of namespace opsql -} // end of namespace obproxy -} // end of namespace oceanbase -#endif // OBPROXY_OBJ_CASTER_H diff --git a/unittest/obproxy/foo_server.cpp b/unittest/obproxy/foo_server.cpp index 67b95a7a522f8b6d961878a83028228d5b6a5222..303df1b9a7e30a58b0d38722ff531a0df0340e47 100644 --- a/unittest/obproxy/foo_server.cpp +++ b/unittest/obproxy/foo_server.cpp @@ -142,8 +142,11 @@ void FooServer::run() } memset(line, 0, MAX_LINE); total_size = 0; - while ((read_size = read(sock_fd, line + total_size, MAX_LINE)) > 0) { + while ((read_size = read(sock_fd, line + total_size, MAX_LINE - total_size)) > 0) { total_size += read_size; + if (total_size >= MAX_LINE) { + break; + } } if (total_size == 0) { diff --git a/unittest/obproxy/ob_expr_parser_checker.cpp b/unittest/obproxy/ob_expr_parser_checker.cpp index 21b1a43d417a6c06d5076554f4a47fde1580d5e0..5f0075441f93225ae132a951102e9eb505945e60 100644 --- a/unittest/obproxy/ob_expr_parser_checker.cpp +++ b/unittest/obproxy/ob_expr_parser_checker.cpp @@ -85,6 +85,7 @@ ObProxyParseString ObExprParserChecker::get_value(std::string &extra_str, const std::size_t &pos) { ObProxyParseString ret_str; + memset(&ret_str, 0, sizeof(ObProxyParseString)); ret_str.str_len_ = 0; std::size_t key_index = extra_str.find(key_name, pos); if (key_index != std::string::npos) { diff --git a/unittest/obproxy/ob_func_expr_parser_checker.cpp b/unittest/obproxy/ob_func_expr_parser_checker.cpp index c58c6067ca34d6f70555a48f50262c8b0f5cc1be..fbbcd9d400baebc1756dcaa133bdfc6de3d3994e 100644 --- a/unittest/obproxy/ob_func_expr_parser_checker.cpp +++ b/unittest/obproxy/ob_func_expr_parser_checker.cpp @@ -63,6 +63,7 @@ ObProxyParseString ObFuncExprParserChecker::get_value(std::string &extra_str, co std::size_t &pos) { ObProxyParseString ret_str; + memset(&ret_str, 0, sizeof(ObProxyParseString)); ret_str.str_len_ = 0; std::size_t key_index = extra_str.find(key_name, pos); if (key_index != std::string::npos) { diff --git a/unittest/obproxy/obproxy_parser_test.cpp b/unittest/obproxy/obproxy_parser_test.cpp index b0847f6a15dc0a20e77b35cbb053fa03c28a0847..8df9127fb31953cc6d45f4dab673749a89421135 100755 --- a/unittest/obproxy/obproxy_parser_test.cpp +++ b/unittest/obproxy/obproxy_parser_test.cpp @@ -106,6 +106,7 @@ void do_parser_test(ObProxyMysqlRequest& client_request, std::string query_str) ObProxyParseString get_value(std::string &extra_str, const char* key_name, std::size_t &pos) { ObProxyParseString ret_str; + memset(&ret_str, 0, sizeof(ObProxyParseString)); ret_str.str_len_ = 0; std::size_t key_index = extra_str.find(key_name, pos); if (key_index != std::string::npos) { diff --git a/unittest/obproxy/test_config_server_processor.cpp b/unittest/obproxy/test_config_server_processor.cpp index 057b526623a5e25794d6416c7a18e6c5069803e1..abf3261ec4e3bc330763971ac7429af7b5ab0259 100644 --- a/unittest/obproxy/test_config_server_processor.cpp +++ b/unittest/obproxy/test_config_server_processor.cpp @@ -289,14 +289,17 @@ TEST_F(TestConfigServerProcessor, test_do_fetch_proxy_bin) //test short timeout const char *bin_url = ""; - int fd = 0; + int fd = -1; if ((fd = ::open(save_path, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH)) > 0) { ret = config_processor_.fetch_by_curl(bin_url, 1L, reinterpret_cast(fd), config_processor_.write_proxy_bin); } - if (fd > 0) close(fd); + if (fd >= 0) { + close(fd); + fd = -1; + } ASSERT_EQ(OB_CURL_ERROR, ret); remove(save_path); @@ -310,7 +313,10 @@ TEST_F(TestConfigServerProcessor, test_do_fetch_proxy_bin) S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH)) > 0) { ret = config_processor_.fetch_by_curl(wrong_bin_url, fetch_timeout, reinterpret_cast((int64_t)fd), config_processor_.write_proxy_bin); } - if (fd > 0) close(fd); + if (fd >= 0) { + close(fd); + fd = -1; + } ASSERT_EQ(OB_CURL_ERROR, ret); remove(save_path); diff --git a/unittest/obproxy/test_fast_zlib_stream_compressor.cpp b/unittest/obproxy/test_fast_zlib_stream_compressor.cpp index adb8adb65cc56eace61bb2ea779a296b2ef413be..1ed11f99aa8a07e2207dc306d9e1beb977c61b76 100644 --- a/unittest/obproxy/test_fast_zlib_stream_compressor.cpp +++ b/unittest/obproxy/test_fast_zlib_stream_compressor.cpp @@ -35,9 +35,9 @@ TEST_F(TestFastZlibStreamCompressor, test_simple) ObFastZlibStreamCompressor compressor1; int ret = OB_SUCCESS; int64_t buff_len = 1024 * 1024; - char *src_buf = new char[buff_len]; - char *second_src_buf = new char[buff_len]; - char *compress_buf = new char[buff_len]; + char src_buf[buff_len] = "\0"; + char second_src_buf[buff_len] = "\0"; + char compress_buf[buff_len] = "\0"; int64_t src_len = 0; int64_t filled_len = 0; int64_t filled_len2 = 0; @@ -76,13 +76,6 @@ TEST_F(TestFastZlibStreamCompressor, test_simple) LOG_INFO("one shot", K(src_len), K(total_filled_len), K(filled_len2)); } - - delete []src_buf; - src_buf = NULL; - delete []second_src_buf; - second_src_buf = NULL; - delete []compress_buf; - compress_buf = NULL; }; TEST_F(TestFastZlibStreamCompressor, test_speed) @@ -93,9 +86,9 @@ TEST_F(TestFastZlibStreamCompressor, test_speed) int ret = OB_SUCCESS; int64_t run_count = 1000; int64_t buff_len = 8 * 1024 * 1024; - char *src_buf = new char[buff_len]; - char *second_src_buf = new char[buff_len]; - char *compress_buf = new char[buff_len]; + char src_buf[buff_len] = "\0"; + char second_src_buf[buff_len] = "\0"; + char compress_buf[buff_len] = "\0"; int64_t src_len = 0; int64_t filled_len = 0; int64_t filled_len2 = 0; @@ -147,13 +140,6 @@ TEST_F(TestFastZlibStreamCompressor, test_speed) "standard level0 compress cost", cost_time_us3, "standard level6 compress cost", cost_time_us4); } - - delete []src_buf; - src_buf = NULL; - delete []second_src_buf; - second_src_buf = NULL; - delete []compress_buf; - compress_buf = NULL; }; diff --git a/unittest/obproxy/test_io_buffer.cpp b/unittest/obproxy/test_io_buffer.cpp index 54763e5c1883df1a7909398daf254dadc5bcc6d2..11426d10dd255d60d3623f1b50f845a3d0a93999 100644 --- a/unittest/obproxy/test_io_buffer.cpp +++ b/unittest/obproxy/test_io_buffer.cpp @@ -610,7 +610,7 @@ TEST_F(TestIOBuffer, test_OBMIOBufferReader_replace_with_char) ASSERT_EQ(4, reader->get_block_count()); ASSERT_EQ(g_size, reader->read_avail()); - char *target_buf = new(std::nothrow) char[g_size]; + char target_buf[g_size] = "\0"; char mark = '*'; memset(target_buf, mark, g_size); @@ -624,8 +624,6 @@ TEST_F(TestIOBuffer, test_OBMIOBufferReader_replace_with_char) ASSERT_EQ(0, memcmp(target_buf, b->start(), delta_size)); ASSERT_NE(0, memcmp(target_buf, b->start(), buf_size)); - delete []target_buf; - target_buf = NULL; buffer_ptr_->destroy(); check_buffer_clear(buffer_ptr_); op_reclaim_free(buffer_ptr_); diff --git a/unittest/obproxy/test_mysql_transaction_analyzer.cpp b/unittest/obproxy/test_mysql_transaction_analyzer.cpp index db9bebac67201e9232da243e225d982aa734ec7e..ea690b06259ee2546c8bc561509ee232356136e5 100644 --- a/unittest/obproxy/test_mysql_transaction_analyzer.cpp +++ b/unittest/obproxy/test_mysql_transaction_analyzer.cpp @@ -77,7 +77,7 @@ void TestMysqlTransactionAnalyzer::analyze_mysql_response( int ret = OB_SUCCESS; bool is_completed = false; bool is_request_completed = false; - char *resp = new char[len]; + char resp[len] = "\0"; ret = covert_hex_to_string(hex, len, resp); ASSERT_EQ(OB_SUCCESS, ret); ObString resp_str; @@ -93,7 +93,6 @@ void TestMysqlTransactionAnalyzer::analyze_mysql_response( ASSERT_TRUE(is_completed); ASSERT_TRUE(trans_analyzer.is_trans_completed()); } - delete []resp; } void TestMysqlTransactionAnalyzer::analyze_mysql_response( diff --git a/unittest/obproxy/test_zlib_stream_compressor.cpp b/unittest/obproxy/test_zlib_stream_compressor.cpp index faa9e5c7e3c8f819ef0c7431ef16adf9bf9e4686..0d39582adfd2a8cc019efd37544b4780da8f4c55 100644 --- a/unittest/obproxy/test_zlib_stream_compressor.cpp +++ b/unittest/obproxy/test_zlib_stream_compressor.cpp @@ -60,7 +60,7 @@ TEST_F(TestZlibStreamCompressor, test_simple) ret = compressor1.add_compress_data(text, text_len, is_last_data); ASSERT_EQ(OB_SUCCESS, ret); - char *buf = new char[len]; + char buf[len] = "\0"; int64_t filled_len = -1; ret = compressor1.compress(buf, len, filled_len); ASSERT_EQ(OB_SUCCESS, ret); @@ -70,17 +70,12 @@ TEST_F(TestZlibStreamCompressor, test_simple) ObZlibStreamCompressor compressor2; ret = compressor2.add_decompress_data(buf, filled_len); ASSERT_EQ(OB_SUCCESS, ret); - char *buf2 = new char[len]; + char buf2[len] = "\0"; int64_t filled_len2 = -1; ret = compressor2.decompress(buf2, len, filled_len2); ASSERT_TRUE(len > filled_len2); buf2[filled_len2] = '\0'; ASSERT_STREQ(buf2, text); - - delete []buf; - buf = NULL; - delete []buf2; - buf2 = NULL; }; TEST_F(TestZlibStreamCompressor, test_compress_and_decomress_stream) @@ -91,7 +86,7 @@ TEST_F(TestZlibStreamCompressor, test_compress_and_decomress_stream) int64_t len = text_len * 2; int64_t total_filled_len = 0; - char *buf = new char[len]; + char buf[len] = "\0"; // 1. stream compress ObZlibStreamCompressor compressor1; for (int64_t i = 0; i < text_len; ++i) { @@ -116,7 +111,7 @@ TEST_F(TestZlibStreamCompressor, test_compress_and_decomress_stream) // 2.stream decompress int64_t len2 = len; - char *buf2 = new char[len2]; + char buf2[len2] = "\0"; total_filled_len = 0; ObZlibStreamCompressor compressor2; for (int64_t i = 0; i < compressed_len; ++i) { @@ -139,11 +134,6 @@ TEST_F(TestZlibStreamCompressor, test_compress_and_decomress_stream) LOG_INFO("decompress complete", "origin len", total_filled_len); buf2[total_filled_len] = '\0'; ASSERT_STREQ(buf2, text); - - delete []buf; - buf = NULL; - delete []buf2; - buf2 = NULL; } TEST_F(TestZlibStreamCompressor, test_compress_and_decomress_stream2)