Skip to content

Commit ae27122

Browse files
Abigale KimKiterLuc
authored andcommitted
Integrate std::prm memory tracking for class Enumeration. (TileDB-Inc#4735)
All member vector variables of the Enumeration class have PMR tracking. --- TYPE: NO_HISTORY DESC: Integrate std::prm memory tracking for class `Enumeration`. --------- Co-authored-by: Luc Rancourt <[email protected]>
1 parent 5d00114 commit ae27122

18 files changed

+227
-76
lines changed

test/src/unit-enumerations.cc

Lines changed: 99 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,15 @@ QueryCondition create_qc(
164164
TEST_CASE_METHOD(
165165
EnumerationFx, "Create Empty Enumeration", "[enumeration][empty]") {
166166
Enumeration::create(
167-
default_enmr_name, Datatype::INT32, 1, false, nullptr, 0, nullptr, 0);
167+
default_enmr_name,
168+
Datatype::INT32,
169+
1,
170+
false,
171+
nullptr,
172+
0,
173+
nullptr,
174+
0,
175+
memory_tracker_);
168176
}
169177

170178
TEST_CASE_METHOD(
@@ -179,7 +187,8 @@ TEST_CASE_METHOD(
179187
nullptr,
180188
0,
181189
nullptr,
182-
0);
190+
0,
191+
memory_tracker_);
183192
}
184193

185194
TEST_CASE_METHOD(
@@ -259,7 +268,9 @@ TEST_CASE_METHOD(
259268
nullptr,
260269
0,
261270
&offsets,
262-
sizeof(uint64_t));
271+
sizeof(uint64_t),
272+
memory_tracker_);
273+
263274
std::vector<std::string> values = {""};
264275
check_enumeration(
265276
enmr,
@@ -328,7 +339,8 @@ TEST_CASE_METHOD(
328339
values.data(),
329340
values.size() * sizeof(int),
330341
nullptr,
331-
0);
342+
0,
343+
memory_tracker_);
332344
check_enumeration(enmr, default_enmr_name, values, Datatype::INT32, 2, false);
333345
}
334346

@@ -347,7 +359,8 @@ TEST_CASE_METHOD(
347359
nullptr,
348360
10,
349361
nullptr,
350-
0),
362+
0,
363+
memory_tracker_),
351364
matcher);
352365
}
353366

@@ -360,7 +373,15 @@ TEST_CASE_METHOD(
360373
"Invalid data size; must be non-zero for fixed size data.");
361374
REQUIRE_THROWS_WITH(
362375
Enumeration::create(
363-
default_enmr_name, Datatype::INT32, 1, false, &val, 0, nullptr, 0),
376+
default_enmr_name,
377+
Datatype::INT32,
378+
1,
379+
false,
380+
&val,
381+
0,
382+
nullptr,
383+
0,
384+
memory_tracker_),
364385
matcher);
365386
}
366387

@@ -380,7 +401,8 @@ TEST_CASE_METHOD(
380401
val,
381402
strlen(val),
382403
nullptr,
383-
8),
404+
8,
405+
memory_tracker_),
384406
matcher);
385407
}
386408

@@ -401,7 +423,8 @@ TEST_CASE_METHOD(
401423
val,
402424
strlen(val),
403425
&offset,
404-
0),
426+
0,
427+
memory_tracker_),
405428
matcher);
406429
}
407430

@@ -422,7 +445,8 @@ TEST_CASE_METHOD(
422445
nullptr,
423446
5,
424447
&offsets,
425-
sizeof(uint64_t)),
448+
sizeof(uint64_t),
449+
memory_tracker_),
426450
matcher);
427451
}
428452

@@ -443,7 +467,8 @@ TEST_CASE_METHOD(
443467
nullptr,
444468
5,
445469
&offsets,
446-
sizeof(uint64_t)),
470+
sizeof(uint64_t),
471+
memory_tracker_),
447472
matcher);
448473
}
449474

@@ -465,7 +490,8 @@ TEST_CASE_METHOD(
465490
data,
466491
2,
467492
&offsets,
468-
sizeof(uint64_t)),
493+
sizeof(uint64_t),
494+
memory_tracker_),
469495
matcher);
470496
}
471497

@@ -482,7 +508,8 @@ TEST_CASE_METHOD(
482508
values.data(),
483509
values.size() * sizeof(int),
484510
nullptr,
485-
0));
511+
0,
512+
memory_tracker_));
486513
}
487514

488515
TEST_CASE_METHOD(
@@ -498,7 +525,8 @@ TEST_CASE_METHOD(
498525
values.data(),
499526
values.size() * sizeof(int),
500527
nullptr,
501-
0));
528+
0,
529+
memory_tracker_));
502530
}
503531

