Просмотр исходного кода

system: add condvar_wait_after_notify() unit test

darkfi 2 лет назад
Родитель
Сommit
8f4103d6e2
1 измененных файлов с 18 добавлено и 0 удалено
  1. 18 0
      src/system/condvar.rs

+ 18 - 0
src/system/condvar.rs

@@ -217,6 +217,24 @@ mod tests {
         }))
     }
 
+    #[test]
+    fn condvar_wait_after_notify() {
+        let executor = Arc::new(Executor::new());
+        let executor_ = executor.clone();
+        smol::block_on(executor.run(async move {
+            let cv = Arc::new(CondVar::new());
+
+            let cv2 = cv.clone();
+            executor_.spawn(async move { cv2.wait().await }).detach();
+
+            cv.notify();
+
+            // Should complete immediately
+            let cv2 = cv.clone();
+            executor_.spawn(async move { cv2.wait().await }).detach();
+        }))
+    }
+
     #[test]
     fn condvar_drop() {
         let executor = Arc::new(Executor::new());