Skip to content

Commit 47e70d8

Browse files
Abigale KimKiterLuc
andauthored
Integrate std::prm memory tracking for class Enumeration. (#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 2fcf371 commit 47e70d8

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
@@ -159,7 +159,15 @@ QueryCondition create_qc(
159159
TEST_CASE_METHOD(
160160
EnumerationFx, "Create Empty Enumeration", "[enumeration][empty]") {
161161
Enumeration::create(
162-
default_enmr_name, Datatype::INT32, 1, false, nullptr, 0, nullptr, 0);
162+
default_enmr_name,
163+
Datatype::INT32,
164+
1,
165+
false,
166+
nullptr,
167+
0,
168+
nullptr,
169+
0,
170+
memory_tracker_);
163171
}
164172

165173
TEST_CASE_METHOD(
@@ -174,7 +182,8 @@ TEST_CASE_METHOD(
174182
nullptr,
175183
0,
176184
nullptr,
177-
0);
185+
0,
186+
memory_tracker_);
178187
}
179188

180189
TEST_CASE_METHOD(
@@ -254,7 +263,9 @@ TEST_CASE_METHOD(
254263
nullptr,
255264
0,
256265
&offsets,
257-
sizeof(uint64_t));
266+
sizeof(uint64_t),
267+
memory_tracker_);
268+
258269
std::vector<std::string> values = {""};
259270
check_enumeration(
260271
enmr,
@@ -323,7 +334,8 @@ TEST_CASE_METHOD(
323334
values.data(),
324335
values.size() * sizeof(int),
325336
nullptr,
326-
0);
337+
0,
338+
memory_tracker_);
327339
check_enumeration(enmr, default_enmr_name, values, Datatype::INT32, 2, false);
328340
}
329341

@@ -342,7 +354,8 @@ TEST_CASE_METHOD(
342354
nullptr,
343355
10,
344356
nullptr,
345-
0),
357+
0,
358+
memory_tracker_),
346359
matcher);
347360
}
348361

@@ -355,7 +368,15 @@ TEST_CASE_METHOD(
355368
"Invalid data size; must be non-zero for fixed size data.");
356369
REQUIRE_THROWS_WITH(
357370
Enumeration::create(
358-
default_enmr_name, Datatype::INT32, 1, false, &val, 0, nullptr, 0),
371+
default_enmr_name,
372+
Datatype::INT32,
373+
1,
374+
false,
375+
&val,
376+
0,
377+
nullptr,
378+
0,
379+
memory_tracker_),
359380
matcher);
360381
}
361382

@@ -375,7 +396,8 @@ TEST_CASE_METHOD(
375396
val,
376397
strlen(val),
377398
nullptr,
378-
8),
399+
8,
400+
memory_tracker_),
379401
matcher);
380402
}
381403

@@ -396,7 +418,8 @@ TEST_CASE_METHOD(
396418
val,
397419
strlen(val),
398420
&offset,
399-
0),
421+
0,
422+
memory_tracker_),
400423
matcher);
401424
}
402425

@@ -417,7 +440,8 @@ TEST_CASE_METHOD(
417440
nullptr,
418441
5,
419442
&offsets,
420-
sizeof(uint64_t)),
443+
sizeof(uint64_t),
444+
memory_tracker_),
421445
matcher);
422446
}
423447

@@ -438,7 +462,8 @@ TEST_CASE_METHOD(
438462
nullptr,
439463
5,
440464
&offsets,
441-
sizeof(uint64_t)),
465+
sizeof(uint64_t),
466+
memory_tracker_),
442467
matcher);
443468
}
444469

@@ -460,7 +485,8 @@ TEST_CASE_METHOD(
460485
data,
461486
2,
462487
&offsets,
463-
sizeof(uint64_t)),
488+
sizeof(uint64_t),
489+
memory_tracker_),
464490
matcher);
465491
}
466492

@@ -477,7 +503,8 @@ TEST_CASE_METHOD(
477503
values.data(),
478504
values.size() * sizeof(int),
479505
nullptr,
480-
0));
506+
0,
507+
memory_tracker_));
481508
}
482509

483510
TEST_CASE_METHOD(
@@ -493,7 +520,8 @@ TEST_CASE_METHOD(
493520
values.data(),
494521
values.size() * sizeof(int),
495522
nullptr,
496-
0));
523+
0,
524+
memory_tracker_));
497525
}
498526

