THRIFT-4091 - revert THRIFT-4045 and remove unused test code in test/cpp
Client: C++
This closes #1192
diff --git a/configure.ac b/configure.ac
index 09c6d9e..a889f75 100755
--- a/configure.ac
+++ b/configure.ac
@@ -660,7 +660,9 @@
AC_FUNC_ALLOCA
AC_FUNC_FORK
+AC_FUNC_MALLOC
AC_FUNC_MEMCMP
+AC_FUNC_REALLOC
AC_FUNC_SELECT_ARGTYPES
AC_FUNC_STAT
AC_FUNC_STRERROR_R
diff --git a/test/cpp/Makefile.am b/test/cpp/Makefile.am
index d825bdd..82dc518 100755
--- a/test/cpp/Makefile.am
+++ b/test/cpp/Makefile.am
@@ -120,6 +120,4 @@
src/TestClient.cpp \
src/TestServer.cpp \
src/StressTest.cpp \
- src/StressTestNonBlocking.cpp \
- realloc/realloc_test.c \
- realloc/Makefile
+ src/StressTestNonBlocking.cpp
diff --git a/test/cpp/realloc/Makefile b/test/cpp/realloc/Makefile
deleted file mode 100644
index f89bbb3..0000000
--- a/test/cpp/realloc/Makefile
+++ /dev/null
@@ -1,40 +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.
-#
-
-# This probably should not go into "make check", because it is an experiment,
-# not a test. Specifically, it is meant to determine how likely realloc is
-# to avoid a copy. This is poorly documented.
-
-run: realloc_test
- for it in 1 4 64 ; do \
- for nb in 1 8 64 512 ; do \
- for mins in 64 512 ; do \
- for maxs in 2048 262144 ; do \
- for db in 8 64 ; do \
- ./realloc_test $$nb $$mins $$maxs $$db $$it \
- ; done \
- ; done \
- ; done \
- ; done \
- ; done \
- > raw_stats
-
-CFLAGS = -Wall -g -std=c99
-LDLIBS = -ldl
-realloc_test: realloc_test.c
diff --git a/test/cpp/realloc/realloc_test.c b/test/cpp/realloc/realloc_test.c
deleted file mode 100644
index f9763ad..0000000
--- a/test/cpp/realloc/realloc_test.c
+++ /dev/null
@@ -1,107 +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.
- */
-
-#define _GNU_SOURCE
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <dlfcn.h>
-
-int copies;
-int non_copies;
-
-void *realloc(void *ptr, size_t size) {
- static void *(*real_realloc)(void*, size_t) = NULL;
- if (real_realloc == NULL) {
- real_realloc = (void* (*) (void*, size_t)) dlsym(RTLD_NEXT, "realloc");
- }
-
- void *ret_ptr = (*real_realloc)(ptr, size);
-
- if (ret_ptr == ptr) {
- non_copies++;
- } else {
- copies++;
- }
-
- return ret_ptr;
-}
-
-
-struct TMemoryBuffer {
- void* ptr;
- int size;
-};
-
-int main(int argc, char *argv[]) {
- int num_buffers;
- int init_size;
- int max_size;
- int doublings;
- int iterations;
-
- if (argc < 6 ||
- argc > 7 ||
- (num_buffers = atoi(argv[1])) == 0 ||
- (init_size = atoi(argv[2])) == 0 ||
- (max_size = atoi(argv[3])) == 0 ||
- init_size > max_size ||
- (iterations = atoi(argv[4])) == 0 ||
- (doublings = atoi(argv[5])) == 0 ||
- (argc == 7 && atoi(argv[6]) == 0)) {
- fprintf(stderr, "usage: realloc_test <num_buffers> <init_size> <max_size> <doublings> <iterations> [seed]\n");
- exit(EXIT_FAILURE);
- }
-
- for ( int i = 0 ; i < argc ; i++ ) {
- printf("%s ", argv[i]);
- }
- printf("\n");
-
- if (argc == 7) {
- srand(atoi(argv[6]));
- } else {
- srand(time(NULL));
- }
-
- struct TMemoryBuffer* buffers = calloc(num_buffers, sizeof(*buffers));
- if (buffers == NULL) abort();
-
- for ( int i = 0 ; i < num_buffers ; i++ ) {
- buffers[i].size = max_size;
- }
-
- while (iterations --> 0) {
- for ( int i = 0 ; i < doublings * num_buffers ; i++ ) {
- struct TMemoryBuffer* buf = &buffers[rand() % num_buffers];
- buf->size *= 2;
- if (buf->size <= max_size) {
- buf->ptr = realloc(buf->ptr, buf->size);
- } else {
- free(buf->ptr);
- buf->size = init_size;
- buf->ptr = malloc(buf->size);
- }
- if (buf->ptr == NULL) abort();
- }
- }
-
- printf("Non-copied %d/%d (%.2f%%)\n", non_copies, copies + non_copies, 100.0 * non_copies / (copies + non_copies));
- return 0;
-}