504532
TEST_CASE_METHOD(
@@ -515,7 +543,8 @@ TEST_CASE_METHOD(
515543
values.data(),
516544
values.size() * sizeof(int),
517545
nullptr,
518-
0));
546+
0,
547+
memory_tracker_));
519548
}
520549

521550
TEST_CASE_METHOD(
@@ -531,7 +560,8 @@ TEST_CASE_METHOD(
531560
values.data(),
532561
values.size() * sizeof(int),
533562
nullptr,
534-
0));
563+
0,
564+
memory_tracker_));
535565
}
536566

537567
TEST_CASE_METHOD(
@@ -547,7 +577,8 @@ TEST_CASE_METHOD(
547577
nullptr,
548578
values.size() * sizeof(int),
549579
nullptr,
550-
0));
580+
0,
581+
memory_tracker_));
551582
}
552583

553584
TEST_CASE_METHOD(
@@ -563,7 +594,8 @@ TEST_CASE_METHOD(
563594
values.data(),
564595
0,
565596
nullptr,
566-
0));
597+
0,
598+
memory_tracker_));
567599
}
568600

569601
TEST_CASE_METHOD(
@@ -580,7 +612,8 @@ TEST_CASE_METHOD(
580612
data,
581613
strlen(data),
582614
nullptr,
583-
offsets.size() * sizeof(uint64_t)));
615+
offsets.size() * sizeof(uint64_t),
616+
memory_tracker_));
584617
}
585618

586619
TEST_CASE_METHOD(
@@ -597,7 +630,8 @@ TEST_CASE_METHOD(
597630
data,
598631
strlen(data),
599632
offsets.data(),
600-
0));
633+
0,
634+
memory_tracker_));
601635
}
602636

603637
TEST_CASE_METHOD(
@@ -614,7 +648,8 @@ TEST_CASE_METHOD(
614648
values.data(),
615649
values.size() * sizeof(int),
616650
offsets.data(),
617-
0));
651+
0,
652+
memory_tracker_));
618653
}
619654

620655
TEST_CASE_METHOD(
@@ -630,7 +665,8 @@ TEST_CASE_METHOD(
630665
values.data(),
631666
values.size() * sizeof(int),
632667
nullptr,
633-
100));
668+
100,
669+
memory_tracker_));
634670
}
635671

636672
TEST_CASE_METHOD(
@@ -649,7 +685,8 @@ TEST_CASE_METHOD(
649685
data,
650686
strlen(data),
651687
offsets.data(),
652-
3));
688+
3,
689+
memory_tracker_));
653690
}
654691

655692
TEST_CASE_METHOD(
@@ -667,7 +704,8 @@ TEST_CASE_METHOD(
667704
data,
668705
strlen(data),
669706
offsets.data(),
670-
offsets.size() * sizeof(uint64_t)));
707+
offsets.size() * sizeof(uint64_t),
708+
memory_tracker_));
671709
}
672710

673711
TEST_CASE_METHOD(
@@ -685,7 +723,8 @@ TEST_CASE_METHOD(
685723
values.data(),
686724
3,
687725
nullptr,
688-
0));
726+
0,
727+
memory_tracker_));
689728
}
690729

691730
TEST_CASE_METHOD(
@@ -755,7 +794,8 @@ TEST_CASE_METHOD(
755794
init_values.data(),
756795
init_values.size() * sizeof(int),
757796
nullptr,
758-
0);
797+
0,
798+
memory_tracker_);
759799
auto enmr2 = extend_enumeration(enmr1, extend_values);
760800
check_enumeration(
761801
enmr2, default_enmr_name, final_values, Datatype::INT32, 2, false);
@@ -952,7 +992,7 @@ TEST_CASE_METHOD(
952992
memset(data, 1, 4);
953993

954994
Deserializer deserializer(tile.data(), tile.size());
955-
REQUIRE_THROWS(Enumeration::deserialize(deserializer));
995+
REQUIRE_THROWS(Enumeration::deserialize(deserializer, memory_tracker_));
956996
}
957997

958998
TEST_CASE_METHOD(
@@ -1402,7 +1442,8 @@ TEST_CASE_METHOD(
14021442
data.data(),
14031443
data.size(),
14041444
offsets.data(),
1405-
offsets.size() * constants::cell_var_offset_size);
1445+
offsets.size() * constants::cell_var_offset_size,
1446+
memory_tracker_);
14061447

14071448
schema->add_enumeration(enmr);
14081449

