sysmaster/backport-test-condition-add-unit-test-for-condition.patch
huyubiao 8936fa02c5 sync patches from upstream,change the path of the unit,modify permissions for some directories and files
(cherry picked from commit ce9ff469b57f60130621bc293783bd3ac1fc92f2)
2023-08-05 18:15:53 +08:00

97 lines
3.2 KiB
Diff

From 614e5cd80a89cf5b4eb3f9cd3fe9e8fca9c30e97 Mon Sep 17 00:00:00 2001
From: love_hangzhou <421699196@qq.com>
Date: Wed, 19 Jul 2023 22:28:05 +0800
Subject: [PATCH] test(condition): add unit test for condition
---
coms/service/src/config.rs | 13 +++++++
core/sysmaster/unit/entry/condition.rs | 53 ++++++++++++++++++++++++++
2 files changed, 66 insertions(+)
diff --git a/coms/service/src/config.rs b/coms/service/src/config.rs
index e61340b..ec2ebf4 100644
--- a/coms/service/src/config.rs
+++ b/coms/service/src/config.rs
@@ -218,4 +218,17 @@ mod tests {
assert!(result.is_ok());
}
+ #[test]
+ fn test_get_service_type() {
+ let mut file_path = get_project_root().unwrap();
+ file_path.push("tests/test_units/config.service");
+
+ let paths = vec![file_path];
+
+ let comm = Rc::new(ServiceUnitComm::new());
+ let config = ServiceConfig::new(&comm);
+
+ let result = config.load(paths, false);
+ assert_eq!(config.service_type(), b"Simple")
+ }
}
diff --git a/core/sysmaster/unit/entry/condition.rs b/core/sysmaster/unit/entry/condition.rs
index c3836b4..225297e 100644
--- a/core/sysmaster/unit/entry/condition.rs
+++ b/core/sysmaster/unit/entry/condition.rs
@@ -160,3 +160,56 @@ impl UeCondition {
Self::condition_vec_test(assert_conditions)
}
}
+
+#[cfg(test)]
+mod tests {
+ use basic::condition::ConditionType;
+
+ use crate::unit::entry::condition::condition_keys::CONDITION_NEEDS_UPDATE;
+
+ use super::{
+ assert_keys::ASSERT_PATH_EXISTS, condition_keys::CONDITION_PATH_EXISTS, UeCondition,
+ };
+
+ #[test]
+ fn test_new_condition_trigger() {
+ let uc = UeCondition::new();
+ let c = uc.new_condition(ConditionType::FileNotEmpty, String::from("|!test"));
+ assert_eq!(c.trigger(), 1, "condition trigger is {}", c.trigger());
+ }
+ #[test]
+ fn test_new_condition_is_not_trigger() {
+ let uc = UeCondition::new();
+ let c = uc.new_condition(ConditionType::FileNotEmpty, String::from("!test"));
+ assert_eq!(c.trigger(), 0, "condition trigger is {}", c.trigger());
+ }
+
+ #[test]
+ fn test_new_condition_is_revert() {
+ let uc = UeCondition::new();
+ let c = uc.new_condition(ConditionType::FileNotEmpty, String::from("!test"));
+ assert_eq!(c.revert(), 1, "condition revert is {}", c.revert());
+ }
+ #[test]
+ fn test_new_condition_is_not_revert() {
+ let uc = UeCondition::new();
+ let c = uc.new_condition(ConditionType::FileNotEmpty, String::from("test"));
+ assert_eq!(c.revert(), 0, "condition revert is {}", c.revert());
+ }
+
+ #[test]
+ fn test_add_condition() {
+ let uc = UeCondition::new();
+ uc.add_condition(CONDITION_PATH_EXISTS, String::from("test"));
+ assert_eq!(uc.conditions.borrow().0.len(), 1);
+ uc.add_condition(CONDITION_NEEDS_UPDATE, String::from("True"));
+ assert_eq!(uc.conditions.borrow().0.len(), 2);
+ }
+
+ #[test]
+ fn test_add_assert() {
+ let uc = UeCondition::new();
+ uc.add_assert(ASSERT_PATH_EXISTS, String::from("assert"));
+ assert_eq!(uc.asserts.borrow().0.len(), 1);
+ }
+}
--
2.33.0