diff options
author | Jan Lehnardt <jan@apache.org> | 2017-10-29 08:54:40 +0100 |
---|---|---|
committer | Joan Touzet <wohali@users.noreply.github.com> | 2017-10-31 22:52:10 -0400 |
commit | 3aa0470a4d4da698887b6cecaa6272db4545425c (patch) | |
tree | 1612a550d2a23224105f56e894319d1803f89b9f | |
parent | 14e72181204974296a52f1fd85e189339ad31a9d (diff) | |
download | couchdb-3aa0470a4d4da698887b6cecaa6272db4545425c.tar.gz |
fix(peruser_test): on slow CI vms, we can get Cluster timeouts
-rw-r--r-- | src/couch_peruser/test/couch_peruser_test.erl | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/src/couch_peruser/test/couch_peruser_test.erl b/src/couch_peruser/test/couch_peruser_test.erl index cf6bdf14c..2bc98af66 100644 --- a/src/couch_peruser/test/couch_peruser_test.erl +++ b/src/couch_peruser/test/couch_peruser_test.erl @@ -42,7 +42,6 @@ setup() -> set_config("couch_peruser", "cluster_start_period", "1"), set_config("couch_peruser", "enable", "true"), set_config("cluster", "n", "1"), - set_config("log", "level", "debug"), timer:sleep(1000), TestAuthDb. @@ -53,7 +52,6 @@ teardown(TestAuthDb) -> set_config("couch_peruser", "cluster_quiet_period", "60"), set_config("couch_peruser", "cluster_start_period", "5"), set_config("cluster", "n", "3"), - set_config("log", "level", "info"), do_request(delete, get_cluster_base_url() ++ "/" ++ ?b2l(TestAuthDb)), do_request(delete, get_base_url() ++ "/" ++ ?b2l(TestAuthDb)), lists:foreach(fun (DbName) -> @@ -128,6 +126,10 @@ all_dbs() -> {ok, 200, _, Body} = do_request(get, get_cluster_base_url() ++ "/_all_dbs"), jiffy:decode(Body). +all_dbs_with_errors() -> + {Result, StatusCode, _Headers, Body} = do_request(get, get_cluster_base_url() ++ "/_all_dbs"), + {Result, StatusCode, _Headers, jiffy:decode(Body)}. + get_base_url() -> Addr = config:get("httpd", "bind_address", "127.0.0.1"), Port = integer_to_list(mochiweb_socket_server:get(couch_httpd, port)), @@ -316,21 +318,33 @@ should_remove_user_from_db_members(TestAuthDb) -> % infinite loop waiting for a db to be created, either this returns true % or we get a test timeout error wait_for_db_create(UserDbName) -> - case lists:member(UserDbName, all_dbs()) of - true -> true; - _Else -> + case all_dbs_with_errors() of + {error, _, _ , _} -> timer:sleep(?WAIT_FOR_DB_TIMEOUT), - wait_for_db_create(UserDbName) + wait_for_db_create(UserDbName); + {ok, _, _, AllDbs} -> + case lists:member(UserDbName, AllDbs) of + true -> true; + _Else -> + timer:sleep(?WAIT_FOR_DB_TIMEOUT), + wait_for_db_create(UserDbName) + end end. % infinite loop waiting for a db to be deleted, either this returns true % or we get a test timeout error wait_for_db_delete(UserDbName) -> - case not lists:member(UserDbName, all_dbs()) of - true -> true; - _Else -> + case all_dbs_with_errors() of + {ok, 500, _ , _} -> timer:sleep(?WAIT_FOR_DB_TIMEOUT), - wait_for_db_delete(UserDbName) + wait_for_db_delete(UserDbName); + {ok, _, _, AllDbs} -> + case not lists:member(UserDbName, AllDbs) of + true -> true; + _Else -> + timer:sleep(?WAIT_FOR_DB_TIMEOUT), + wait_for_db_delete(UserDbName) + end end. wait_for_security_create(Type, User, UserDbName) -> |