Motr  M0
main.c
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2013-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #include "ut/ut.h"
24 #include "be/ut/helper.h"
25 
34 extern void m0_be_ut_op_usecase(void);
35 extern void m0_be_ut_op_mt(void);
36 extern void m0_be_ut_op_set_usecase(void);
37 extern void m0_be_ut_op_set_tree(void);
38 
39 extern void m0_be_ut_queue_1_1_1(void);
40 extern void m0_be_ut_queue_2_1_1(void);
41 extern void m0_be_ut_queue_100_1_1(void);
42 extern void m0_be_ut_queue_100_1_10(void);
43 extern void m0_be_ut_queue_100_10_1(void);
44 extern void m0_be_ut_queue_100_10_10(void);
45 extern void m0_be_ut_queue_10_100_1(void);
46 extern void m0_be_ut_queue_10_100_5(void);
47 extern void m0_be_ut_queue_10_1_100(void);
48 extern void m0_be_ut_queue_10_5_100(void);
49 extern void m0_be_ut_queue_10_100_100(void);
50 extern void m0_be_ut_queue_from_1_to_10(void);
51 
52 extern void m0_be_ut_pool_usecase(void);
53 
54 extern void m0_be_ut_reg_d_tree(void);
55 extern void m0_be_ut_regmap_simple(void);
56 extern void m0_be_ut_regmap_random(void);
57 extern void m0_be_ut_reg_area_simple(void);
58 extern void m0_be_ut_reg_area_random(void);
59 extern void m0_be_ut_reg_area_merge(void);
60 
61 extern void m0_be_ut_fmt_log_header(void);
62 extern void m0_be_ut_fmt_cblock(void);
63 extern void m0_be_ut_fmt_group(void);
64 extern void m0_be_ut_fmt_group_size_max(void);
65 extern void m0_be_ut_fmt_group_size_max_rnd(void);
66 
67 extern void m0_be_ut_io(void);
68 extern void m0_be_ut_io_sched(void);
69 
70 extern void m0_be_ut_log_store_create_simple(void);
71 extern void m0_be_ut_log_store_create_random(void);
72 extern void m0_be_ut_log_store_io_window(void);
73 extern void m0_be_ut_log_store_io_discard(void);
74 extern void m0_be_ut_log_store_io_translate(void);
75 extern void m0_be_ut_log_store_rbuf(void);
76 
77 extern void m0_be_ut_log_sched(void);
78 
79 extern void m0_be_ut_log_discard_usecase(void);
80 extern void m0_be_ut_log_discard_getput(void);
81 
82 extern void m0_be_ut_log_user(void);
83 extern void m0_be_ut_log_api(void);
84 extern void m0_be_ut_log_header(void);
85 extern void m0_be_ut_log_unplaced(void);
86 extern void m0_be_ut_log_multi(void);
87 
88 extern void m0_be_ut_recovery(void);
89 
90 extern void m0_be_ut_pd_usecase(void);
91 
92 extern void m0_be_ut_seg_open_close(void);
93 extern void m0_be_ut_seg_io(void);
94 extern void m0_be_ut_seg_multiple(void);
95 extern void m0_be_ut_seg_large(void);
96 extern void m0_be_ut_seg_large_multiple(void);
97 
98 extern void m0_be_ut_group_format(void);
99 
100 extern void m0_be_ut_mkfs(void);
101 extern void m0_be_ut_mkfs_multiseg(void);
102 extern void m0_be_ut_domain(void);
103 extern void m0_be_ut_domain_is_stob(void);
104 
105 extern void m0_be_ut_tx_states(void);
106 extern void m0_be_ut_tx_empty(void);
107 extern void m0_be_ut_tx_usecase_success(void);
108 extern void m0_be_ut_tx_usecase_failure(void);
109 extern void m0_be_ut_tx_capturing(void);
110 extern void m0_be_ut_tx_single(void);
111 extern void m0_be_ut_tx_several(void);
112 extern void m0_be_ut_tx_persistence(void);
113 extern void m0_be_ut_tx_fast(void);
114 extern void m0_be_ut_tx_concurrent(void);
115 extern void m0_be_ut_tx_concurrent_excl(void);
116 extern void m0_be_ut_tx_force(void);
117 extern void m0_be_ut_tx_gc(void);
118 extern void m0_be_ut_tx_payload(void);
119 
120 extern void m0_be_ut_tx_bulk_usecase(void);
121 extern void m0_be_ut_tx_bulk_empty(void);
122 extern void m0_be_ut_tx_bulk_error_reg(void);
123 extern void m0_be_ut_tx_bulk_error_payload(void);
124 extern void m0_be_ut_tx_bulk_large_tx(void);
125 extern void m0_be_ut_tx_bulk_large_payload(void);
126 extern void m0_be_ut_tx_bulk_large_all(void);
127 extern void m0_be_ut_tx_bulk_small_tx(void);
128 extern void m0_be_ut_tx_bulk_medium_tx(void);
129 extern void m0_be_ut_tx_bulk_medium_tx_multi(void);
130 extern void m0_be_ut_tx_bulk_medium_cred(void);
131 extern void m0_be_ut_tx_bulk_large_cred(void);
132 extern void m0_be_ut_tx_bulk_parallel_1_15(void);
133 
134 extern void m0_be_ut_fl(void);
135 
136 extern void m0_be_ut_alloc_init_fini(void);
137 extern void m0_be_ut_alloc_create_destroy(void);
138 extern void m0_be_ut_alloc_multiple(void);
139 extern void m0_be_ut_alloc_concurrent(void);
140 extern void m0_be_ut_alloc_oom(void);
141 extern void m0_be_ut_alloc_info(void);
142 extern void m0_be_ut_alloc_spare(void);
143 
144 extern void m0_be_ut_list(void);
145 extern void m0_be_ut_btree_create_destroy(void);
146 extern void m0_be_ut_btree_create_truncate(void);
147 extern void m0_be_ut_emap(void);
148 extern void m0_be_ut_seg_dict(void);
149 extern void m0_be_ut_seg0_test(void);
150 
151 extern void m0_be_ut_obj_test(void);
152 extern void m0_be_ut_fmt(void);
153 
154 extern void m0_be_ut_actrec_test(void);
155 
156 struct m0_ut_suite be_ut = {
157  .ts_name = "be-ut",
158  .ts_yaml_config_string = "{ valgrind: { timeout: 3600 },"
159  " helgrind: { timeout: 3600 },"
160  " exclude: ["
161  " btree,"
162  " emap,"
163  " tx-concurrent,"
164  " tx-concurrent-excl"
165  " ] }",
166  .ts_init = NULL,
167  .ts_fini = NULL,
168  .ts_tests = {
169 #ifndef __KERNEL__
170  { "op-usecase", m0_be_ut_op_usecase },
171  { "op-mt", m0_be_ut_op_mt },
172  { "op_set-usecase", m0_be_ut_op_set_usecase },
173  { "op_set-tree", m0_be_ut_op_set_tree },
174  { "queue-1_1_1", m0_be_ut_queue_1_1_1 },
175  { "queue-2_1_1", m0_be_ut_queue_2_1_1 },
176  { "queue-100_1_1", m0_be_ut_queue_100_1_1 },
177  { "queue-100_1_10", m0_be_ut_queue_100_1_10 },
178  { "queue-100_10_1", m0_be_ut_queue_100_10_1 },
179  { "queue-100_10_10", m0_be_ut_queue_100_10_10 },
180  { "queue-10_100_1", m0_be_ut_queue_10_100_1 },
181  { "queue-10_100_5", m0_be_ut_queue_10_100_5 },
182  { "queue-10_1_100", m0_be_ut_queue_10_1_100 },
183  { "queue-10_5_100", m0_be_ut_queue_10_5_100 },
184  { "queue-10_100_100", m0_be_ut_queue_10_100_100 },
185  { "queue-from_1_to_10", m0_be_ut_queue_from_1_to_10 },
186  { "pool-usecase", m0_be_ut_pool_usecase },
187  { "reg_d_tree", m0_be_ut_reg_d_tree },
188 // XXX { "regmap-simple", m0_be_ut_regmap_simple },
189 // XXX { "regmap-random", m0_be_ut_regmap_random },
190 // XXX { "reg_area-simple", m0_be_ut_reg_area_simple },
191  { "reg_area-random", m0_be_ut_reg_area_random },
192  { "reg_area-merge", m0_be_ut_reg_area_merge },
193  { "fmt-log_header", m0_be_ut_fmt_log_header },
194  { "fmt-cblock", m0_be_ut_fmt_cblock },
195  { "fmt-group", m0_be_ut_fmt_group },
196  { "fmt-group_size_max", m0_be_ut_fmt_group_size_max },
197  { "fmt-group_size_max_rnd", m0_be_ut_fmt_group_size_max_rnd },
198  { "io-noop", m0_be_ut_io },
199  { "io_sched", m0_be_ut_io_sched },
200  { "log_store-create_simple", m0_be_ut_log_store_create_simple },
201  { "log_store-create_random", m0_be_ut_log_store_create_random },
202  { "log_store-io_window", m0_be_ut_log_store_io_window },
203  { "log_store-io_discard", m0_be_ut_log_store_io_discard },
204  { "log_store-io_translate", m0_be_ut_log_store_io_translate },
205  { "log_store-rbuf", m0_be_ut_log_store_rbuf },
206  { "log_sched-noop", m0_be_ut_log_sched },
207  { "log_discard-usecase", m0_be_ut_log_discard_usecase },
208  { "log_discard-getput", m0_be_ut_log_discard_getput },
209  { "log-user", m0_be_ut_log_user },
210  { "log-api", m0_be_ut_log_api },
211  { "log-header", m0_be_ut_log_header },
212  { "log-unplaced", m0_be_ut_log_unplaced },
213 /* XXX this test writes and discards records in random order
214  { "log-multi", m0_be_ut_log_multi },
215 */
216  { "recovery", m0_be_ut_recovery },
217  { "pd-usecase", m0_be_ut_pd_usecase },
218  { "seg-open", m0_be_ut_seg_open_close },
219  { "seg-io", m0_be_ut_seg_io },
220  { "seg-multiple", m0_be_ut_seg_multiple },
221  { "seg-large", m0_be_ut_seg_large },
222  { "seg-large-multiple", m0_be_ut_seg_large_multiple },
223  { "group_format", m0_be_ut_group_format },
224  { "mkfs", m0_be_ut_mkfs },
225  { "mkfs-multiseg", m0_be_ut_mkfs_multiseg },
226  { "domain", m0_be_ut_domain },
227  { "domain-is_stob", m0_be_ut_domain_is_stob },
228  { "tx-states", m0_be_ut_tx_states },
229  { "tx-empty", m0_be_ut_tx_empty },
230  { "tx-usecase_success", m0_be_ut_tx_usecase_success },
231  { "tx-usecase_failure", m0_be_ut_tx_usecase_failure },
232  { "tx-capturing", m0_be_ut_tx_capturing },
233  { "tx-gc", m0_be_ut_tx_gc },
234  { "tx-single", m0_be_ut_tx_single },
235  { "tx-several", m0_be_ut_tx_several },
236  { "tx-persistence", m0_be_ut_tx_persistence },
237 // XXX { "tx-force", m0_be_ut_tx_force },
238  { "tx-fast", m0_be_ut_tx_fast },
239  { "tx-payload", m0_be_ut_tx_payload },
240  { "tx-concurrent", m0_be_ut_tx_concurrent },
241  { "tx-concurrent-excl", m0_be_ut_tx_concurrent_excl },
242  { "tx_bulk-usecase", m0_be_ut_tx_bulk_usecase },
243  { "tx_bulk-empty", m0_be_ut_tx_bulk_empty },
244  { "tx_bulk-error_reg", m0_be_ut_tx_bulk_error_reg },
245  { "tx_bulk-error_payload", m0_be_ut_tx_bulk_error_payload },
246  { "tx_bulk-large_tx", m0_be_ut_tx_bulk_large_tx },
247  { "tx_bulk-large_payload", m0_be_ut_tx_bulk_large_payload },
248  { "tx_bulk-large_all", m0_be_ut_tx_bulk_large_all },
249  { "tx_bulk-small_tx", m0_be_ut_tx_bulk_small_tx },
250  { "tx_bulk-medium_tx", m0_be_ut_tx_bulk_medium_tx },
251  { "tx_bulk-medium_tx_multi", m0_be_ut_tx_bulk_medium_tx_multi },
252  { "tx_bulk-medium_cred", m0_be_ut_tx_bulk_medium_cred },
253  { "tx_bulk-large_cred", m0_be_ut_tx_bulk_large_cred },
254  { "tx_bulk-parallel_1_15", m0_be_ut_tx_bulk_parallel_1_15 },
255  { "fl", m0_be_ut_fl },
256  { "alloc-init", m0_be_ut_alloc_init_fini },
257  { "alloc-create", m0_be_ut_alloc_create_destroy },
258  { "alloc-multiple", m0_be_ut_alloc_multiple },
259  { "alloc-concurrent", m0_be_ut_alloc_concurrent },
260  { "alloc-oom", m0_be_ut_alloc_oom },
261  { "alloc-info", m0_be_ut_alloc_info },
262  { "alloc-spare", m0_be_ut_alloc_spare },
263  { "obj", m0_be_ut_obj_test },
264  { "actrec", m0_be_ut_actrec_test },
265 #endif /* __KERNEL__ */
266  { "list", m0_be_ut_list },
267  { "btree-create_destroy", m0_be_ut_btree_create_destroy },
268  { "btree-create_truncate", m0_be_ut_btree_create_truncate },
269  { "seg_dict", m0_be_ut_seg_dict },
270 #ifndef __KERNEL__
271  { "seg0", m0_be_ut_seg0_test },
272 #endif /* __KERNEL__ */
273  { "emap", m0_be_ut_emap },
274  { NULL, NULL }
275  }
276 };
277 
278 /*
279  * Local variables:
280  * c-indentation-style: "K&R"
281  * c-basic-offset: 8
282  * tab-width: 8
283  * fill-column: 80
284  * scroll-step: 1
285  * End:
286  */
287 /*
288  * vim: tabstop=8 shiftwidth=8 noexpandtab textwidth=80 nowrap
289  */
void m0_be_ut_group_format(void)
void m0_be_ut_queue_10_100_100(void)
Definition: queue.c:378
void m0_be_ut_tx_bulk_usecase(void)
Definition: tx_bulk.c:231
void m0_be_ut_reg_area_merge(void)
Definition: tx_regmap.c:978
#define NULL
Definition: misc.h:38
void m0_be_ut_tx_bulk_small_tx(void)
Definition: tx_bulk.c:553
void m0_be_ut_seg_large_multiple(void)
Definition: seg.c:330
void m0_be_ut_recovery(void)
Definition: recovery.c:230
void m0_be_ut_tx_payload(void)
Definition: tx.c:1054
void m0_be_ut_queue_from_1_to_10(void)
Definition: queue.c:380
void m0_be_ut_reg_area_random(void)
Definition: tx_regmap.c:780
void m0_be_ut_tx_bulk_medium_cred(void)
Definition: tx_bulk.c:602
void m0_be_ut_seg_dict(void)
Definition: seg_dict.c:32
void m0_be_ut_tx_concurrent_excl(void)
Definition: tx.c:736
void m0_be_ut_log_discard_getput(void)
Definition: log_discard.c:227
void m0_be_ut_tx_bulk_large_tx(void)
Definition: tx_bulk.c:508
void m0_be_ut_tx_bulk_medium_tx(void)
Definition: tx_bulk.c:568
void m0_be_ut_queue_100_1_10(void)
Definition: queue.c:371
void m0_be_ut_seg_open_close(void)
Definition: seg.c:47
void m0_be_ut_log_store_create_simple(void)
Definition: log_store.c:311
void m0_be_ut_tx_usecase_failure(void)
Definition: tx.c:83
void m0_be_ut_seg_io(void)
Definition: seg.c:67
void m0_be_ut_tx_capturing(void)
Definition: tx.c:750
void m0_be_ut_tx_bulk_large_all(void)
Definition: tx_bulk.c:538
void m0_be_ut_tx_states(void)
Definition: tx.c:126
void m0_be_ut_queue_1_1_1(void)
Definition: queue.c:368
Definition: ut.h:77
void m0_be_ut_fmt_log_header(void)
Definition: fmt.c:53
void m0_be_ut_queue_100_10_10(void)
Definition: queue.c:373
void m0_be_ut_tx_usecase_success(void)
Definition: tx.c:44
void m0_be_ut_tx_fast(void)
Definition: tx.c:585
void m0_be_ut_alloc_multiple(void)
Definition: alloc.c:184
void m0_be_ut_log_discard_usecase(void)
Definition: log_discard.c:72
void m0_be_ut_pd_usecase(void)
Definition: pd.c:119
void m0_be_ut_tx_empty(void)
Definition: tx.c:196
void m0_be_ut_op_set_tree(void)
Definition: op.c:461
void m0_be_ut_log_store_io_window(void)
Definition: log_store.c:469
void m0_be_ut_tx_bulk_medium_tx_multi(void)
Definition: tx_bulk.c:584
void m0_be_ut_queue_10_5_100(void)
Definition: queue.c:377
void m0_be_ut_fl(void)
Definition: fl.c:53
void m0_be_ut_tx_bulk_error_reg(void)
Definition: tx_bulk.c:478
void m0_be_ut_tx_persistence(void)
Definition: tx.c:487
void m0_be_ut_domain_is_stob(void)
Definition: domain.c:111
void m0_be_ut_tx_concurrent(void)
Definition: tx.c:731
void m0_be_ut_actrec_test(void)
void m0_be_ut_log_header(void)
Definition: log.c:576
void m0_be_ut_io(void)
Definition: io.c:23
struct m0_ut_suite be_ut
Definition: main.c:156
void m0_be_ut_seg_multiple(void)
Definition: seg.c:143
void m0_be_ut_tx_bulk_large_payload(void)
Definition: tx_bulk.c:523
void m0_be_ut_fmt(void)
void m0_be_ut_alloc_create_destroy(void)
Definition: alloc.c:78
void m0_be_ut_log_sched(void)
Definition: log_sched.c:26
void m0_be_ut_op_usecase(void)
Definition: op.c:40
void m0_be_ut_op_mt(void)
Definition: op.c:154
void m0_be_ut_op_set_usecase(void)
Definition: op.c:240
void m0_be_ut_alloc_init_fini(void)
Definition: alloc.c:62
void m0_be_ut_log_multi(void)
Definition: log.c:438
void m0_be_ut_regmap_simple(void)
Definition: tx_regmap.c:519
void m0_be_ut_tx_bulk_parallel_1_15(void)
Definition: tx_bulk.c:788
void m0_be_ut_fmt_group(void)
Definition: fmt.c:504
void m0_be_ut_queue_2_1_1(void)
Definition: queue.c:369
void m0_be_ut_emap(void)
Definition: extmap.c:733
void m0_be_ut_alloc_concurrent(void)
Definition: alloc.c:189
void m0_be_ut_log_unplaced(void)
Definition: log.c:491
void m0_be_ut_pool_usecase(void)
Definition: pool.c:162
void m0_be_ut_log_store_io_discard(void)
Definition: log_store.c:499
void m0_be_ut_log_user(void)
Definition: log.c:680
void m0_be_ut_queue_10_100_5(void)
Definition: queue.c:375
void m0_be_ut_seg0_test(void)
Definition: seg0.c:94
void m0_be_ut_alloc_spare(void)
Definition: alloc.c:319
void m0_be_ut_tx_bulk_error_payload(void)
Definition: tx_bulk.c:493
void m0_be_ut_reg_area_simple(void)
Definition: tx_regmap.c:742
void m0_be_ut_queue_10_1_100(void)
Definition: queue.c:376
void m0_be_ut_reg_d_tree(void)
Definition: tx_regmap.c:91
void m0_be_ut_fmt_group_size_max_rnd(void)
Definition: fmt.c:468
const char * ts_name
Definition: ut.h:99
void m0_be_ut_tx_single(void)
Definition: tx.c:225
void m0_be_ut_fmt_cblock(void)
Definition: fmt.c:134
void m0_be_ut_mkfs(void)
Definition: domain.c:30
void m0_be_ut_fmt_group_size_max(void)
Definition: fmt.c:319
void m0_be_ut_io_sched(void)
Definition: io_sched.c:284
void m0_be_ut_domain(void)
Definition: domain.c:103
void m0_be_ut_mkfs_multiseg(void)
Definition: domain.c:72
void m0_be_ut_seg_large(void)
Definition: seg.c:275
void m0_be_ut_log_api(void)
Definition: log.c:638
void m0_be_ut_alloc_info(void)
Definition: alloc.c:210
void m0_be_ut_tx_bulk_empty(void)
Definition: tx_bulk.c:463
void m0_be_ut_alloc_oom(void)
Definition: alloc.c:284
void m0_be_ut_tx_several(void)
Definition: tx.c:230
void m0_be_ut_log_store_create_random(void)
Definition: log_store.c:372
void m0_be_ut_queue_10_100_1(void)
Definition: queue.c:374
void m0_be_ut_tx_bulk_large_cred(void)
Definition: tx_bulk.c:617
void m0_be_ut_btree_create_destroy(void)
Definition: btree.c:109
void m0_be_ut_list(void)
Definition: list.c:59
void m0_be_ut_btree_create_truncate(void)
Definition: btree.c:76
void m0_be_ut_regmap_random(void)
Definition: tx_regmap.c:544
void m0_be_ut_queue_100_1_1(void)
Definition: queue.c:370
void m0_be_ut_obj_test(void)
Definition: seg0.c:106
void m0_be_ut_tx_force(void)
Definition: tx.c:452
void m0_be_ut_tx_gc(void)
Definition: tx.c:851
void m0_be_ut_queue_100_10_1(void)
Definition: queue.c:372
void m0_be_ut_log_store_io_translate(void)
Definition: log_store.c:649
void m0_be_ut_log_store_rbuf(void)
Definition: log_store.c:734