]>
Commit | Line | Data |
---|---|---|
17243003 DM |
1 | use std::io::Write; |
2 | ||
b9203d87 WB |
3 | use failure::*; |
4 | ||
fa5d6977 | 5 | use chrono::{DateTime, Utc}; |
17243003 | 6 | |
9e490a74 | 7 | use proxmox_backup::client::{HttpClient, BackupReader}; |
17243003 DM |
8 | |
9 | pub struct DummyWriter { | |
10 | bytes: usize, | |
11 | } | |
12 | ||
13 | impl Write for DummyWriter { | |
14 | ||
15 | fn write(&mut self, data: &[u8]) -> Result<usize, std::io::Error> { | |
16 | self.bytes += data.len(); | |
17 | Ok(data.len()) | |
18 | } | |
19 | ||
20 | fn flush(&mut self) -> Result<(), std::io::Error> { | |
21 | Ok(()) | |
22 | } | |
23 | } | |
24 | ||
25 | ||
b9203d87 | 26 | async fn run() -> Result<(), Error> { |
17243003 DM |
27 | |
28 | let host = "localhost"; | |
29 | ||
30 | let username = "root@pam"; | |
31 | ||
cc2ce4a9 | 32 | let client = HttpClient::new(host, username, None)?; |
17243003 | 33 | |
fa5d6977 | 34 | let backup_time = "2019-06-28T10:49:48Z".parse::<DateTime<Utc>>()?; |
17243003 | 35 | |
296c50ba | 36 | let client = BackupReader::start(client, None, "store2", "host", "elsa", backup_time, true) |
b9203d87 | 37 | .await?; |
17243003 DM |
38 | |
39 | let start = std::time::SystemTime::now(); | |
40 | ||
b9203d87 WB |
41 | let mut bytes = 0; |
42 | for _ in 0..100 { | |
43 | let writer = DummyWriter { bytes: 0 }; | |
44 | let writer = client.speedtest(writer).await?; | |
45 | println!("Received {} bytes", writer.bytes); | |
46 | bytes += writer.bytes; | |
47 | } | |
17243003 | 48 | |
b9203d87 WB |
49 | let elapsed = start.elapsed().unwrap(); |
50 | let elapsed = (elapsed.as_secs() as f64) + | |
51 | (elapsed.subsec_millis() as f64)/1000.0; | |
17243003 | 52 | |
b9203d87 | 53 | println!("Downloaded {} bytes, {} MB/s", bytes, (bytes as f64)/(elapsed*1024.0*1024.0)); |
17243003 | 54 | |
b9203d87 WB |
55 | Ok(()) |
56 | } | |
17243003 | 57 | |
b9203d87 WB |
58 | #[tokio::main] |
59 | async fn main() { | |
d973aa82 | 60 | if let Err(err) = proxmox_backup::tools::runtime::main(run()) { |
b9203d87 WB |
61 | eprintln!("ERROR: {}", err); |
62 | } | |
63 | println!("DONE"); | |
17243003 | 64 | } |