diff options
author | Jay Doane <jaydoane@apache.org> | 2021-09-08 19:43:44 -0700 |
---|---|---|
committer | Jay Doane <jay.s.doane@gmail.com> | 2021-09-09 08:27:19 -0700 |
commit | 436886d9b1b4da8c68e6cb0dd452fbeb1c571f90 (patch) | |
tree | 39de0cb9b01e054b58db40f3e9d66a4ca77a3b61 | |
parent | 60b280bf9d83a47ab37733132c0d083ef022d99f (diff) | |
download | couchdb-436886d9b1b4da8c68e6cb0dd452fbeb1c571f90.tar.gz |
Separate bad_config_test into multiple 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*
-rw-r--r-- | src/couch_views/src/couch_views_batch_impl.erl | 19 |
1 files 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 1bc6014f3..858852843 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() -> |