Skip to content

Commit

Permalink
[eclipse-iceoryx#213]: test more crates under static_config
Browse files Browse the repository at this point in the history
  • Loading branch information
xieyuschen committed Oct 10, 2024
1 parent ca22976 commit a0bf736
Showing 1 changed file with 65 additions and 8 deletions.
73 changes: 65 additions & 8 deletions iceoryx2/src/service/static_config/messaging_pattern.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,9 @@ impl Display for MessagingPattern {
}

impl MessagingPattern {
/// checks whether the 2 MessagingPattern are the same regardless the values inside them.
pub(crate) fn is_same_pattern(&self, rhs: &MessagingPattern) -> bool {
match self {
MessagingPattern::PublishSubscribe(_) => {
matches!(rhs, MessagingPattern::PublishSubscribe(_))
}
MessagingPattern::Event(_) => {
matches!(rhs, MessagingPattern::Event(_))
}
}
std::mem::discriminant(self) == std::mem::discriminant(rhs)
}

pub(crate) fn required_amount_of_samples_per_data_segment(
Expand All @@ -68,3 +62,66 @@ impl MessagingPattern {
}
}
}

#[cfg(test)]
mod tests {
use iceoryx2_bb_testing::assert_that;

use super::*;
use crate::service::config;
use crate::service::static_config::event;
use crate::service::static_config::publish_subscribe;

#[test]
fn test_is_same_pattern() {
let cfg = config::Config::default();
let p1 = MessagingPattern::PublishSubscribe(publish_subscribe::StaticConfig::new(&cfg));
let p2 = MessagingPattern::PublishSubscribe(publish_subscribe::StaticConfig::new(&cfg));
assert_that!(p1.is_same_pattern(&p2), eq true);
assert_that!(p2.is_same_pattern(&p1), eq true);

let mut new_defaults = config::Defaults {
publish_subscribe: cfg.defaults.publish_subscribe.clone(),
event: cfg.defaults.event.clone(),
};
new_defaults.event.event_id_max_value -= 1;
new_defaults.publish_subscribe.max_nodes -= 1;

let cfg2 = config::Config {
defaults: new_defaults,
global: cfg.global.clone(),
};

// ensure the cfg and cfg2 are not equal
assert_that!(cfg, ne cfg2);
let p3 = MessagingPattern::PublishSubscribe(publish_subscribe::StaticConfig::new(&cfg2));
assert_that!(p1.is_same_pattern(&p3), eq true);
assert_that!(p3.is_same_pattern(&p1), eq true);

let e1 = MessagingPattern::Event(event::StaticConfig::new(&cfg));
let e2 = MessagingPattern::Event(event::StaticConfig::new(&cfg));
assert_that!(e1.is_same_pattern(&e2), eq true);
assert_that!(e2.is_same_pattern(&e1), eq true);

let e3 = MessagingPattern::Event(event::StaticConfig::new(&cfg2));
assert_that!(e1.is_same_pattern(&e3), eq true);
assert_that!(e2.is_same_pattern(&e3), eq true);

assert_that!(p1.is_same_pattern(&e1), eq false);
assert_that!(p3.is_same_pattern(&e3), eq false);
}

#[test]
fn test_required_amount_of_samples_per_data_segment() {
let cfg = config::Config::default();
let p1 = MessagingPattern::PublishSubscribe(publish_subscribe::StaticConfig::new(&cfg));
let sut = p1.required_amount_of_samples_per_data_segment(0);
assert_that!(sut, eq 33);
let sut = p1.required_amount_of_samples_per_data_segment(1);
assert_that!(sut, eq 34);

let e1 = MessagingPattern::Event(event::StaticConfig::new(&cfg));
let sut = e1.required_amount_of_samples_per_data_segment(1);
assert_that!(sut, eq 0);
}
}

0 comments on commit a0bf736

Please sign in to comment.