Skip to content

Commit 4dda89c

Browse files
committed
[eclipse-iceoryx#139] Prepare tests to deal with wrong type
1 parent 78de8a8 commit 4dda89c

File tree

1 file changed

+79
-26
lines changed

1 file changed

+79
-26
lines changed

iceoryx2-cal/tests/dynamic_storage_trait_tests.rs

+79-26
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ mod dynamic_storage {
2121
use iceoryx2_bb_testing::{assert_that, test_requires};
2222
use iceoryx2_cal::dynamic_storage::*;
2323
use iceoryx2_cal::named_concept::*;
24-
use std::process::Termination;
2524
use std::sync::atomic::{AtomicI64, Ordering};
26-
use std::sync::Barrier;
2725

2826
fn generate_name() -> FileName {
2927
let mut file = FileName::new(b"test_").unwrap();
@@ -55,7 +53,7 @@ mod dynamic_storage {
5553
unsafe impl Sync for TestData {}
5654

5755
#[test]
58-
fn create_and_read_works<Sut: DynamicStorage<TestData>>() {
56+
fn create_and_read_works<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
5957
let storage_name = generate_name();
6058

6159
let sut = Sut::Builder::new(&storage_name)
@@ -78,7 +76,7 @@ mod dynamic_storage {
7876
}
7977

8078
#[test]
81-
fn open_non_existing_fails<Sut: DynamicStorage<TestData>>() {
79+
fn open_non_existing_fails<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
8280
let storage_name = generate_name();
8381
let sut = Sut::Builder::new(&storage_name).open();
8482

@@ -87,7 +85,10 @@ mod dynamic_storage {
8785
}
8886

8987
#[test]
90-
fn when_storage_goes_out_of_scope_storage_is_removed<Sut: DynamicStorage<TestData>>() {
88+
fn when_storage_goes_out_of_scope_storage_is_removed<
89+
Sut: DynamicStorage<TestData>,
90+
WrongTypeSut: DynamicStorage<u64>,
91+
>() {
9192
let storage_name = generate_name();
9293

9394
let sut = Sut::Builder::new(&storage_name).create(TestData::new(123));
@@ -100,7 +101,10 @@ mod dynamic_storage {
100101
}
101102

102103
#[test]
103-
fn cannot_create_same_storage_twice<Sut: DynamicStorage<TestData>>() {
104+
fn cannot_create_same_storage_twice<
105+
Sut: DynamicStorage<TestData>,
106+
WrongTypeSut: DynamicStorage<u64>,
107+
>() {
104108
let storage_name = generate_name();
105109

106110
let _sut1 = Sut::Builder::new(&storage_name).create(TestData::new(123));
@@ -114,7 +118,10 @@ mod dynamic_storage {
114118
}
115119

116120
#[test]
117-
fn after_storage_is_opened_creator_can_be_dropped<Sut: DynamicStorage<TestData>>() {
121+
fn after_storage_is_opened_creator_can_be_dropped<
122+
Sut: DynamicStorage<TestData>,
123+
WrongTypeSut: DynamicStorage<u64>,
124+
>() {
118125
test_requires!(Sut::does_support_persistency());
119126

120127
let storage_name = generate_name();
@@ -144,7 +151,10 @@ mod dynamic_storage {
144151
}
145152

146153
#[test]
147-
fn create_and_multiple_openers_works<Sut: DynamicStorage<TestData>>() {
154+
fn create_and_multiple_openers_works<
155+
Sut: DynamicStorage<TestData>,
156+
WrongTypeSut: DynamicStorage<u64>,
157+
>() {
148158
const NUMBER_OF_OPENERS: u64 = 64;
149159
let storage_name = generate_name();
150160

@@ -173,7 +183,7 @@ mod dynamic_storage {
173183
}
174184

175185
#[test]
176-
fn release_ownership_works<Sut: DynamicStorage<TestData>>() {
186+
fn release_ownership_works<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
177187
test_requires!(Sut::does_support_persistency());
178188
let storage_name = generate_name();
179189

@@ -198,7 +208,10 @@ mod dynamic_storage {
198208
}
199209

200210
#[test]
201-
fn create_non_owning_storage_works<Sut: DynamicStorage<TestData>>() {
211+
fn create_non_owning_storage_works<
212+
Sut: DynamicStorage<TestData>,
213+
WrongTypeSut: DynamicStorage<u64>,
214+
>() {
202215
test_requires!(Sut::does_support_persistency());
203216
let storage_name = generate_name();
204217

@@ -223,7 +236,7 @@ mod dynamic_storage {
223236
}
224237

225238
#[test]
226-
fn acquire_ownership_works<Sut: DynamicStorage<TestData>>() {
239+
fn acquire_ownership_works<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
227240
test_requires!(Sut::does_support_persistency());
228241
let storage_name = generate_name();
229242

@@ -240,7 +253,7 @@ mod dynamic_storage {
240253
}
241254

242255
#[test]
243-
fn does_exist_works<Sut: DynamicStorage<TestData>>() {
256+
fn does_exist_works<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
244257
let storage_name = generate_name();
245258

246259
assert_that!(Sut::does_exist(&storage_name), eq Ok(false));
@@ -261,7 +274,7 @@ mod dynamic_storage {
261274
}
262275

263276
#[test]
264-
fn has_ownership_works<Sut: DynamicStorage<TestData>>() {
277+
fn has_ownership_works<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
265278
let storage_name = generate_name();
266279

267280
let sut = Sut::Builder::new(&storage_name)
@@ -281,7 +294,10 @@ mod dynamic_storage {
281294
}
282295

283296
#[test]
284-
fn create_and_initialize_works<Sut: DynamicStorage<TestData>>() {
297+
fn create_and_initialize_works<
298+
Sut: DynamicStorage<TestData>,
299+
WrongTypeSut: DynamicStorage<u64>,
300+
>() {
285301
let storage_name = generate_name();
286302

287303
let sut = Sut::Builder::new(&storage_name)
@@ -328,7 +344,10 @@ mod dynamic_storage {
328344
}
329345

330346
#[test]
331-
fn create_fails_when_initialization_fails<Sut: DynamicStorage<TestData>>() {
347+
fn create_fails_when_initialization_fails<
348+
Sut: DynamicStorage<TestData>,
349+
WrongTypeSut: DynamicStorage<u64>,
350+
>() {
332351
let storage_name = generate_name();
333352

334353
let sut = Sut::Builder::new(&storage_name)
@@ -347,7 +366,7 @@ mod dynamic_storage {
347366
}
348367

349368
#[test]
350-
fn list_storages_works<Sut: DynamicStorage<TestData>>() {
369+
fn list_storages_works<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
351370
let mut sut_names = vec![];
352371
let mut suts = vec![];
353372
const LIMIT: usize = 5;
@@ -392,7 +411,10 @@ mod dynamic_storage {
392411
}
393412

394413
#[test]
395-
fn custom_suffix_keeps_storages_separated<Sut: DynamicStorage<TestData>>() {
414+
fn custom_suffix_keeps_storages_separated<
415+
Sut: DynamicStorage<TestData>,
416+
WrongTypeSut: DynamicStorage<u64>,
417+
>() {
396418
let config_1 = <Sut as NamedConceptMgmt>::Configuration::default()
397419
.suffix(unsafe { FileName::new_unchecked(b".s1") });
398420
let config_2 = <Sut as NamedConceptMgmt>::Configuration::default()
@@ -443,15 +465,18 @@ mod dynamic_storage {
443465
}
444466

445467
#[test]
446-
fn defaults_for_configuration_are_set_correctly<Sut: DynamicStorage<TestData>>() {
468+
fn defaults_for_configuration_are_set_correctly<
469+
Sut: DynamicStorage<TestData>,
470+
WrongTypeSut: DynamicStorage<u64>,
471+
>() {
447472
let config = <Sut as NamedConceptMgmt>::Configuration::default();
448473
assert_that!(*config.get_suffix(), eq Sut::default_suffix());
449474
assert_that!(*config.get_path_hint(), eq Sut::default_path_hint());
450475
assert_that!(*config.get_prefix(), eq Sut::default_prefix());
451476
}
452477

453478
#[test]
454-
fn open_or_create_works<Sut: DynamicStorage<TestData>>() {
479+
fn open_or_create_works<Sut: DynamicStorage<TestData>, WrongTypeSut: DynamicStorage<u64>>() {
455480
let sut_name = generate_name();
456481

457482
assert_that!(Sut::does_exist(&sut_name), eq Ok(false));
@@ -468,7 +493,10 @@ mod dynamic_storage {
468493
}
469494

470495
#[test]
471-
fn when_storage_is_removed_it_calls_drop<Sut: DynamicStorage<TestData>>() {
496+
fn when_storage_is_removed_it_calls_drop<
497+
Sut: DynamicStorage<TestData>,
498+
WrongTypeSut: DynamicStorage<u64>,
499+
>() {
472500
let storage_name = generate_name();
473501

474502
LifetimeTracker::start_tracking();
@@ -484,7 +512,10 @@ mod dynamic_storage {
484512
}
485513

486514
#[test]
487-
fn when_storage_is_persistent_it_does_not_call_drop<Sut: DynamicStorage<TestData>>() {
515+
fn when_storage_is_persistent_it_does_not_call_drop<
516+
Sut: DynamicStorage<TestData>,
517+
WrongTypeSut: DynamicStorage<u64>,
518+
>() {
488519
if Sut::does_support_persistency() {
489520
let storage_name = generate_name();
490521

@@ -502,7 +533,10 @@ mod dynamic_storage {
502533
}
503534

504535
#[test]
505-
fn explicit_remove_of_persistent_storage_calls_drop<Sut: DynamicStorage<TestData>>() {
536+
fn explicit_remove_of_persistent_storage_calls_drop<
537+
Sut: DynamicStorage<TestData>,
538+
WrongTypeSut: DynamicStorage<u64>,
539+
>() {
506540
let storage_name = generate_name();
507541

508542
LifetimeTracker::start_tracking();
@@ -522,6 +556,7 @@ mod dynamic_storage {
522556
#[test]
523557
fn remove_storage_with_unfinished_initialization_does_not_call_drop<
524558
Sut: DynamicStorage<TestData> + 'static,
559+
WrongTypeSut: DynamicStorage<u64>,
525560
>() {
526561
if std::any::TypeId::of::<Sut>()
527562
// skip process local test since the process locality ensures that an initializer
@@ -545,13 +580,31 @@ mod dynamic_storage {
545580
}
546581

547582
#[test]
548-
fn opening_dynamic_storage_with_wrong_type_fails<Sut: DynamicStorage<TestData>>() {}
583+
fn dynamic_storage_with_wrong_type_does_not_exist<
584+
Sut: DynamicStorage<TestData>,
585+
WrongTypeSut: DynamicStorage<u64>,
586+
>() {
587+
}
588+
589+
#[test]
590+
fn opening_dynamic_storage_with_wrong_type_fails<
591+
Sut: DynamicStorage<TestData>,
592+
WrongTypeSut: DynamicStorage<u64>,
593+
>() {
594+
}
549595

550-
fn removing_dynamic_storage_with_wrong_type_fails<Sut: DynamicStorage<TestData>>() {}
596+
#[test]
597+
fn removing_dynamic_storage_with_wrong_type_fails<
598+
Sut: DynamicStorage<TestData>,
599+
WrongTypeSut: DynamicStorage<u64>,
600+
>() {
601+
}
551602

552-
#[instantiate_tests(<iceoryx2_cal::dynamic_storage::posix_shared_memory::Storage<TestData>>)]
603+
#[instantiate_tests(<iceoryx2_cal::dynamic_storage::posix_shared_memory::Storage<TestData>,
604+
iceoryx2_cal::dynamic_storage::posix_shared_memory::Storage<u64>>)]
553605
mod posix_shared_memory {}
554606

555-
#[instantiate_tests(<iceoryx2_cal::dynamic_storage::process_local::Storage<TestData>>)]
607+
#[instantiate_tests(<iceoryx2_cal::dynamic_storage::process_local::Storage<TestData>,
608+
iceoryx2_cal::dynamic_storage::process_local::Storage<u64>>)]
556609
mod process_local {}
557610
}

0 commit comments

Comments
 (0)