499527
TEST_CASE_METHOD(
@@ -510,7 +538,8 @@ TEST_CASE_METHOD(
510538
values.data(),
511539
values.size() * sizeof(int),
512540
nullptr,
513-
0));
541+
0,
542+
memory_tracker_));
514543
}
515544

516545
TEST_CASE_METHOD(
@@ -526,7 +555,8 @@ TEST_CASE_METHOD(
526555
values.data(),
527556
values.size() * sizeof(int),
528557
nullptr,
529-
0));
558+
0,
559+
memory_tracker_));
530560
}
531561

532562
TEST_CASE_METHOD(
@@ -542,7 +572,8 @@ TEST_CASE_METHOD(
542572
nullptr,
543573
values.size() * sizeof(int),
544574
nullptr,
545-
0));
575+
0,
576+
memory_tracker_));
546577
}
547578

548579
TEST_CASE_METHOD(
@@ -558,7 +589,8 @@ TEST_CASE_METHOD(
558589
values.data(),
559590
0,
560591
nullptr,
561-
0));
592+
0,
593+
memory_tracker_));
562594
}
563595

564596
TEST_CASE_METHOD(
@@ -575,7 +607,8 @@ TEST_CASE_METHOD(
575607
data,
576608
strlen(data),
577609
nullptr,
578-
offsets.size() * sizeof(uint64_t)));
610+
offsets.size() * sizeof(uint64_t),
611+
memory_tracker_));
579612
}
580613

581614
TEST_CASE_METHOD(
@@ -592,7 +625,8 @@ TEST_CASE_METHOD(
592625
data,
593626
strlen(data),
594627
offsets.data(),
595-
0));
628+
0,
629+
memory_tracker_));
596630
}
597631

598632
TEST_CASE_METHOD(
@@ -609,7 +643,8 @@ TEST_CASE_METHOD(
609643
values.data(),
610644
values.size() * sizeof(int),
611645
offsets.data(),
612-
0));
646+
0,
647+
memory_tracker_));
613648
}
614649

615650
TEST_CASE_METHOD(
@@ -625,7 +660,8 @@ TEST_CASE_METHOD(
625660
values.data(),
626661
values.size() * sizeof(int),
627662
nullptr,
628-
100));
663+
100,
664+
memory_tracker_));
629665
}
630666

631667
TEST_CASE_METHOD(
@@ -644,7 +680,8 @@ TEST_CASE_METHOD(
644680
data,
645681
strlen(data),
646682
offsets.data(),
647-
3));
683+
3,
684+
memory_tracker_));
648685
}
649686

650687
TEST_CASE_METHOD(
@@ -662,7 +699,8 @@ TEST_CASE_METHOD(
662699
data,
663700
strlen(data),
664701
offsets.data(),
665-
offsets.size() * sizeof(uint64_t)));
702+
offsets.size() * sizeof(uint64_t),
703+
memory_tracker_));
666704
}
667705

668706
TEST_CASE_METHOD(
@@ -680,7 +718,8 @@ TEST_CASE_METHOD(
680718
values.data(),
681719
3,
682720
nullptr,
683-
0));
721+
0,
722+
memory_tracker_));
684723
}
685724

686725
TEST_CASE_METHOD(
@@ -750,7 +789,8 @@ TEST_CASE_METHOD(
750789
init_values.data(),
751790
init_values.size() * sizeof(int),
752791
nullptr,
753-
0);
792+
0,
793+
memory_tracker_);
754794
auto enmr2 = extend_enumeration(enmr1, extend_values);
755795
check_enumeration(
756796
enmr2, default_enmr_name, final_values, Datatype::INT32, 2, false);
@@ -947,7 +987,7 @@ TEST_CASE_METHOD(
947987
memset(data, 1, 4);
948988

949989
Deserializer deserializer(tile.data(), tile.size());
950-
REQUIRE_THROWS(Enumeration::deserialize(deserializer));
990+
REQUIRE_THROWS(Enumeration::deserialize(deserializer, memory_tracker_));
951991
}
952992

953993
TEST_CASE_METHOD(
@@ -1397,7 +1437,8 @@ TEST_CASE_METHOD(
13971437
data.data(),
13981438
data.size(),
13991439
offsets.data(),
1400-
offsets.size() * constants::cell_var_offset_size);
1440+
offsets.size() * constants::cell_var_offset_size,
1441+
memory_tracker_);
14011442

