5 use chrono
::{DateTime, Utc}
;
7 use proxmox_backup
::client
::{HttpClient, BackupReader}
;
9 pub struct DummyWriter
{
13 impl Write
for DummyWriter
{
15 fn write(&mut self, data
: &[u8]) -> Result
<usize, std
::io
::Error
> {
16 self.bytes
+= data
.len();
20 fn flush(&mut self) -> Result
<(), std
::io
::Error
> {
26 async
fn run() -> Result
<(), Error
> {
28 let host
= "localhost";
30 let username
= "root@pam";
32 let client
= HttpClient
::new(host
, username
, None
)?
;
34 let backup_time
= "2019-06-28T10:49:48Z".parse
::<DateTime
<Utc
>>()?
;
36 let client
= BackupReader
::start(client
, None
, "store2", "host", "elsa", backup_time
, true)
39 let start
= std
::time
::SystemTime
::now();
43 let writer
= DummyWriter { bytes: 0 }
;
44 let writer
= client
.speedtest(writer
).await?
;
45 println
!("Received {} bytes", writer
.bytes
);
46 bytes
+= writer
.bytes
;
49 let elapsed
= start
.elapsed().unwrap();
50 let elapsed
= (elapsed
.as_secs() as f64) +
51 (elapsed
.subsec_millis() as f64)/1000.0;
53 println
!("Downloaded {} bytes, {} MB/s", bytes
, (bytes
as f64)/(elapsed
*1024.0*1024.0));
60 if let Err(err
) = proxmox_backup
::tools
::runtime
::main(run()) {
61 eprintln
!("ERROR: {}", err
);