|
66 | 66 | fixtable_insert/1, rename/1, rename_unnamed/1, evil_rename/1, |
67 | 67 | update_element/1, update_element_default/1, update_counter/1, evil_update_counter/1, partly_bound/1, match_heavy/1]). |
68 | 68 | -export([update_counter_with_default/1]). |
69 | | --export([update_counter_with_default_bad_pos/1]). |
| 69 | +-export([update_counter_with_default_bad_pos/1, |
| 70 | + update_counter_with_default_bad_default/1]). |
70 | 71 | -export([update_counter_table_growth/1]). |
71 | 72 | -export([member/1]). |
72 | 73 | -export([memory/1]). |
@@ -156,6 +157,7 @@ all() -> |
156 | 157 | update_counter, evil_update_counter, |
157 | 158 | update_counter_with_default, |
158 | 159 | update_counter_with_default_bad_pos, |
| 160 | + update_counter_with_default_bad_default, |
159 | 161 | partly_bound, |
160 | 162 | update_counter_table_growth, |
161 | 163 | match_heavy, {group, fold}, member, t_delete_object, |
@@ -3070,6 +3072,20 @@ update_counter_with_default_bad_pos_do(Opts) -> |
3070 | 3072 | 0 = ets:info(T, size), |
3071 | 3073 | ok. |
3072 | 3074 |
|
| 3075 | +update_counter_with_default_bad_default(Config) when is_list(Config) -> |
| 3076 | + repeat_for_opts_all_table_types(fun update_counter_with_default_bad_default_do/1). |
| 3077 | + |
| 3078 | +update_counter_with_default_bad_default_do(Opts) -> |
| 3079 | + T = ets_new(a, [{keypos, 3} | Opts]), |
| 3080 | + 0 = ets:info(T, size), |
| 3081 | + ok = try ets:update_counter(T, 0, {2, 1}, {0, 0}) |
| 3082 | + catch |
| 3083 | + error:badarg -> ok; |
| 3084 | + Class:Reason -> {Class, Reason} |
| 3085 | + end, |
| 3086 | + 0 = ets:info(T, size), |
| 3087 | + ok. |
| 3088 | + |
3073 | 3089 | update_counter_table_growth(_Config) -> |
3074 | 3090 | repeat_for_opts(fun update_counter_table_growth_do/1). |
3075 | 3091 |
|
|
0 commit comments