You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2020/08/06 12:03:08 UTC

[couchdb] 01/02: Merge pull request #3060 from apache/prototype/fdb-layer-ebtree-speedy-tests

This is an automated email from the ASF dual-hosted git repository.

rnewson pushed a commit to branch prototype/fdb-layer-ebtree-enhance
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit fd199f3b808b46f1b11220e63e58654357df7960
Merge: 29d6498 31b467c
Author: Robert Newson <rn...@apache.org>
AuthorDate: Wed Aug 5 21:12:39 2020 +0100

    Merge pull request #3060 from apache/prototype/fdb-layer-ebtree-speedy-tests
    
    Speed up ebtree test suite without losing coverage

 src/ebtree/src/ebtree.erl | 106 +++++++++++++++++++++++++++++-----------------
 1 file changed, 66 insertions(+), 40 deletions(-)

diff --cc src/ebtree/src/ebtree.erl
index 15a21a6,6a4f4a8..6a46ae8
--- a/src/ebtree/src/ebtree.erl
+++ b/src/ebtree/src/ebtree.erl
@@@ -1110,6 -1110,6 +1110,25 @@@ collate_validation_test() -
      ?assertError(invalid_collation_result, collate(Tree, 1, 2)).
  
  
++order_is_preserved_test() ->
++    Db = erlfdb_util:get_test_db([empty]),
++    open(Db, <<1,2,3>>, 4),
++    Tree = open(Db, <<1,2,3>>, 8),
++    ?assertEqual(4, Tree#tree.max).
++
++
++min_not_allowed_test() ->
++    Db = erlfdb_util:get_test_db([empty]),
++    Tree = open(Db, <<1,2,3>>, 4),
++    ?assertError(min_not_allowed, ebtree:insert(Db, Tree, ebtree:min(), foo)).
++
++
++max_not_allowed_test() ->
++    Db = erlfdb_util:get_test_db([empty]),
++    Tree = open(Db, <<1,2,3>>, 4),
++    ?assertError(max_not_allowed, ebtree:insert(Db, Tree, ebtree:max(), foo)).
++
++
  lookup_test() ->
      Db = erlfdb_util:get_test_db([empty]),
      Tree = open(Db, <<1,2,3>>, 4),
@@@ -1405,7 -1385,4 +1404,34 @@@ custom_collation_reverse_range_test_() 
      end}.
  
  
- msec(Native) ->
-     erlang:max(1, erlang:convert_time_unit(Native, native, millisecond)).
++validate_tree_test() ->
++    Db = erlfdb_util:get_test_db([empty]),
++    Tree = open(Db, <<1,2,3>>, 4),
++    [ebtree:insert(Db, Tree, I, I) || I <- lists:seq(1, 16)],
++    validate_tree(Db, Tree).
++
++
++validate_node_test_() ->
++    [
++        ?_test(?assertError({node_without_id, _}, validate_node(
++            #tree{}, #node{id = undefined}))),
++        ?_test(?assertError({too_few_keys, _}, validate_node(
++            #tree{collate_fun = fun collate_raw/2, min = 2},
++            #node{id = 1, members = [{1, 1}]}))),
++        ?_test(?assertError({too_many_keys, _}, validate_node(
++            #tree{collate_fun = fun collate_raw/2, min = 2, max = 2},
++            #node{id = 1, members = [{1, 1}, {2, 2}, {3, 3}]}))),
++        ?_test(?assertError({non_leaf_with_prev, _}, validate_node(
++            #tree{min = 0}, #node{id = 1, level = 1, prev = 1}))),
++        ?_test(?assertError({non_leaf_with_next, _}, validate_node(
++            #tree{min = 0}, #node{id = 1, level = 1, next = 1}))),
++        ?_test(?assertError({out_of_order, _}, validate_node(
++            #tree{min = 0, collate_fun = fun collate_raw/2},
++            #node{id = 1, members = [{2, 2}, {1, 1}]}))),
++        ?_test(?assertError({duplicates, _}, validate_node(
++            #tree{min = 0, collate_fun = fun collate_raw/2},
++            #node{id = 1, members = [{1, 1}, {1, 1}]})))
++    ].
++
 +
  -endif.