Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 79A237437 for ; Wed, 26 Oct 2011 18:08:43 +0000 (UTC) Received: (qmail 36732 invoked by uid 500); 26 Oct 2011 18:08:43 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 36693 invoked by uid 500); 26 Oct 2011 18:08:43 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 36686 invoked by uid 99); 26 Oct 2011 18:08:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Oct 2011 18:08:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.114] (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Oct 2011 18:08:37 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 7678C54499; Wed, 26 Oct 2011 18:05:33 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: kocolosk@apache.org To: commits@couchdb.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [30/50] git commit: Remove usage of http module from etap tests Message-Id: <20111026180533.7678C54499@tyr.zones.apache.org> Date: Wed, 26 Oct 2011 18:05:33 +0000 (UTC) X-Virus-Checked: Checked by ClamAV on apache.org Remove usage of http module from etap tests This module is deprecated in OTP R15, which is going to be released by the end of this year. The etap tests now use ibrowse instead. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1177459 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/f041f63d Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/f041f63d Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/f041f63d Branch: refs/heads/1319-large-headers-are-corrupted Commit: f041f63d58315f536f77d63fb9a40b925f5b841b Parents: 1655280 Author: Filipe David Borba Manana Authored: Thu Sep 29 23:31:40 2011 +0000 Committer: Filipe David Borba Manana Committed: Thu Sep 29 23:31:40 2011 +0000 ---------------------------------------------------------------------- test/etap/072-cleanup.t | 8 +- test/etap/140-attachment-comp.t | 331 ++++++++++++--------------- test/etap/150-invalid-view-seq.t | 15 +- test/etap/200-view-group-no-db-leaks.t | 33 +-- test/etap/220-compaction-daemon.t | 8 +- test/etap/test_util.erl.in | 30 +++ 6 files changed, 192 insertions(+), 233 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/f041f63d/test/etap/072-cleanup.t ---------------------------------------------------------------------- diff --git a/test/etap/072-cleanup.t b/test/etap/072-cleanup.t index 79cf375..bd420f4 100755 --- a/test/etap/072-cleanup.t +++ b/test/etap/072-cleanup.t @@ -41,7 +41,6 @@ main(_) -> test() -> {ok, _} = couch_server_sup:start_link(test_util:config_files()), - ok = application:start(inets), couch_server:delete(?TEST_DB, []), timer:sleep(1000), @@ -110,11 +109,8 @@ db_url() -> binary_to_list(?TEST_DB). query_view(DDoc, View) -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( - get, - {db_url() ++ "/_design/" ++ DDoc ++ "/_view/" ++ View, []}, - [], - [{sync, true}]), + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/_design/" ++ DDoc ++ "/_view/" ++ View, [], get), etap:is(Code, 200, "Built view index for " ++ DDoc ++ "."), ok. http://git-wip-us.apache.org/repos/asf/couchdb/blob/f041f63d/test/etap/140-attachment-comp.t ---------------------------------------------------------------------- diff --git a/test/etap/140-attachment-comp.t b/test/etap/140-attachment-comp.t index 7b0e6f7..2b082c2 100755 --- a/test/etap/140-attachment-comp.t +++ b/test/etap/140-attachment-comp.t @@ -33,7 +33,6 @@ test() -> couch_server_sup:start_link(test_util:config_files()), put(addr, couch_config:get("httpd", "bind_address", "127.0.0.1")), put(port, integer_to_list(mochiweb_socket_server:get(couch_httpd, port))), - application:start(inets), timer:sleep(1000), couch_server:delete(test_db_name(), []), couch_db:create(test_db_name(), []), @@ -84,22 +83,20 @@ db_url() -> binary_to_list(test_db_name()). create_1st_text_att() -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/testdoc1/readme.txt", + [{"Content-Type", "text/plain"}], put, - {db_url() ++ "/testdoc1/readme.txt", [], - "text/plain", test_text_data()}, - [], - [{sync, true}]), + test_text_data()), etap:is(Code, 201, "Created text attachment using the standalone api"), ok. create_1st_png_att() -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/testdoc2/icon.png", + [{"Content-Type", "image/png"}], put, - {db_url() ++ "/testdoc2/icon.png", [], - "image/png", test_png_data()}, - [], - [{sync, true}]), + test_png_data()), etap:is(Code, 201, "Created png attachment using the standalone api"), ok. @@ -113,12 +110,11 @@ create_2nd_text_att() -> ]} }]}} ]}, - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/testdoc3", + [{"Content-Type", "application/json"}], put, - {db_url() ++ "/testdoc3", [], - "application/json", ejson:encode(DocJson)}, - [], - [{sync, true}]), + ejson:encode(DocJson)), etap:is(Code, 201, "Created text attachment using the non-standalone api"), ok. @@ -132,22 +128,20 @@ create_2nd_png_att() -> ]} }]}} ]}, - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/testdoc4", + [{"Content-Type", "application/json"}], put, - {db_url() ++ "/testdoc4", [], - "application/json", ejson:encode(DocJson)}, - [], - [{sync, true}]), + ejson:encode(DocJson)), etap:is(Code, 201, "Created png attachment using the non-standalone api"), ok. create_already_compressed_att(DocUri, AttName) -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( + {ok, Code, _Headers, _Body} = test_util:request( + DocUri ++ "/" ++ AttName, + [{"Content-Type", "text/plain"}, {"Content-Encoding", "gzip"}], put, - {DocUri ++ "/" ++ AttName, [{"Content-Encoding", "gzip"}], - "text/plain", zlib:gzip(test_text_data())}, - [], - [{sync, true}]), + zlib:gzip(test_text_data())), etap:is( Code, 201, @@ -183,15 +177,14 @@ tests_for_2nd_png_att() -> test_2nd_png_att_stub(). test_get_1st_text_att_with_accept_encoding_gzip() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc1/readme.txt", [{"Accept-Encoding", "gzip"}]}, - [], - [{sync, true}]), + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc1/readme.txt", + [{"Accept-Encoding", "gzip"}], + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, true, "received body is gziped"), - Uncompressed = binary_to_list(zlib:gunzip(list_to_binary(Body))), + Uncompressed = zlib:gunzip(iolist_to_binary(Body)), etap:is( Uncompressed, test_text_data(), @@ -200,46 +193,42 @@ test_get_1st_text_att_with_accept_encoding_gzip() -> ok. test_get_1st_text_att_without_accept_encoding_header() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc1/readme.txt", []}, + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc1/readme.txt", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, false, "received body is not gziped"), etap:is( - Body, + iolist_to_binary(Body), test_text_data(), "received data for the 1st text attachment is ok" ), ok. test_get_1st_text_att_with_accept_encoding_deflate() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc1/readme.txt", [{"Accept-Encoding", "deflate"}]}, - [], - [{sync, true}]), + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc1/readme.txt", + [{"Accept-Encoding", "deflate"}], + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, false, "received body is not gziped"), - Deflated = lists:member({"content-encoding", "deflate"}, Headers), + Deflated = lists:member({"Content-Encoding", "deflate"}, Headers), etap:is(Deflated, false, "received body is not deflated"), etap:is( - Body, + iolist_to_binary(Body), test_text_data(), "received data for the 1st text attachment is ok" ), ok. test_get_1st_text_att_with_accept_encoding_deflate_only() -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( - get, - {db_url() ++ "/testdoc1/readme.txt", - [{"Accept-Encoding", "deflate, *;q=0"}]}, - [], - [{sync, true}]), + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/testdoc1/readme.txt", + [{"Accept-Encoding", "deflate, *;q=0"}], + get), etap:is( Code, 406, @@ -248,60 +237,55 @@ test_get_1st_text_att_with_accept_encoding_deflate_only() -> ok. test_get_1st_png_att_without_accept_encoding_header() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc2/icon.png", []}, + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc2/icon.png", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), - Encoding = couch_util:get_value("content-encoding", Headers), + Encoding = couch_util:get_value("Content-Encoding", Headers), etap:is(Encoding, undefined, "received body is not gziped"), etap:is( - Body, + iolist_to_binary(Body), test_png_data(), "received data for the 1st png attachment is ok" ), ok. test_get_1st_png_att_with_accept_encoding_gzip() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc2/icon.png", [{"Accept-Encoding", "gzip"}]}, - [], - [{sync, true}]), + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc2/icon.png", + [{"Accept-Encoding", "gzip"}], + get), etap:is(Code, 200, "HTTP response code is 200"), - Encoding = couch_util:get_value("content-encoding", Headers), + Encoding = couch_util:get_value("Content-Encoding", Headers), etap:is(Encoding, undefined, "received body is not gziped"), etap:is( - Body, + iolist_to_binary(Body), test_png_data(), "received data for the 1st png attachment is ok" ), ok. test_get_1st_png_att_with_accept_encoding_deflate() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc2/icon.png", [{"Accept-Encoding", "deflate"}]}, - [], - [{sync, true}]), + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc2/icon.png", + [{"Accept-Encoding", "deflate"}], + get), etap:is(Code, 200, "HTTP response code is 200"), - Encoding = couch_util:get_value("content-encoding", Headers), + Encoding = couch_util:get_value("Content-Encoding", Headers), etap:is(Encoding, undefined, "received body is in identity form"), etap:is( - Body, + iolist_to_binary(Body), test_png_data(), "received data for the 1st png attachment is ok" ), ok. test_get_doc_with_1st_text_att() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc1?attachments=true", - [{"Accept", "application/json"}]}, - [], - [{sync, true}]), + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc1?attachments=true", + [{"Accept", "application/json"}], + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), TextAttJson = couch_util:get_nested_json_value( @@ -331,11 +315,10 @@ test_get_doc_with_1st_text_att() -> ok. test_1st_text_att_stub() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc1?att_encoding_info=true", []}, + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc1?att_encoding_info=true", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), {TextAttJson} = couch_util:get_nested_json_value( @@ -345,7 +328,7 @@ test_1st_text_att_stub() -> TextAttLength = couch_util:get_value(<<"length">>, TextAttJson), etap:is( TextAttLength, - length(test_text_data()), + byte_size(test_text_data()), "1st text attachment stub length matches the uncompressed length" ), TextAttEncoding = couch_util:get_value(<<"encoding">>, TextAttJson), @@ -363,12 +346,10 @@ test_1st_text_att_stub() -> ok. test_get_doc_with_1st_png_att() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc2?attachments=true", - [{"Accept", "application/json"}]}, - [], - [{sync, true}]), + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc2?attachments=true", + [{"Accept", "application/json"}], + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), PngAttJson = couch_util:get_nested_json_value( @@ -392,11 +373,10 @@ test_get_doc_with_1st_png_att() -> ok. test_1st_png_att_stub() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc2?att_encoding_info=true", []}, - [], - [{sync, true}]), + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc2?att_encoding_info=true", + [{"Accept", "application/json"}], + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), {PngAttJson} = couch_util:get_nested_json_value( @@ -406,7 +386,7 @@ test_1st_png_att_stub() -> PngAttLength = couch_util:get_value(<<"length">>, PngAttJson), etap:is( PngAttLength, - length(test_png_data()), + byte_size(test_png_data()), "1st png attachment stub length matches the uncompressed length" ), PngEncoding = couch_util:get_value(<<"encoding">>, PngAttJson), @@ -424,15 +404,14 @@ test_1st_png_att_stub() -> ok. test_get_2nd_text_att_with_accept_encoding_gzip() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc3/readme.txt", [{"Accept-Encoding", "gzip"}]}, - [], - [{sync, true}]), + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc3/readme.txt", + [{"Accept-Encoding", "gzip"}], + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, true, "received body is gziped"), - Uncompressed = binary_to_list(zlib:gunzip(list_to_binary(Body))), + Uncompressed = zlib:gunzip(iolist_to_binary(Body)), etap:is( Uncompressed, test_text_data(), @@ -441,13 +420,12 @@ test_get_2nd_text_att_with_accept_encoding_gzip() -> ok. test_get_2nd_text_att_without_accept_encoding_header() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc3/readme.txt", []}, + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc3/readme.txt", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, false, "received body is not gziped"), etap:is( Body, @@ -457,13 +435,12 @@ test_get_2nd_text_att_without_accept_encoding_header() -> ok. test_get_2nd_png_att_without_accept_encoding_header() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc4/icon.png", []}, + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc4/icon.png", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, false, "received body is not gziped"), etap:is( Body, @@ -473,13 +450,12 @@ test_get_2nd_png_att_without_accept_encoding_header() -> ok. test_get_2nd_png_att_with_accept_encoding_gzip() -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc4/icon.png", [{"Accept-Encoding", "gzip"}]}, - [], - [{sync, true}]), + {ok, Code, Headers, Body} = test_util:request( + db_url() ++ "/testdoc4/icon.png", + [{"Accept-Encoding", "gzip"}], + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, false, "received body is not gziped"), etap:is( Body, @@ -489,12 +465,10 @@ test_get_2nd_png_att_with_accept_encoding_gzip() -> ok. test_get_doc_with_2nd_text_att() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc3?attachments=true", - [{"Accept", "application/json"}]}, - [], - [{sync, true}]), + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc3?attachments=true", + [{"Accept", "application/json"}], + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), TextAttJson = couch_util:get_nested_json_value( @@ -520,11 +494,10 @@ test_get_doc_with_2nd_text_att() -> ok. test_2nd_text_att_stub() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc3?att_encoding_info=true", []}, + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc3?att_encoding_info=true", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), {TextAttJson} = couch_util:get_nested_json_value( @@ -534,7 +507,7 @@ test_2nd_text_att_stub() -> TextAttLength = couch_util:get_value(<<"length">>, TextAttJson), etap:is( TextAttLength, - length(test_text_data()), + byte_size(test_text_data()), "2nd text attachment stub length matches the uncompressed length" ), TextAttEncoding = couch_util:get_value(<<"encoding">>, TextAttJson), @@ -552,12 +525,10 @@ test_2nd_text_att_stub() -> ok. test_get_doc_with_2nd_png_att() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc4?attachments=true", - [{"Accept", "application/json"}]}, - [], - [{sync, true}]), + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc4?attachments=true", + [{"Accept", "application/json"}], + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), PngAttJson = couch_util:get_nested_json_value( @@ -581,11 +552,10 @@ test_get_doc_with_2nd_png_att() -> ok. test_2nd_png_att_stub() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/testdoc4?att_encoding_info=true", []}, + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/testdoc4?att_encoding_info=true", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), {PngAttJson} = couch_util:get_nested_json_value( @@ -595,7 +565,7 @@ test_2nd_png_att_stub() -> PngAttLength = couch_util:get_value(<<"length">>, PngAttJson), etap:is( PngAttLength, - length(test_png_data()), + byte_size(test_png_data()), "2nd png attachment stub length matches the uncompressed length" ), PngEncoding = couch_util:get_value(<<"encoding">>, PngAttJson), @@ -618,43 +588,40 @@ test_already_compressed_att(DocUri, AttName) -> test_get_already_compressed_att_stub(DocUri, AttName). test_get_already_compressed_att_with_accept_gzip(DocUri, AttName) -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {DocUri ++ "/" ++ AttName, [{"Accept-Encoding", "gzip"}]}, - [], - [{sync, true}]), + {ok, Code, Headers, Body} = test_util:request( + DocUri ++ "/" ++ AttName, + [{"Accept-Encoding", "gzip"}], + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, true, "received body is gziped"), etap:is( - iolist_to_binary(Body), - iolist_to_binary(zlib:gzip(test_text_data())), + Body, + zlib:gzip(test_text_data()), "received data for the already compressed attachment is ok" ), ok. test_get_already_compressed_att_without_accept(DocUri, AttName) -> - {ok, {{_, Code, _}, Headers, Body}} = http:request( - get, - {DocUri ++ "/" ++ AttName, []}, + {ok, Code, Headers, Body} = test_util:request( + DocUri ++ "/" ++ AttName, [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers), etap:is(Gziped, false, "received body is not gziped"), etap:is( - iolist_to_binary(Body), - iolist_to_binary(test_text_data()), + Body, + test_text_data(), "received data for the already compressed attachment is ok" ), ok. test_get_already_compressed_att_stub(DocUri, AttName) -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {DocUri ++ "?att_encoding_info=true", []}, + {ok, Code, _Headers, Body} = test_util:request( + DocUri ++ "?att_encoding_info=true", [], - [{sync, true}]), + get), etap:is(Code, 200, "HTTP response code is 200"), Json = ejson:decode(Body), {AttJson} = couch_util:get_nested_json_value( @@ -685,12 +652,11 @@ test_get_already_compressed_att_stub(DocUri, AttName) -> test_create_already_compressed_att_with_invalid_content_encoding( DocUri, AttName, AttData, Encoding) -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( + {ok, Code, _Headers, _Body} = test_util:request( + DocUri ++ "/" ++ AttName, + [{"Content-Encoding", Encoding}, {"Content-Type", "text/plain"}], put, - {DocUri ++ "/" ++ AttName, [{"Content-Encoding", Encoding}], - "text/plain", AttData}, - [], - [{sync, true}]), + AttData), etap:is( Code, 415, @@ -700,29 +666,26 @@ test_create_already_compressed_att_with_invalid_content_encoding( ok. test_compressible_type_with_parameters() -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/testdoc5/readme.txt", + [{"Content-Type", "text/plain; charset=UTF-8"}], put, - {db_url() ++ "/testdoc5/readme.txt", [], - "text/plain; charset=UTF-8", test_text_data()}, - [], - [{sync, true}]), + test_text_data()), etap:is(Code, 201, "Created text attachment with MIME type " "'text/plain; charset=UTF-8' using the standalone api"), - {ok, {{_, Code2, _}, Headers2, Body}} = http:request( - get, - {db_url() ++ "/testdoc5/readme.txt", [{"Accept-Encoding", "gzip"}]}, - [], - [{sync, true}]), + {ok, Code2, Headers2, Body} = test_util:request( + db_url() ++ "/testdoc5/readme.txt", + [{"Accept-Encoding", "gzip"}], + get), etap:is(Code2, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers2), + Gziped = lists:member({"Content-Encoding", "gzip"}, Headers2), etap:is(Gziped, true, "received body is gziped"), - Uncompressed = binary_to_list(zlib:gunzip(list_to_binary(Body))), + Uncompressed = zlib:gunzip(iolist_to_binary(Body)), etap:is(Uncompressed, test_text_data(), "received data is gzipped"), - {ok, {{_, Code3, _}, _Headers3, Body3}} = http:request( - get, - {db_url() ++ "/testdoc5?att_encoding_info=true", []}, + {ok, Code3, _Headers3, Body3} = test_util:request( + db_url() ++ "/testdoc5?att_encoding_info=true", [], - [{sync, true}]), + get), etap:is(Code3, 200, "HTTP response code is 200"), Json = ejson:decode(Body3), {TextAttJson} = couch_util:get_nested_json_value( @@ -732,7 +695,7 @@ test_compressible_type_with_parameters() -> TextAttLength = couch_util:get_value(<<"length">>, TextAttJson), etap:is( TextAttLength, - length(test_text_data()), + byte_size(test_text_data()), "text attachment stub length matches the uncompressed length" ), TextAttEncoding = couch_util:get_value(<<"encoding">>, TextAttJson), @@ -753,10 +716,10 @@ test_png_data() -> {ok, Data} = file:read_file( test_util:source_file("share/www/image/logo.png") ), - binary_to_list(Data). + Data. test_text_data() -> {ok, Data} = file:read_file( test_util:source_file("README") ), - binary_to_list(Data). + Data. http://git-wip-us.apache.org/repos/asf/couchdb/blob/f041f63d/test/etap/150-invalid-view-seq.t ---------------------------------------------------------------------- diff --git a/test/etap/150-invalid-view-seq.t b/test/etap/150-invalid-view-seq.t index 6270c2f..681875a 100755 --- a/test/etap/150-invalid-view-seq.t +++ b/test/etap/150-invalid-view-seq.t @@ -52,7 +52,6 @@ test() -> put(addr, couch_config:get("httpd", "bind_address", "127.0.0.1")), put(port, integer_to_list(mochiweb_socket_server:get(couch_httpd, port))), - application:start(inets), create_new_doc(), query_view_before_restore_backup(), @@ -133,11 +132,8 @@ db_url() -> binary_to_list(test_db_name()). query_view_before_restore_backup() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/_design/foo/_view/bar", []}, - [], - [{sync, true}]), + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/_design/foo/_view/bar", [], get), etap:is(Code, 200, "Got view response before restoring backup."), ViewJson = ejson:decode(Body), Rows = couch_util:get_nested_json_value(ViewJson, [<<"rows">>]), @@ -171,11 +167,8 @@ restore_backup_db_file() -> ok. query_view_after_restore_backup() -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/_design/foo/_view/bar", []}, - [], - [{sync, true}]), + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/_design/foo/_view/bar", [], get), etap:is(Code, 200, "Got view response after restoring backup."), ViewJson = ejson:decode(Body), Rows = couch_util:get_nested_json_value(ViewJson, [<<"rows">>]), http://git-wip-us.apache.org/repos/asf/couchdb/blob/f041f63d/test/etap/200-view-group-no-db-leaks.t ---------------------------------------------------------------------- diff --git a/test/etap/200-view-group-no-db-leaks.t b/test/etap/200-view-group-no-db-leaks.t index 20be0d4..7ad7439 100755 --- a/test/etap/200-view-group-no-db-leaks.t +++ b/test/etap/200-view-group-no-db-leaks.t @@ -19,21 +19,6 @@ handler }). --define(LATEST_DISK_VERSION, 6). - --record(db_header, - {disk_version = ?LATEST_DISK_VERSION, - update_seq = 0, - unused = 0, - fulldocinfo_by_id_btree_state = nil, - docinfo_by_seq_btree_state = nil, - local_docs_btree_state = nil, - purge_seq = 0, - purged_docs = nil, - security_ptr = nil, - revs_limit = 1000 -}). - -record(db, { main_pid = nil, update_pid = nil, @@ -42,7 +27,7 @@ fd, updater_fd, fd_ref_counter, - header = #db_header{}, + header = nil, committed_update_seq, fulldocinfo_by_id_btree, docinfo_by_seq_btree, @@ -82,7 +67,6 @@ test() -> timer:sleep(1000), put(addr, couch_config:get("httpd", "bind_address", "127.0.0.1")), put(port, integer_to_list(mochiweb_socket_server:get(couch_httpd, port))), - application:start(inets), delete_db(), create_db(), @@ -177,11 +161,10 @@ compact_view_group() -> wait_view_compact_done(0) -> etap:bail("View group compaction failed to finish."); wait_view_compact_done(N) -> - {ok, {{_, Code, _}, _Headers, Body}} = http:request( - get, - {db_url() ++ "/_design/" ++ binary_to_list(ddoc_name()) ++ "/_info", []}, + {ok, Code, _Headers, Body} = test_util:request( + db_url() ++ "/_design/" ++ binary_to_list(ddoc_name()) ++ "/_info", [], - [{sync, true}]), + get), case Code of 200 -> ok; _ -> etap:bail("Invalid view group info.") @@ -258,11 +241,9 @@ db_url() -> binary_to_list(test_db_name()). query_view() -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( - get, - {db_url() ++ "/_design/" ++ binary_to_list(ddoc_name()) ++ - "/_view/bar", []}, + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/_design/" ++ binary_to_list(ddoc_name()) ++ "/_view/bar", [], - [{sync, true}]), + get), etap:is(Code, 200, "got view response"), ok. http://git-wip-us.apache.org/repos/asf/couchdb/blob/f041f63d/test/etap/220-compaction-daemon.t ---------------------------------------------------------------------- diff --git a/test/etap/220-compaction-daemon.t b/test/etap/220-compaction-daemon.t index db606c0..4c63b66 100755 --- a/test/etap/220-compaction-daemon.t +++ b/test/etap/220-compaction-daemon.t @@ -40,7 +40,6 @@ test() -> timer:sleep(1000), put(addr, couch_config:get("httpd", "bind_address", "127.0.0.1")), put(port, integer_to_list(mochiweb_socket_server:get(couch_httpd, port))), - application:start(inets), disable_compact_daemon(), @@ -175,11 +174,8 @@ db_url() -> binary_to_list(test_db_name()). query_view() -> - {ok, {{_, Code, _}, _Headers, _Body}} = http:request( - get, - {db_url() ++ "/_design/foo/_view/foo", []}, - [], - [{sync, true}]), + {ok, Code, _Headers, _Body} = test_util:request( + db_url() ++ "/_design/foo/_view/foo", [], get), case Code of 200 -> ok; http://git-wip-us.apache.org/repos/asf/couchdb/blob/f041f63d/test/etap/test_util.erl.in ---------------------------------------------------------------------- diff --git a/test/etap/test_util.erl.in b/test/etap/test_util.erl.in index aba8cc7..92b9208 100644 --- a/test/etap/test_util.erl.in +++ b/test/etap/test_util.erl.in @@ -15,6 +15,7 @@ -export([init_code_path/0]). -export([source_file/1, build_file/1, config_files/0]). -export([run/2]). +-export([request/3, request/4]). srcdir() -> "@abs_top_srcdir@". @@ -62,3 +63,32 @@ run(Plan, Fun) -> etap:bail(Other) end, ok. + + +request(Url, Headers, Method) -> + request(Url, Headers, Method, []). + +request(Url, Headers, Method, Body) -> + request(Url, Headers, Method, Body, 3). + +request(_Url, _Headers, _Method, _Body, 0) -> + {error, request_failed}; +request(Url, Headers, Method, Body, N) -> + case code:is_loaded(ibrowse) of + false -> + {ok, _} = ibrowse:start(); + _ -> + ok + end, + case ibrowse:send_req(Url, Headers, Method, Body) of + {ok, Code0, RespHeaders, RespBody0} -> + Code = list_to_integer(Code0), + RespBody = iolist_to_binary(RespBody0), + {ok, Code, RespHeaders, RespBody}; + {error, {'EXIT', {normal, _}}} -> + % Connection closed right after a successful request that + % used the same connection. + request(Url, Headers, Method, Body, N - 1); + Error -> + Error + end.