You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ja...@apache.org on 2021/09/09 02:44:07 UTC
[couchdb] 02/02: Separate bad_config_test into separate tests
This is an automated email from the ASF dual-hosted git repository.
jaydoane pushed a commit to branch improve-views-tests
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 9815c82644b905b0ad5507f309a18601f872c6c9
Author: Jay Doane <ja...@apache.org>
AuthorDate: Wed Sep 8 19:43:44 2021 -0700
Separate bad_config_test into separate tests
Instead of running as a single test, separate each corresponding field
and error into its own test, with its own timeout. A typical run now
looks like:
make eunit apps=couch_views suites=couch_views_batch_impl tests=bad_config_test_
======================== EUnit ========================
couch_views_batch_impl:186: bad_config_test_ (batch_initial_size)...[0.104 s] ok
couch_views_batch_impl:186: bad_config_test_ (batch_search_increment)...[0.077 s] ok
couch_views_batch_impl:186: bad_config_test_ (batch_sense_increment)...[0.074 s] ok
couch_views_batch_impl:186: bad_config_test_ (batch_max_tx_size_bytes)...[0.077 s] ok
couch_views_batch_impl:186: bad_config_test_ (batch_max_tx_time_msec)...[0.076 s] ok
couch_views_batch_impl:186: bad_config_test_ (batch_threshold_penalty)...[0.074 s] ok
=======================================================
All 6 tests passed.
Previously, these tests were timing out when CI became resource
constrained. Examples of multiple runs show how prone to timing out
after 5 seconds the old monolithic bad_config_test was:
couch_views_batch_impl: good_config_test...[0.217 s] ok
couch_views_batch_impl: bad_config_test...[1.347 s] ok
couch_views_batch_impl: good_config_test...[0.393 s] ok
couch_views_batch_impl: bad_config_test...[2.332 s] ok
couch_views_batch_impl: good_config_test...[0.358 s] ok
couch_views_batch_impl: bad_config_test...[2.211 s] ok
couch_views_batch_impl: good_config_test...[0.942 s] ok
couch_views_batch_impl: bad_config_test...*timed out*
couch_views_batch_impl: good_config_test...[1.179 s] ok
couch_views_batch_impl: bad_config_test...*timed out*
couch_views_batch_impl: good_config_test...[0.497 s] ok
couch_views_batch_impl: bad_config_test...*timed out*
---
src/couch_views/src/couch_views_batch_impl.erl | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/src/couch_views/src/couch_views_batch_impl.erl b/src/couch_views/src/couch_views_batch_impl.erl
index 1bc6014..8588528 100644
--- a/src/couch_views/src/couch_views_batch_impl.erl
+++ b/src/couch_views/src/couch_views_batch_impl.erl
@@ -150,8 +150,8 @@ good_config_test() ->
)
end).
-bad_config_test() ->
- Fields = [
+bad_config_test_() ->
+ FieldErrors = [
{batch_initial_size, invalid_non_neg_integer},
{batch_search_increment, invalid_non_neg_integer},
{batch_sense_increment, invalid_non_neg_integer},
@@ -159,16 +159,17 @@ bad_config_test() ->
{batch_max_tx_time_msec, invalid_non_neg_integer},
{batch_threshold_penalty, invalid_float}
],
- lists:foreach(
+ lists:map(
fun({Field, Error}) ->
- with_bad_config(atom_to_list(Field), fun() ->
- ?assertError(
- {Error, {couch_views, Field, _}},
+ FieldName = atom_to_list(Field),
+ {FieldName, ?_assertError(
+ {Error, {couch_views, Field, _}},
+ with_bad_config(FieldName, fun() ->
start(#mrst{}, undefined)
- )
- end)
+ end))
+ }
end,
- Fields
+ FieldErrors
).
float_range_test() ->