]> git.proxmox.com Git - proxmox-backup.git/commitdiff
move future test code into extra file
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 19 Nov 2018 05:40:57 +0000 (06:40 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 19 Nov 2018 05:41:50 +0000 (06:41 +0100)
src/lib.rs
src/main.rs
src/storage/futures.rs [new file with mode: 0644]

index a547fba90c2892cf43efd1e1483dea4f75abcb71..6ff160172bbbce4d29a6c628ac00dabe214395c5 100644 (file)
@@ -12,6 +12,11 @@ pub mod api {
 
 }
 
+pub mod storage {
+
+    pub mod futures;
+}
+
 pub mod getopts;
 
 pub mod api3;
index 5b2f34fd9d9381964ee690fade1a89d0cd5bf9ad..58af18ac9b8b39f5e79ad71eaf8067d768d42afa 100644 (file)
@@ -12,65 +12,10 @@ use apitest::getopts;
 //use failure::*;
 use lazy_static::lazy_static;
 
-
 use futures::future::Future;
 
 use hyper;
 
-use std::thread;
-use std::sync::{Arc, Mutex};
-use failure::*;
-use tokio::prelude::*;
-
-struct StorageOperation {
-    state: Arc<Mutex<bool>>,
-    running: bool,
-}
-
-impl StorageOperation {
-
-    fn new() -> Self {
-        StorageOperation { state: Arc::new(Mutex::new(false)), running: false }
-    }
-
-    fn run(&mut self, task: task::Task) {
-
-        let state = self.state.clone();
-
-        thread::spawn(move || {
-            println!("state {}", state.lock().unwrap());
-            println!("Starting Asnyc worker thread");
-            thread::sleep(::std::time::Duration::from_secs(5));
-            println!("End Asnyc worker thread");
-            *state.lock().unwrap() = true;
-            task.notify();
-        });
-    }
-}
-
-impl Future for StorageOperation {
-    type Item = ();
-    type Error = Error;
-
-    fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
-        if *self.state.lock().unwrap() != true {
-            println!("not ready - parking the task.");
-
-            if !self.running {
-                println!("starting storage thread");
-                self.run(task::current());
-                self.running = true;
-            }
-
-            Ok(Async::NotReady)
-        } else {
-            println!("storage thread ready - task will complete.");
-            Ok(Async::Ready(()))
-        }
-    }
-}
-
-
 fn main() {
     println!("Proxmox REST Server example.");
 
@@ -116,14 +61,6 @@ fn main() {
         .map_err(|e| eprintln!("server error: {}", e));
 
 
-    if false {
-        let op = StorageOperation::new();
-        hyper::rt::run(op.map_err(|e| {
-            println!("Got Error: {}", e);
-            ()
-        }));
-    }
-
     // Run this server for... forever!
     hyper::rt::run(server);
 }
diff --git a/src/storage/futures.rs b/src/storage/futures.rs
new file mode 100644 (file)
index 0000000..6a8fd8f
--- /dev/null
@@ -0,0 +1,64 @@
+use std::thread;
+use std::sync::{Arc, Mutex};
+use failure::*;
+use tokio::prelude::*;
+
+struct StorageOperation {
+    state: Arc<Mutex<bool>>,
+    running: bool,
+}
+
+impl StorageOperation {
+
+    fn new() -> Self {
+        StorageOperation { state: Arc::new(Mutex::new(false)), running: false }
+    }
+
+    fn run(&mut self, task: task::Task) {
+
+        let state = self.state.clone();
+
+        thread::spawn(move || {
+            println!("state {}", state.lock().unwrap());
+            println!("Starting Asnyc worker thread (delay 1 second)");
+            thread::sleep(::std::time::Duration::from_secs(1));
+            println!("End Asnyc worker thread");
+            *state.lock().unwrap() = true;
+            task.notify();
+        });
+    }
+}
+
+impl Future for StorageOperation {
+    type Item = ();
+    type Error = Error;
+
+    fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
+        if *self.state.lock().unwrap() != true {
+            println!("not ready - parking the task.");
+
+            if !self.running {
+                println!("starting storage thread");
+                self.run(task::current());
+                self.running = true;
+            }
+
+            Ok(Async::NotReady)
+        } else {
+            println!("storage thread ready - task will complete.");
+            Ok(Async::Ready(()))
+        }
+    }
+}
+
+
+#[test]
+fn test_storage_future()
+{
+
+    let op = StorageOperation::new();
+    hyper::rt::run(op.map_err(|e| {
+        println!("Got Error: {}", e);
+        ()
+    }));
+}