Test case:
+static test_return_t regression_975591_TEST(void *object) +{ + gearman_client_st *client= (gearman_client_st *)object; + test_true(client); + + gearman_function_t dreaming_fn= gearman_function_create(echo_or_react_worker_v2); + worker_handle_st* worker_handle= test_worker_start(libtest::default_port(), NULL, + __func__, + dreaming_fn, NULL, + gearman_worker_options_t(), + 0); + int payload_size[] = { 100, 1000, 10000, 1000000, 1000000, 0 }; + int *ptr= payload_size; + libtest::vchar_t payload; + while(*(ptr++)) + { + payload.reserve(*ptr); + for (size_t x= payload.size(); x < *ptr; x++) + { + payload.push_back(rand()); + } + + size_t result_length; + gearman_return_t rc; + char *job_result= (char*)gearman_client_do(client, __func__, + NULL, + &payload[0], payload.size(), + &result_length, &rc); + test_compare(GEARMAN_SUCCESS, rc); + test_compare(payload.size(), result_length); + test_memcmp(&payload[0], job_result, result_length); + } + + delete worker_handle; + + return TEST_SUCCESS; +} +
Test case:
+static test_return_t regression_ 975591_ TEST(void *object) function_ create( echo_or_ react_worker_ v2); start(libtest: :default_ port(), NULL, worker_ options_ t(), reserve( *ptr); push_back( rand()) ; gearman_ client_ do(client, __func__, GEARMAN_ SUCCESS, rc); payload. size(), result_length); &payload[ 0], job_result, result_length);
+{
+ gearman_client_st *client= (gearman_client_st *)object;
+ test_true(client);
+
+ gearman_function_t dreaming_fn= gearman_
+ worker_handle_st* worker_handle= test_worker_
+ __func__,
+ dreaming_fn, NULL,
+ gearman_
+ 0);
+ int payload_size[] = { 100, 1000, 10000, 1000000, 1000000, 0 };
+ int *ptr= payload_size;
+ libtest::vchar_t payload;
+ while(*(ptr++))
+ {
+ payload.
+ for (size_t x= payload.size(); x < *ptr; x++)
+ {
+ payload.
+ }
+
+ size_t result_length;
+ gearman_return_t rc;
+ char *job_result= (char*)
+ NULL,
+ &payload[0], payload.size(),
+ &result_length, &rc);
+ test_compare(
+ test_compare(
+ test_memcmp(
+ }
+
+ delete worker_handle;
+
+ return TEST_SUCCESS;
+}
+