Author: ivan
Date: Tue Nov  3 16:09:04 2015
New Revision: 1712318

URL: http://svn.apache.org/viewvc?rev=1712318&view=rev
Log:
* test/test_buckets.c
  (test_linebuf_crlf_split, test_response_no_body_expected,
   test_random_eagain_in_response, test_prefix_buckets,
   test_http2_unframe_buckets, test_http2_unpad_buckets,
   test_http2_frame_bucket_basic): Explicitly destroy tested buckets using
   serf_bucket_destroy().

Modified:
    serf/trunk/test/test_buckets.c

Modified: serf/trunk/test/test_buckets.c
URL: 
http://svn.apache.org/viewvc/serf/trunk/test/test_buckets.c?rev=1712318&r1=1712317&r2=1712318&view=diff
==============================================================================
--- serf/trunk/test/test_buckets.c (original)
+++ serf/trunk/test/test_buckets.c Tue Nov  3 16:09:04 2015
@@ -1216,6 +1216,8 @@ static void test_linebuf_crlf_split(CuTe
     } while(!APR_STATUS_IS_EOF(status));
 
     CuAssert(tc, "Read less data than expected.", strlen(expected) == 0);
+
+    serf_bucket_destroy(bkt);
 }
 
 /* Test that the Content-Length header will be ignored when the response
@@ -1269,6 +1271,8 @@ static void test_response_no_body_expect
     CuAssertIntEquals(tc, APR_EOF, status);
     CuAssertIntEquals(tc, 0, len);
 
+    serf_bucket_destroy(bkt);
+
     /* Test 2: a response with status for which server must not send a body. */
     for (i = 0; i < sizeof(message_list) / sizeof(const char*); i++) {
 
@@ -1279,6 +1283,8 @@ static void test_response_no_body_expect
 
         CuAssertIntEquals(tc, APR_EOF, status);
         CuAssertIntEquals(tc, 0, len);
+
+        serf_bucket_destroy(bkt);
     }
 }
 
@@ -1455,6 +1461,8 @@ static void test_random_eagain_in_respon
         } while(!APR_STATUS_IS_EOF(status));
 
         CuAssert(tc, "Read less data than expected.", strlen(ptr) == 0);
+
+        serf_bucket_destroy(bkt);
     }
     apr_pool_destroy(iter_pool);
 }
@@ -1953,6 +1961,9 @@ static void test_prefix_buckets(CuTest *
     CuAssertIntEquals(tc, 15, pb.len);
     CuAssertStrEquals(tc, "123456789012345", pb.data);
 
+    serf_bucket_mem_free(alloc, pb.data);
+    serf_bucket_destroy(prefix);
+
     /* Then more than first chunk*/
     bkt = SERF_BUCKET_SIMPLE_STRING(BODY, alloc);
     serf_bucket_aggregate_append(agg, bkt);
@@ -1967,6 +1978,9 @@ static void test_prefix_buckets(CuTest *
     CuAssertIntEquals(tc, 25, pb.len);
     CuAssertStrEquals(tc, "1234567890123456789012345", pb.data);
 
+    serf_bucket_mem_free(alloc, pb.data);
+    serf_bucket_destroy(prefix);
+
     /* And an early EOF */
     bkt = SERF_BUCKET_SIMPLE_STRING(BODY, alloc);
     serf_bucket_aggregate_append(agg, bkt);
@@ -1980,6 +1994,9 @@ static void test_prefix_buckets(CuTest *
     CuAssertIntEquals(tc, 0, len);
     CuAssertIntEquals(tc, 20, pb.len);
     CuAssertStrEquals(tc, "12345678901234567890", pb.data);
+
+    serf_bucket_mem_free(alloc, pb.data);
+    serf_bucket_destroy(prefix);
 }
 
 /* Basic test for unframe buckets. */
@@ -2041,6 +2058,10 @@ static void test_http2_unframe_buckets(C
     CuAssertIntEquals(tc, 0, flags);
   }
 
+  serf_bucket_destroy(unframe);
+  /* http2_unframe() bucket doesn't destroy inner stream bucket. */
+  serf_bucket_destroy(raw);
+
   raw = serf_bucket_simple_create(raw_frame2, sizeof(raw_frame2),
                                   NULL, NULL, alloc);
 
@@ -2067,6 +2088,10 @@ static void test_http2_unframe_buckets(C
     CuAssertIntEquals(tc, 0x02, flags);
   }
 
+  serf_bucket_destroy(unframe);
+  /* http2_unframe() bucket doesn't destroy inner stream bucket. */
+  serf_bucket_destroy(raw);
+
   /* And now check the frame oversized error */
   raw = serf_bucket_simple_create(raw_frame2, sizeof(raw_frame2),
                                   NULL, NULL, alloc);
@@ -2075,6 +2100,10 @@ static void test_http2_unframe_buckets(C
 
   status = read_all(unframe, result2, sizeof(result2), &read_len);
   CuAssertIntEquals(tc, SERF_ERROR_HTTP2_FRAME_SIZE_ERROR, status);
+
+  serf_bucket_destroy(unframe);
+  /* http2_unframe() bucket doesn't destroy inner stream bucket. */
+  serf_bucket_destroy(raw);
 }
 
 /* Basic test for unframe buckets. */
@@ -2132,10 +2161,18 @@ static void test_http2_unpad_buckets(CuT
 
   read_and_check_bucket(tc, raw, "Extra");
 
+  /* This is also destroy UNFRAME bucket. */
+  serf_bucket_destroy(unpad);
+
+  /* http2_unframe() bucket doesn't destroy inner stream bucket. */
+  serf_bucket_destroy(raw);
+
   raw = serf_bucket_simple_create("\0a", 2, NULL, NULL, alloc);
   unpad = serf__bucket_http2_unpad_create(raw, alloc);
   read_and_check_bucket(tc, unpad, "a");
 
+  serf_bucket_destroy(unpad);
+
   raw = serf_bucket_simple_create("\5a", 2, NULL, NULL, alloc);
   unpad = serf__bucket_http2_unpad_create(raw, alloc);
 
@@ -2147,6 +2184,7 @@ static void test_http2_unpad_buckets(CuT
                       serf_bucket_read(unpad, SERF_READ_ALL_AVAIL,
                                        &data, &sz));
   }
+  serf_bucket_destroy(unpad);
 }
 
 static void test_hpack_huffman_decode(CuTest *tc)
@@ -2427,6 +2465,9 @@ static void test_http2_frame_bucket_basi
     CuAssertIntEquals(tc, 0, sz);
   }
 
+  /* http2 unframe bucket uses non-standard semantic and doesn't
+   * destroy source stream bucket on desotry. */
+  serf_bucket_destroy(frame_in);
   serf_bucket_destroy(frame_out);
 }
 


Reply via email to