瀏覽代碼

Cleanup. Began unit_test.rs

themultiplexer 8 年之前
父節點
當前提交
be1f6605ef
共有 2 個檔案被更改,包括 20 行新增3 行删除
  1. 6
    2
      hw5/task1/src/child/mod.rs
  2. 14
    1
      hw5/task1/src/unit_tests.rs

+ 6
- 2
hw5/task1/src/child/mod.rs 查看文件

@@ -10,8 +10,12 @@ pub fn run_childs(start_pid: i32, arg: &str) -> Result<(), String> {
10 10
     match count {
11 11
         Ok(value) => {
12 12
 
13
-            if value > 0 { }
14
-            fork_children(0, value - 1, start_pid);
13
+            if value > 0 {
14
+                fork_children(0, value - 1, start_pid);
15
+            } else {
16
+                return Err("Number of forks must not be zero.".to_string())
17
+            }
18
+
15 19
             Ok(())
16 20
         },
17 21
         Err(_) => {

+ 14
- 1
hw5/task1/src/unit_tests.rs 查看文件

@@ -1,8 +1,21 @@
1 1
 #[cfg(test)]
2 2
 mod tests {
3
+
4
+    use procinfo;
3 5
     use child::*;
4 6
 
7
+    #[test]
5 8
     fn test_zero_forks(){
6
-        assert_eq!(run_childs(123,"2"))
9
+        assert_eq!(run_childs(123,"0"), Err("Number of forks must not be zero.".to_string()))
10
+    }
11
+
12
+    #[test]
13
+    fn test_one_fork(){
14
+        assert_eq!(run_childs(procinfo::pid::stat_self().unwrap().pid,"1"), Ok(()))
15
+    }
16
+
17
+    #[test]
18
+    fn test_wrong_pid(){
19
+        assert_eq!(run_childs(2,"1"), Ok(()))
7 20
     }
8 21
 }

Loading…
取消
儲存