14021443
schema->add_enumeration(enmr);
14031444

@@ -1426,7 +1467,8 @@ TEST_CASE_METHOD(
14261467
data.data(),
14271468
data.size(),
14281469
offsets.data(),
1429-
offsets.size() * constants::cell_var_offset_size);
1470+
offsets.size() * constants::cell_var_offset_size,
1471+
memory_tracker_);
14301472
schema->add_enumeration(enmr);
14311473
}
14321474

@@ -1556,7 +1598,8 @@ TEST_CASE_METHOD(
15561598
enmr2->data().data(),
15571599
enmr2->data().size(),
15581600
enmr2->offsets().data(),
1559-
enmr2->offsets().size());
1601+
enmr2->offsets().size(),
1602+
memory_tracker_);
15601603

15611604
auto matcher = Catch::Matchers::ContainsSubstring(
15621605
"Enumeration path name for 'test_enmr' already exists in this schema.");
@@ -2145,7 +2188,15 @@ TEST_CASE_METHOD(
21452188
auto schema1 = create_schema();
21462189

21472190
auto enmr1 = Enumeration::create(
2148-
"empty_fixed", Datatype::INT32, 1, false, nullptr, 0, nullptr, 0);
2191+
"empty_fixed",
2192+
Datatype::INT32,
2193+
1,
2194+
false,
2195+
nullptr,
2196+
0,
2197+
nullptr,
2198+
0,
2199+
memory_tracker_);
21492200
auto enmr2 = Enumeration::create(
21502201
"empty_var",
21512202
Datatype::STRING_ASCII,
@@ -2154,7 +2205,8 @@ TEST_CASE_METHOD(
21542205
nullptr,
21552206
0,
21562207
nullptr,
2157-
0);
2208+
0,
2209+
memory_tracker_);
21582210

21592211
schema1->add_enumeration(enmr1);
21602212
schema1->add_enumeration(enmr2);
@@ -2450,7 +2502,8 @@ shared_ptr<const Enumeration> EnumerationFx::create_enumeration(
24502502
raw_values.data(),
24512503
raw_values.size() * sizeof(uint8_t),
24522504
nullptr,
2453-
0);
2505+
0,
2506+
memory_tracker_);
24542507
} else if constexpr (std::is_pod_v<T>) {
24552508
return Enumeration::create(
24562509
name,
@@ -2460,7 +2513,8 @@ shared_ptr<const Enumeration> EnumerationFx::create_enumeration(
24602513
values.data(),
24612514
values.size() * sizeof(T),
24622515
nullptr,
2463-
0);
2516+
0,
2517+
memory_tracker_);
24642518
} else {
24652519
uint64_t total_size = 0;
24662520
for (auto v : values) {
@@ -2486,14 +2540,23 @@ shared_ptr<const Enumeration> EnumerationFx::create_enumeration(
24862540
data.data(),
24872541
total_size,
24882542
offsets.data(),
2489-
offsets.size() * sizeof(uint64_t));
2543+
offsets.size() * sizeof(uint64_t),
2544+
memory_tracker_);
24902545
}
24912546
}
24922547

24932548
shared_ptr<const Enumeration> EnumerationFx::create_empty_enumeration(
24942549
Datatype type, uint32_t cell_val_num, bool ordered, std::string name) {
24952550
return Enumeration::create(
2496-
name, type, cell_val_num, ordered, nullptr, 0, nullptr, 0);
2551+
name,
2552+
type,
2553+
cell_val_num,
2554+
ordered,
2555+
nullptr,
2556+
0,
2557+
nullptr,
2558+
0,
2559+
memory_tracker_);
24972560
}
24982561

24992562
template <typename T>
@@ -2567,7 +2630,7 @@ void EnumerationFx::check_storage_deserialization(
25672630
auto tile = serialize_to_tile(enmr);
25682631

25692632
Deserializer deserializer(tile.data(), tile.size());
2570-
auto deserialized = Enumeration::deserialize(deserializer);
2633+
auto deserialized = Enumeration::deserialize(deserializer, memory_tracker_);
25712634

25722635
REQUIRE(deserialized->name() == enmr->name());
25732636
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)