Skip to content

Commit 49bb15a

Browse files
committed
Refactor cases array in tests for stat
Before this commit `simple_operation_cases` were organized as map (table indexed not with numbers), in Lua iteration over map does not occur in the order in which the elements were specified in the map. But simple operation cases should be executed in the order in which they are specified, because, for example, if `replace()` is performed before `insert()`, an error will be received. Therefore, `simple_operation_cases` has been refactored as table indexed with numbers. Select cases has been refactored for consistency. Part of #193
1 parent 768eb82 commit 49bb15a

File tree

1 file changed

+80
-43
lines changed

1 file changed

+80
-43
lines changed

test/integration/stats_test.lua

Lines changed: 80 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ local space_name = 'customers'
2121
local non_existing_space_id = 100500
2222
local non_existing_space_name = 'non_existing_space'
2323
local new_space_name = 'newspace'
24+
local select_by_secondary_index_idx = 2
2425

2526
local function before_all(g)
2627
g.cluster = helpers.Cluster:new({
@@ -152,54 +153,62 @@ local eval = {
152153
}
153154

154155
local simple_operation_cases = {
155-
insert = {
156+
{
157+
name = 'insert',
156158
func = 'crud.insert',
157159
args = {
158160
space_name,
159161
{ 12, box.NULL, 'Ivan', 'Ivanov', 20, 'Moscow' },
160162
},
161163
op = 'insert',
162164
},
163-
insert_object = {
165+
{
166+
name = 'insert_object',
164167
func = 'crud.insert_object',
165168
args = {
166169
space_name,
167170
{ id = 13, name = 'Ivan', last_name = 'Ivanov', age = 20, city = 'Moscow' },
168171
},
169172
op = 'insert',
170173
},
171-
get = {
174+
{
175+
name = 'get',
172176
func = 'crud.get',
173177
args = { space_name, { 12 } },
174178
op = 'get',
175179
},
176-
select = {
180+
{
181+
name = 'select',
177182
func = 'crud.select',
178183
args = { space_name, {{ '==', 'id_index', 3 }} },
179184
op = 'select',
180185
},
181-
pairs = {
186+
{
187+
name = 'pairs',
182188
eval = eval.pairs,
183189
args = { space_name, {{ '==', 'id_index', 3 }} },
184190
op = 'select',
185191
},
186-
replace = {
192+
{
193+
name = 'replace',
187194
func = 'crud.replace',
188195
args = {
189196
space_name,
190197
{ 12, box.NULL, 'Ivan', 'Ivanov', 20, 'Moscow' },
191198
},
192199
op = 'replace',
193200
},
194-
replace_object = {
201+
{
202+
name = 'replace_object',
195203
func = 'crud.replace_object',
196204
args = {
197205
space_name,
198206
{ id = 12, name = 'Ivan', last_name = 'Ivanov', age = 20, city = 'Moscow' },
199207
},
200208
op = 'replace',
201209
},
202-
update = {
210+
{
211+
name = 'update',
203212
prepare = function(g)
204213
helpers.insert_objects(g, space_name, {{
205214
id = 15, name = 'Ivan', last_name = 'Ivanov',
@@ -210,7 +219,8 @@ local simple_operation_cases = {
210219
args = { space_name, 12, {{'+', 'age', 10}} },
211220
op = 'update',
212221
},
213-
upsert = {
222+
{
223+
name = 'upsert',
214224
func = 'crud.upsert',
215225
args = {
216226
space_name,
@@ -219,7 +229,8 @@ local simple_operation_cases = {
219229
},
220230
op = 'upsert',
221231
},
222-
upsert_object = {
232+
{
233+
name = 'upsert_object',
223234
func = 'crud.upsert_object',
224235
args = {
225236
space_name,
@@ -228,116 +239,136 @@ local simple_operation_cases = {
228239
},
229240
op = 'upsert',
230241
},
231-
delete = {
242+
{
243+
name = 'delete',
232244
func = 'crud.delete',
233245
args = { space_name, { 12 } },
234246
op = 'delete',
235247
},
236-
truncate = {
248+
{
249+
name = 'truncate',
237250
func = 'crud.truncate',
238251
args = { space_name },
239252
op = 'truncate',
240253
},
241-
len = {
254+
{
255+
name = 'len',
242256
func = 'crud.len',
243257
args = { space_name },
244258
op = 'len',
245259
},
246-
count = {
260+
{
261+
name = 'count',
247262
func = 'crud.count',
248263
args = { space_name, {{ '==', 'id_index', 3 }} },
249264
op = 'count',
250265
},
251-
min = {
266+
{
267+
name = 'min',
252268
func = 'crud.min',
253269
args = { space_name },
254270
op = 'borders',
255271
},
256-
max = {
272+
{
273+
name = 'max',
257274
func = 'crud.max',
258275
args = { space_name },
259276
op = 'borders',
260277
},
261-
insert_error = {
278+
{
279+
name = 'insert_error',
262280
func = 'crud.insert',
263281
args = { space_name, { 'id' } },
264282
op = 'insert',
265283
expect_error = true,
266284
},
267-
insert_object_error = {
285+
{
286+
name = 'insert_object_error',
268287
func = 'crud.insert_object',
269288
args = { space_name, { 'id' } },
270289
op = 'insert',
271290
expect_error = true,
272291
},
273-
get_error = {
292+
{
293+
name = 'get_error',
274294
func = 'crud.get',
275295
args = { space_name, { 'id' } },
276296
op = 'get',
277297
expect_error = true,
278298
},
279-
select_error = {
299+
{
300+
name = 'select_error',
280301
func = 'crud.select',
281302
args = { space_name, {{ '==', 'id_index', 'sdf' }} },
282303
op = 'select',
283304
expect_error = true,
284305
},
285-
pairs_error = {
306+
{
307+
name = 'pairs_error',
286308
eval = eval.pairs,
287309
args = { space_name, {{ '%=', 'id_index', 'sdf' }} },
288310
op = 'select',
289311
expect_error = true,
290312
pcall = true,
291313
},
292-
replace_error = {
314+
{
315+
name = 'replace_error',
293316
func = 'crud.replace',
294317
args = { space_name, { 'id' } },
295318
op = 'replace',
296319
expect_error = true,
297320
},
298-
replace_object_error = {
321+
{
322+
name = 'replace_object_error',
299323
func = 'crud.replace_object',
300324
args = { space_name, { 'id' } },
301325
op = 'replace',
302326
expect_error = true,
303327
},
304-
update_error = {
328+
{
329+
name = 'update_error',
305330
func = 'crud.update',
306331
args = { space_name, { 'id' }, {{'+', 'age', 1}} },
307332
op = 'update',
308333
expect_error = true,
309334
},
310-
upsert_error = {
335+
{
336+
name = 'upsert_error',
311337
func = 'crud.upsert',
312338
args = { space_name, { 'id' }, {{'+', 'age', 1}} },
313339
op = 'upsert',
314340
expect_error = true,
315341
},
316-
upsert_object_error = {
342+
{
343+
name = 'upsert_object_error',
317344
func = 'crud.upsert_object',
318345
args = { space_name, { 'id' }, {{'+', 'age', 1}} },
319346
op = 'upsert',
320347
expect_error = true,
321348
},
322-
delete_error = {
349+
{
350+
name = 'delete_error',
323351
func = 'crud.delete',
324352
args = { space_name, { 'id' } },
325353
op = 'delete',
326354
expect_error = true,
327355
},
328-
count_error = {
356+
{
357+
name = 'count_error',
329358
func = 'crud.count',
330359
args = { space_name, {{ '==', 'id_index', 'sdf' }} },
331360
op = 'count',
332361
expect_error = true,
333362
},
334-
min_error = {
363+
{
364+
name = 'min_error',
335365
func = 'crud.min',
336366
args = { space_name, 'badindex' },
337367
op = 'borders',
338368
expect_error = true,
339369
},
340-
max_error = {
370+
{
371+
name = 'max_error',
341372
func = 'crud.max',
342373
args = { space_name, 'badindex' },
343374
op = 'borders',
@@ -371,28 +402,32 @@ local prepare_select_data = function(g)
371402
end
372403

373404
local select_cases = {
374-
select_by_primary_index = {
405+
{
406+
name = 'select_by_primary_index',
375407
func = 'crud.select',
376408
conditions = {{ '==', 'id_index', 3 }},
377409
map_reduces = 0,
378410
tuples_fetched = 1,
379411
tuples_lookup = 1,
380412
},
381-
select_by_secondary_index = {
413+
{
414+
name = 'select_by_secondary_index',
382415
func = 'crud.select',
383416
conditions = {{ '==', 'age_index', 46 }},
384417
map_reduces = 1,
385418
tuples_fetched = 1,
386419
tuples_lookup = 1,
387420
},
388-
select_full_scan = {
421+
{
422+
name = 'select_full_scan',
389423
func = 'crud.select',
390424
conditions = {{ '>', 'id_index', 0 }, { '==', 'city', 'Kyoto' }},
391425
map_reduces = 1,
392426
tuples_fetched = 0,
393427
tuples_lookup = 4,
394428
},
395-
pairs_by_primary_index = {
429+
{
430+
name = 'pairs_by_primary_index',
396431
eval = eval.pairs,
397432
conditions = {{ '==', 'id_index', 3 }},
398433
map_reduces = 0,
@@ -401,7 +436,8 @@ local select_cases = {
401436
-- after_tuple scroll for second batch.
402437
tuples_lookup = 2,
403438
},
404-
pairs_by_secondary_index = {
439+
{
440+
name = 'pairs_by_secondary_index',
405441
eval = eval.pairs,
406442
conditions = {{ '==', 'age_index', 46 }},
407443
map_reduces = 1,
@@ -410,7 +446,8 @@ local select_cases = {
410446
-- after_tuple scroll for second batch.
411447
tuples_lookup = 2,
412448
},
413-
pairs_full_scan = {
449+
{
450+
name = 'pairs_full_scan',
414451
eval = eval.pairs,
415452
conditions = {{ '>', 'id_index', 0 }, { '==', 'city', 'Kyoto' }},
416453
map_reduces = 1,
@@ -461,8 +498,8 @@ end
461498

462499
-- Call some operations for existing
463500
-- spaces and ensure statistics is updated.
464-
for name, case in pairs(simple_operation_cases) do
465-
local test_name = ('test_%s'):format(name)
501+
for _, case in pairs(simple_operation_cases) do
502+
local test_name = ('test_%s'):format(case.name)
466503

467504
if case.prepare ~= nil then
468505
pgroup.before_test(test_name, case.prepare)
@@ -573,8 +610,8 @@ pgroup.test_non_existing_space = function(g)
573610
end
574611

575612

576-
for name, case in pairs(select_cases) do
577-
local test_name = ('test_%s_details'):format(name)
613+
for _, case in pairs(select_cases) do
614+
local test_name = ('test_%s_details'):format(case.name)
578615

579616
pgroup.before_test(test_name, prepare_select_data)
580617

@@ -770,8 +807,8 @@ local function validate_metrics(g, metrics)
770807
t.assert_type(stats_sum, 'table', '`tnt_crud_stats` summary metrics found')
771808

772809

773-
local expected_operations = { 'insert', 'get', 'replace', 'update',
774-
'upsert', 'delete', 'select', 'truncate', 'len', 'count', 'borders' }
810+
local expected_operations = { 'insert', 'batch_insert', 'get', 'replace', 'update',
811+
'upsert', 'batch_upsert', 'delete', 'select', 'truncate', 'len', 'count', 'borders' }
775812

776813
if g.params.quantiles == true then
777814
t.assert_items_equals(get_unique_label_values(quantile_stats, 'operation'), expected_operations,
@@ -867,7 +904,7 @@ local function check_updated_per_call(g)
867904
local tuples_fetched_before = find_obs('tnt_crud_tuples_fetched', details_labels, metrics_before)
868905
local map_reduces_before = find_obs('tnt_crud_map_reduces', details_labels, metrics_before)
869906

870-
local case = select_cases['select_by_secondary_index']
907+
local case = select_cases[select_by_secondary_index_idx]
871908
local _, err = g.router:call(case.func, { space_name, case.conditions })
872909
t.assert_equals(err, nil)
873910

0 commit comments

Comments
 (0)