@@ -1431,7 +1472,8 @@ TEST_CASE_METHOD(
14311472
data.data(),
14321473
data.size(),
14331474
offsets.data(),
1434-
offsets.size() * constants::cell_var_offset_size);
1475+
offsets.size() * constants::cell_var_offset_size,
1476+
memory_tracker_);
14351477
schema->add_enumeration(enmr);
14361478
}
14371479

@@ -1561,7 +1603,8 @@ TEST_CASE_METHOD(
15611603
enmr2->data().data(),
15621604
enmr2->data().size(),
15631605
enmr2->offsets().data(),
1564-
enmr2->offsets().size());
1606+
enmr2->offsets().size(),
1607+
memory_tracker_);
15651608

15661609
auto matcher = Catch::Matchers::ContainsSubstring(
15671610
"Enumeration path name for 'test_enmr' already exists in this schema.");
@@ -2224,7 +2267,15 @@ TEST_CASE_METHOD(
22242267
auto schema1 = create_schema();
22252268

22262269
auto enmr1 = Enumeration::create(
2227-
"empty_fixed", Datatype::INT32, 1, false, nullptr, 0, nullptr, 0);
2270+
"empty_fixed",
2271+
Datatype::INT32,
2272+
1,
2273+
false,
2274+
nullptr,
2275+
0,
2276+
nullptr,
2277+
0,
2278+
memory_tracker_);
22282279
auto enmr2 = Enumeration::create(
22292280
"empty_var",
22302281
Datatype::STRING_ASCII,
@@ -2233,7 +2284,8 @@ TEST_CASE_METHOD(
22332284
nullptr,
22342285
0,
22352286
nullptr,
2236-
0);
2287+
0,
2288+
memory_tracker_);
22372289

22382290
schema1->add_enumeration(enmr1);
22392291
schema1->add_enumeration(enmr2);
@@ -2529,7 +2581,8 @@ shared_ptr<const Enumeration> EnumerationFx::create_enumeration(
25292581
raw_values.data(),
25302582
raw_values.size() * sizeof(uint8_t),
25312583
nullptr,
2532-
0);
2584+
0,
2585+
memory_tracker_);
25332586
} else if constexpr (std::is_pod_v<T>) {
25342587
return Enumeration::create(
25352588
name,
@@ -2539,7 +2592,8 @@ shared_ptr<const Enumeration> EnumerationFx::create_enumeration(
25392592
values.data(),
25402593
values.size() * sizeof(T),
25412594
nullptr,
2542-
0);
2595+
0,
2596+
memory_tracker_);
25432597
} else {
25442598
uint64_t total_size = 0;
25452599
for (auto v : values) {
@@ -2565,14 +2619,23 @@ shared_ptr<const Enumeration> EnumerationFx::create_enumeration(
25652619
data.data(),
25662620
total_size,
25672621
offsets.data(),
2568-
offsets.size() * sizeof(uint64_t));
2622+
offsets.size() * sizeof(uint64_t),
2623+
memory_tracker_);
25692624
}
25702625
}
25712626

25722627
shared_ptr<const Enumeration> EnumerationFx::create_empty_enumeration(
25732628
Datatype type, uint32_t cell_val_num, bool ordered, std::string name) {
25742629
return Enumeration::create(
2575-
name, type, cell_val_num, ordered, nullptr, 0, nullptr, 0);
2630+
name,
2631+
type,
2632+
cell_val_num,
2633+
ordered,
2634+
nullptr,
2635+
0,
2636+
nullptr,
2637+
0,
2638+
memory_tracker_);
25762639
}
25772640

25782641
template <typename T>
@@ -2646,7 +2709,7 @@ void EnumerationFx::check_storage_deserialization(
26462709
auto tile = serialize_to_tile(enmr);
26472710

26482711
Deserializer deserializer(tile.data(), tile.size());
2649-
auto deserialized = Enumeration::deserialize(deserializer);
2712+
auto deserialized = Enumeration::deserialize(deserializer, memory_tracker_);
26502713

26512714
REQUIRE(deserialized->name() == enmr->name());
26522715
REQUIRE(deserialized->path_name().empty() == false);

test/src/unit-request-handlers.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,8 @@ HandleLoadArraySchemaRequestFx::create_string_enumeration(
392392
data.data(),
393393
total_size,
394394
offsets.data(),
395-
offsets.size() * sizeof(uint64_t));
395+
offsets.size() * sizeof(uint64_t),
396+
tiledb::test::create_test_memory_tracker());
396397
}
397398

398399
shared_ptr<ArraySchema> HandleLoadArraySchemaRequestFx::create_schema() {

0 commit comments

Comments
 (0)