@@ -43,7 +43,7 @@ void EnsureLinksEqual(const TDownloadLink& link1, const TDownloadLink& link2) {
43
43
44
44
void EnsureContainsFunction (TUdfIndex::TPtr index, TString module , const TFunctionInfo& f) {
45
45
TFunctionInfo existingFunc;
46
- UNIT_ASSERT (index->FindFunction (module , f.Name , existingFunc));
46
+ UNIT_ASSERT (index->FindFunction (module , f.Name , existingFunc) == TUdfIndex::EStatus::Found );
47
47
EnsureFunctionsEqual (f, existingFunc);
48
48
}
49
49
}
@@ -52,15 +52,15 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
52
52
Y_UNIT_TEST (Empty) {
53
53
auto index1 = MakeIntrusive<TUdfIndex>();
54
54
55
- UNIT_ASSERT (! index1->ContainsModule (" M1" ));
55
+ UNIT_ASSERT_EQUAL ( index1->ContainsModule (" M1" ), TUdfIndex::EStatus::NotFound );
56
56
UNIT_ASSERT (index1->FindResourceByModule (" M1" ) == nullptr );
57
57
TFunctionInfo f1;
58
- UNIT_ASSERT (! index1->FindFunction (" M1" , " M1.F1" , f1));
58
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M1" , " M1.F1" , f1), TUdfIndex::EStatus::NotFound );
59
59
60
60
auto index2 = index1->Clone ();
61
- UNIT_ASSERT (! index2->ContainsModule (" M1" ));
61
+ UNIT_ASSERT_EQUAL ( index2->ContainsModule (" M1" ), TUdfIndex::EStatus::NotFound );
62
62
UNIT_ASSERT (index2->FindResourceByModule (" M1" ) == nullptr );
63
- UNIT_ASSERT (! index2->FindFunction (" M1" , " M1.F1" , f1));
63
+ UNIT_ASSERT_EQUAL ( index2->FindFunction (" M1" , " M1.F1" , f1), TUdfIndex::EStatus::NotFound );
64
64
}
65
65
66
66
Y_UNIT_TEST (SingleModuleAndFunction) {
@@ -72,28 +72,28 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
72
72
b.AddFunction (func1);
73
73
74
74
index1->RegisterResource (b.Build (), TUdfIndex::EOverrideMode::RaiseError);
75
- UNIT_ASSERT (index1->ContainsModule (" M1" ));
76
- UNIT_ASSERT (! index1->ContainsModule (" M2" ));
75
+ UNIT_ASSERT_EQUAL (index1->ContainsModule (" M1" ), TUdfIndex::EStatus::Found );
76
+ UNIT_ASSERT_EQUAL ( index1->ContainsModule (" M2" ), TUdfIndex::EStatus::NotFound );
77
77
78
78
UNIT_ASSERT (index1->FindResourceByModule (" M2" ) == nullptr );
79
79
auto resource1 = index1->FindResourceByModule (" M1" );
80
80
UNIT_ASSERT (resource1 != nullptr );
81
81
EnsureLinksEqual (resource1->Link , link1);
82
82
83
83
TFunctionInfo f1;
84
- UNIT_ASSERT (! index1->FindFunction (" M2" , " M2.F1" , f1));
84
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M2" , " M2.F1" , f1), TUdfIndex::EStatus::NotFound );
85
85
86
- UNIT_ASSERT (index1->FindFunction (" M1" , " M1.F1" , f1));
86
+ UNIT_ASSERT_EQUAL (index1->FindFunction (" M1" , " M1.F1" , f1), TUdfIndex::EStatus::Found );
87
87
EnsureFunctionsEqual (f1, func1);
88
88
89
89
// ensure both indexes contain the same info
90
90
auto index2 = index1->Clone ();
91
91
92
- UNIT_ASSERT (index1->ContainsModule (" M1" ));
93
- UNIT_ASSERT (index2->ContainsModule (" M1" ));
92
+ UNIT_ASSERT_EQUAL (index1->ContainsModule (" M1" ), TUdfIndex::EStatus::Found );
93
+ UNIT_ASSERT_EQUAL (index2->ContainsModule (" M1" ), TUdfIndex::EStatus::Found );
94
94
95
95
TFunctionInfo f2;
96
- UNIT_ASSERT (index2->FindFunction (" M1" , " M1.F1" , f2));
96
+ UNIT_ASSERT_EQUAL (index2->FindFunction (" M1" , " M1.F1" , f2), TUdfIndex::EStatus::Found );
97
97
EnsureFunctionsEqual (f1, f2);
98
98
99
99
auto resource2 = index2->FindResourceByModule (" M1" );
@@ -140,11 +140,11 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
140
140
EnsureLinksEqual (r22->Link , link2);
141
141
142
142
// check modules
143
- UNIT_ASSERT (index1->ContainsModule (" M1" ));
144
- UNIT_ASSERT (index1->ContainsModule (" M2" ));
145
- UNIT_ASSERT (index1->ContainsModule (" M3" ));
146
- UNIT_ASSERT (index1->ContainsModule (" M4" ));
147
- UNIT_ASSERT (! index1->ContainsModule (" M5" ));
143
+ UNIT_ASSERT_EQUAL (index1->ContainsModule (" M1" ), TUdfIndex::EStatus::Found );
144
+ UNIT_ASSERT_EQUAL (index1->ContainsModule (" M2" ), TUdfIndex::EStatus::Found );
145
+ UNIT_ASSERT_EQUAL (index1->ContainsModule (" M3" ), TUdfIndex::EStatus::Found );
146
+ UNIT_ASSERT_EQUAL (index1->ContainsModule (" M4" ), TUdfIndex::EStatus::Found );
147
+ UNIT_ASSERT_EQUAL ( index1->ContainsModule (" M5" ), TUdfIndex::EStatus::NotFound );
148
148
149
149
EnsureContainsFunction (index1, " M1" , func11);
150
150
EnsureContainsFunction (index1, " M1" , func12);
@@ -157,8 +157,8 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
157
157
158
158
TFunctionInfo f;
159
159
// known func, but non-existent module
160
- UNIT_ASSERT (! index1->FindFunction (" M5" , " M1.F1" , f));
161
- UNIT_ASSERT (! index1->FindFunction (" M2" , " M3.F1" , f));
160
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M5" , " M1.F1" , f), TUdfIndex::EStatus::NotFound );
161
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M2" , " M3.F1" , f), TUdfIndex::EStatus::NotFound );
162
162
}
163
163
164
164
Y_UNIT_TEST (ConflictRaiseError) {
@@ -199,7 +199,7 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
199
199
EnsureContainsFunction (index1, " M2" , func13);
200
200
201
201
TFunctionInfo f;
202
- UNIT_ASSERT (! index1->FindFunction (" M3" , " M3.F1" , f));
202
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M3" , " M3.F1" , f), TUdfIndex::EStatus::NotFound );
203
203
}
204
204
205
205
Y_UNIT_TEST (ConflictPreserveExisting) {
@@ -240,7 +240,7 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
240
240
EnsureContainsFunction (index1, " M2" , func13);
241
241
242
242
TFunctionInfo f;
243
- UNIT_ASSERT (! index1->FindFunction (" M3" , " M3.F1" , f));
243
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M3" , " M3.F1" , f), TUdfIndex::EStatus::NotFound );
244
244
}
245
245
246
246
Y_UNIT_TEST (ConflictReplace1WithNew) {
@@ -299,9 +299,9 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
299
299
300
300
// not here anymore
301
301
TFunctionInfo f;
302
- UNIT_ASSERT (! index1->FindFunction (" M1" , " M1.F1" , f));
303
- UNIT_ASSERT (! index1->FindFunction (" M1" , " M1.F2" , f));
304
- UNIT_ASSERT (! index1->FindFunction (" M2" , " M2.F1" , f));
302
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M1" , " M1.F1" , f), TUdfIndex::EStatus::NotFound );
303
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M1" , " M1.F2" , f), TUdfIndex::EStatus::NotFound );
304
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M2" , " M2.F1" , f), TUdfIndex::EStatus::NotFound );
305
305
}
306
306
307
307
Y_UNIT_TEST (ConflictReplace2WithNew) {
@@ -359,10 +359,63 @@ Y_UNIT_TEST_SUITE(TUdfIndexTests) {
359
359
360
360
// not here anymore
361
361
TFunctionInfo f;
362
- UNIT_ASSERT (! index1->FindFunction (" M1" , " M1.F2" , f));
363
- UNIT_ASSERT (! index1->FindFunction (" M2" , " M2.F1" , f));
362
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M1" , " M1.F2" , f), TUdfIndex::EStatus::NotFound );
363
+ UNIT_ASSERT_EQUAL ( index1->FindFunction (" M2" , " M2.F1" , f), TUdfIndex::EStatus::NotFound );
364
364
365
- UNIT_ASSERT (!index1->FindFunction (" M3" , " M3.F3" , f));
366
- UNIT_ASSERT (!index1->FindFunction (" M4" , " M4.F4" , f));
365
+ UNIT_ASSERT_EQUAL (index1->FindFunction (" M3" , " M3.F3" , f), TUdfIndex::EStatus::NotFound);
366
+ UNIT_ASSERT_EQUAL (index1->FindFunction (" M4" , " M4.F4" , f), TUdfIndex::EStatus::NotFound);
367
+ }
368
+
369
+ Y_UNIT_TEST (SetInsensitiveSearch) {
370
+ auto index1 = MakeIntrusive<TUdfIndex>();
371
+ index1->SetCaseSentiveSearch (false );
372
+ auto func1 = BuildFunctionInfo (" M1.FA" , 1 );
373
+ auto func2 = BuildFunctionInfo (" M1.fa" , 1 );
374
+ auto func3 = BuildFunctionInfo (" M1.g" , 1 );
375
+ auto func4 = BuildFunctionInfo (" mx.h" , 1 );
376
+ auto func5 = BuildFunctionInfo (" MX.g" , 1 );
377
+ auto link1 = TDownloadLink::File (" file1" );
378
+
379
+ TResourceBuilder b (link1);
380
+ b.AddFunction (func1);
381
+ b.AddFunction (func2);
382
+ b.AddFunction (func3);
383
+ b.AddFunction (func4);
384
+ b.AddFunction (func5);
385
+
386
+ index1->RegisterResource (b.Build (), TUdfIndex::EOverrideMode::RaiseError);
387
+
388
+ auto checkIndex = [&](auto index) {
389
+ UNIT_ASSERT_EQUAL (index->ContainsModule (" M1" ), TUdfIndex::EStatus::Found);
390
+ UNIT_ASSERT_EQUAL (index->ContainsModule (" m1" ), TUdfIndex::EStatus::Found);
391
+ UNIT_ASSERT_EQUAL (index->ContainsModule (" mx" ), TUdfIndex::EStatus::Found);
392
+ UNIT_ASSERT_EQUAL (index->ContainsModule (" MX" ), TUdfIndex::EStatus::Found);
393
+ UNIT_ASSERT_EQUAL (index->ContainsModule (" mX" ), TUdfIndex::EStatus::Ambigious);
394
+ UNIT_ASSERT_EQUAL (index->ContainsModule (" M3" ), TUdfIndex::EStatus::NotFound);
395
+
396
+ UNIT_ASSERT (index->FindResourceByModule (" M3" ) == nullptr );
397
+ auto resource1 = index->FindResourceByModule (" m1" );
398
+ UNIT_ASSERT (resource1 != nullptr );
399
+ EnsureLinksEqual (resource1->Link , link1);
400
+
401
+ TFunctionInfo f;
402
+ UNIT_ASSERT_EQUAL (index->FindFunction (" m1" , " M1.FA" , f), TUdfIndex::EStatus::Found);
403
+ EnsureFunctionsEqual (f, func1);
404
+ UNIT_ASSERT_EQUAL (index->FindFunction (" m1" , " m1.Fa" , f), TUdfIndex::EStatus::Ambigious);
405
+ UNIT_ASSERT_EQUAL (index->FindFunction (" m1" , " M1.fa" , f), TUdfIndex::EStatus::Found);
406
+ EnsureFunctionsEqual (f, func2);
407
+ UNIT_ASSERT_EQUAL (index->FindFunction (" m1" , " m1.g" , f), TUdfIndex::EStatus::Found);
408
+ EnsureFunctionsEqual (f, func3);
409
+ UNIT_ASSERT_EQUAL (index->FindFunction (" Mx" , " mx.h" , f), TUdfIndex::EStatus::Ambigious);
410
+ UNIT_ASSERT_EQUAL (index->FindFunction (" mx" , " mx.H" , f), TUdfIndex::EStatus::Found);
411
+ EnsureFunctionsEqual (f, func4);
412
+ UNIT_ASSERT_EQUAL (index->FindFunction (" MX" , " mx.g" , f), TUdfIndex::EStatus::Found);
413
+ EnsureFunctionsEqual (f, func5);
414
+ };
415
+
416
+ checkIndex (index1);
417
+ // ensure both indexes contain the same info
418
+ auto index2 = index1->Clone ();
419
+ checkIndex (index2);
367
420
}
368
421
}
0 commit comments