You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2011/10/26 20:05:33 UTC
[30/50] git commit: Remove usage of http module from etap tests
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 <fd...@apache.org>
Authored: Thu Sep 29 23:31:40 2011 +0000
Committer: Filipe David Borba Manana <fd...@apache.org>
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.