Comment 3 for bug 975591

Revision history for this message
Brian Aker (brianaker) wrote :

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;
+}
+