diff options
author | Alexander Shorin <kxepal@apache.org> | 2014-06-03 14:10:25 +0400 |
---|---|---|
committer | Alexander Shorin <kxepal@apache.org> | 2014-06-16 16:00:56 +0400 |
commit | c6ddc35a3619702f1dd1430201e82e2ff21a6778 (patch) | |
tree | 7fbd0f1fb6e668ae73e37473494e29c11dee1b6f | |
parent | cd49092532205a1ab85bfdf687219db9856e0b80 (diff) | |
download | couchdb-c6ddc35a3619702f1dd1430201e82e2ff21a6778.tar.gz |
Port 171-os-daemons-config.t etap test suite to eunit
Merged into couchdb_os_daemons_tests suite.
-rw-r--r-- | test/couchdb/Makefile.am | 1 | ||||
-rw-r--r-- | test/couchdb/couch_auth_cache_tests.erl | 40 | ||||
-rw-r--r-- | test/couchdb/couchdb_os_daemons_tests.erl | 21 | ||||
-rwxr-xr-x | test/couchdb/fixtures/os_daemon_configer.escript (renamed from test/etap/171-os-daemons-config.es) | 32 | ||||
-rwxr-xr-x | test/etap/171-os-daemons-config.t | 74 | ||||
-rw-r--r-- | test/etap/Makefile.am | 2 |
6 files changed, 62 insertions, 108 deletions
diff --git a/test/couchdb/Makefile.am b/test/couchdb/Makefile.am index c530db28d..77d7bfd28 100644 --- a/test/couchdb/Makefile.am +++ b/test/couchdb/Makefile.am @@ -50,6 +50,7 @@ fixture_files = \ fixtures/couch_stats_aggregates.cfg \ fixtures/couch_stats_aggregates.ini \ fixtures/os_daemon_looper.escript \ + fixtures/os_daemon_configer.escript \ fixtures/logo.png EXTRA_DIST = \ diff --git a/test/couchdb/couch_auth_cache_tests.erl b/test/couchdb/couch_auth_cache_tests.erl index 34f712742..3b2321caa 100644 --- a/test/couchdb/couch_auth_cache_tests.erl +++ b/test/couchdb/couch_auth_cache_tests.erl @@ -74,47 +74,43 @@ should_get_nil_on_missed_cache(_) -> ?_assertEqual(nil, couch_auth_cache:get_user_creds("joe")). should_get_right_password_hash(DbName) -> - ?_assert(begin + ?_test(begin PasswordHash = hash_password("pass1"), {ok, _} = update_user_doc(DbName, "joe", "pass1"), Creds = couch_auth_cache:get_user_creds("joe"), ?assertEqual(PasswordHash, - couch_util:get_value(<<"password_sha">>, Creds)), - true + couch_util:get_value(<<"password_sha">>, Creds)) end). should_ensure_doc_hash_equals_cached_one(DbName) -> - ?_assert(begin + ?_test(begin {ok, _} = update_user_doc(DbName, "joe", "pass1"), Creds = couch_auth_cache:get_user_creds("joe"), CachedHash = couch_util:get_value(<<"password_sha">>, Creds), StoredHash = get_user_doc_password_sha(DbName, "joe"), - ?assertEqual(StoredHash, CachedHash), - true + ?assertEqual(StoredHash, CachedHash) end). should_update_password(DbName) -> - ?_assert(begin + ?_test(begin PasswordHash = hash_password("pass2"), {ok, Rev} = update_user_doc(DbName, "joe", "pass1"), {ok, _} = update_user_doc(DbName, "joe", "pass2", Rev), Creds = couch_auth_cache:get_user_creds("joe"), ?assertEqual(PasswordHash, - couch_util:get_value(<<"password_sha">>, Creds)), - true + couch_util:get_value(<<"password_sha">>, Creds)) end). should_cleanup_cache_after_userdoc_deletion(DbName) -> - ?_assert(begin + ?_test(begin {ok, _} = update_user_doc(DbName, "joe", "pass1"), delete_user_doc(DbName, "joe"), - ?assertEqual(nil, couch_auth_cache:get_user_creds("joe")), - true + ?assertEqual(nil, couch_auth_cache:get_user_creds("joe")) end). should_restore_cache_after_userdoc_recreation(DbName) -> - ?_assert(begin + ?_test(begin PasswordHash = hash_password("pass5"), {ok, _} = update_user_doc(DbName, "joe", "pass1"), delete_user_doc(DbName, "joe"), @@ -124,22 +120,20 @@ should_restore_cache_after_userdoc_recreation(DbName) -> Creds = couch_auth_cache:get_user_creds("joe"), ?assertEqual(PasswordHash, - couch_util:get_value(<<"password_sha">>, Creds)), - true + couch_util:get_value(<<"password_sha">>, Creds)) end). should_drop_cache_on_auth_db_change(DbName) -> - ?_assert(begin + ?_test(begin {ok, _} = update_user_doc(DbName, "joe", "pass1"), full_commit(DbName), couch_config:set("couch_httpd_auth", "authentication_db", ?b2l(?tempdb()), false), - ?assertEqual(nil, couch_auth_cache:get_user_creds("joe")), - true + ?assertEqual(nil, couch_auth_cache:get_user_creds("joe")) end). should_restore_cache_on_auth_db_change(DbName) -> - ?_assert(begin + ?_test(begin PasswordHash = hash_password("pass1"), {ok, _} = update_user_doc(DbName, "joe", "pass1"), Creds = couch_auth_cache:get_user_creds("joe"), @@ -157,20 +151,18 @@ should_restore_cache_on_auth_db_change(DbName) -> Creds = couch_auth_cache:get_user_creds("joe"), ?assertEqual(PasswordHash, - couch_util:get_value(<<"password_sha">>, Creds)), - true + couch_util:get_value(<<"password_sha">>, Creds)) end). should_recover_cache_after_shutdown(DbName) -> - ?_assert(begin + ?_test(begin PasswordHash = hash_password("pass2"), {ok, Rev0} = update_user_doc(DbName, "joe", "pass1"), {ok, Rev1} = update_user_doc(DbName, "joe", "pass2", Rev0), full_commit(DbName), shutdown_db(DbName), {ok, Rev1} = get_doc_rev(DbName, "joe"), - ?assertEqual(PasswordHash, get_user_doc_password_sha(DbName, "joe")), - true + ?assertEqual(PasswordHash, get_user_doc_password_sha(DbName, "joe")) end). diff --git a/test/couchdb/couchdb_os_daemons_tests.erl b/test/couchdb/couchdb_os_daemons_tests.erl index 1f9f6be02..dd07e820f 100644 --- a/test/couchdb/couchdb_os_daemons_tests.erl +++ b/test/couchdb/couchdb_os_daemons_tests.erl @@ -26,6 +26,7 @@ buf=[] }). +-define(DAEMON_CONFIGER, "os_daemon_configer.escript"). -define(DAEMON_LOOPER, "os_daemon_looper.escript"). -define(DELAY, 100). -define(TIMEOUT, 1000). @@ -75,6 +76,17 @@ os_daemons_test_() -> } }. +configuration_reader_test_() -> + { + "OS Daemon requests CouchDB configuration", + { + foreachx, + fun setup/1, fun teardown/2, + [{?DAEMON_CONFIGER, + fun should_read_write_config_settings_by_daemon/2}] + } + }. + should_check_daemon(DName, _) -> ?_test(begin @@ -133,6 +145,15 @@ should_keep_alive_one_daemon_on_killing_other(DName, _) -> check_daemon(T, DName) end). +should_read_write_config_settings_by_daemon(DName, _) -> + ?_test(begin + % have to wait till daemon run all his tests + % see daemon's script for more info + timer:sleep(?TIMEOUT), + {ok, [D]} = couch_os_daemons:info([table]), + check_daemon(D, DName) + end). + check_daemon(D) -> check_daemon(D, D#daemon.name). diff --git a/test/etap/171-os-daemons-config.es b/test/couchdb/fixtures/os_daemon_configer.escript index b4a914e61..d437423e4 100755 --- a/test/etap/171-os-daemons-config.es +++ b/test/couchdb/fixtures/os_daemon_configer.escript @@ -12,8 +12,8 @@ % License for the specific language governing permissions and limitations under % the License. -filename() -> - list_to_binary(test_util:source_file("test/etap/171-os-daemons-config.es")). +-include("../couch_eunit.hrl"). + read() -> case io:get_line('') of @@ -42,14 +42,17 @@ log(Mesg, Level) -> write([<<"log">>, Mesg, {[{<<"level">>, Level}]}]). test_get_cfg1() -> - FileName = filename(), - {[{<<"foo">>, FileName}]} = get_cfg(<<"os_daemons">>). + Path = list_to_binary(?FILE), + FileName = list_to_binary(filename:basename(?FILE)), + {[{FileName, Path}]} = get_cfg(<<"os_daemons">>). test_get_cfg2() -> - FileName = filename(), - FileName = get_cfg(<<"os_daemons">>, <<"foo">>), + Path = list_to_binary(?FILE), + FileName = list_to_binary(filename:basename(?FILE)), + Path = get_cfg(<<"os_daemons">>, FileName), <<"sequential">> = get_cfg(<<"uuids">>, <<"algorithm">>). + test_get_unknown_cfg() -> {[]} = get_cfg(<<"aal;3p4">>), null = get_cfg(<<"aal;3p4">>, <<"313234kjhsdfl">>). @@ -79,7 +82,20 @@ loop({error, _Reason}) -> init:stop(). main([]) -> - test_util:init_code_path(), - couch_config:start_link(test_util:config_files()), + init_code_path(), + couch_config:start_link(?CONFIG_CHAIN), couch_drv:start_link(), do_tests(). + +init_code_path() -> + Paths = [ + "couchdb", + "ejson", + "erlang-oauth", + "ibrowse", + "mochiweb", + "snappy" + ], + lists:foreach(fun(Name) -> + code:add_patha(filename:join([?BUILDDIR, "src", Name])) + end, Paths). diff --git a/test/etap/171-os-daemons-config.t b/test/etap/171-os-daemons-config.t deleted file mode 100755 index e9dc3f322..000000000 --- a/test/etap/171-os-daemons-config.t +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env escript -%% -*- erlang -*- - -% Licensed under the Apache License, Version 2.0 (the "License"); you may not -% use this file except in compliance with the License. You may obtain a copy of -% the License at -% -% http://www.apache.org/licenses/LICENSE-2.0 -% -% Unless required by applicable law or agreed to in writing, software -% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -% License for the specific language governing permissions and limitations under -% the License. - --record(daemon, { - port, - name, - cmd, - kill, - status=running, - cfg_patterns=[], - errors=[], - buf=[] -}). - -config_files() -> - lists:map(fun test_util:build_file/1, [ - "etc/couchdb/default_dev.ini" - ]). - -daemon_cmd() -> - test_util:source_file("test/etap/171-os-daemons-config.es"). - -main(_) -> - test_util:init_code_path(), - - etap:plan(6), - case (catch test()) of - ok -> - etap:end_tests(); - Other -> - etap:diag(io_lib:format("Test died abnormally: ~p", [Other])), - etap:bail(Other) - end, - ok. - -test() -> - couch_config:start_link(config_files()), - couch_config:set("log", "level", "debug", false), - couch_log:start_link(), - couch_os_daemons:start_link(), - - % "foo" is a required name by this test. - couch_config:set("os_daemons", "foo", daemon_cmd(), false), - timer:sleep(1000), - - {ok, [D1]} = couch_os_daemons:info([table]), - check_daemon(D1, "foo"), - - ok. - -check_daemon(D, Name) -> - BaseName = "171-os-daemons-config.es", - BaseLen = length(BaseName), - CmdLen = length(D#daemon.cmd), - CmdName = lists:sublist(D#daemon.cmd, CmdLen-BaseLen+1, BaseLen), - - etap:is(is_port(D#daemon.port), true, "Daemon port is a port."), - etap:is(D#daemon.name, Name, "Daemon name was set correctly."), - etap:is(CmdName, BaseName, "Command name was set correctly."), - etap:isnt(D#daemon.kill, undefined, "Kill command was set."), - etap:is(D#daemon.errors, [], "No errors occurred while booting."), - etap:is(D#daemon.buf, [], "No extra data left in the buffer."). diff --git a/test/etap/Makefile.am b/test/etap/Makefile.am index 13b5b4a58..1ec6a4801 100644 --- a/test/etap/Makefile.am +++ b/test/etap/Makefile.am @@ -36,8 +36,6 @@ fixture_files = \ fixtures/test.couch tap_files = \ - 171-os-daemons-config.es \ - 171-os-daemons-config.t \ 172-os-daemon-errors.1.sh \ 172-os-daemon-errors.2.sh \ 172-os-daemon-errors.3.sh \ |