summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-12-05 20:03:56 +0200
committerLars Wirzenius <liw@liw.fi>2021-12-05 20:03:56 +0200
commite48518c5f4c68fcb77f2e732a36a8d8f3445ee1c (patch)
tree712086417521d3fa2d4cc96e0129c7e21dd10e5c /src
parent83eebad6645944ecca6f292c9e2677c1a30f23af (diff)
downloadobnam-benchmark-e48518c5f4c68fcb77f2e732a36a8d8f3445ee1c.tar.gz
refactor: move test data manipulation into functions, too
Sponsored-by: author
Diffstat (limited to 'src')
-rw-r--r--src/result.rs4
-rw-r--r--src/step.rs47
2 files changed, 29 insertions, 22 deletions
diff --git a/src/result.rs b/src/result.rs
index 3a73079..b9ea0d8 100644
--- a/src/result.rs
+++ b/src/result.rs
@@ -21,8 +21,8 @@ pub enum Measurement {
#[derive(Debug, Clone, Copy, Serialize)]
pub enum Operation {
- Backup,
- Restore,
+ Backup(usize),
+ Restore(usize),
}
impl Result {
diff --git a/src/step.rs b/src/step.rs
index ae9a32c..9e3c8eb 100644
--- a/src/step.rs
+++ b/src/step.rs
@@ -1,4 +1,4 @@
-use crate::result::{OpMeasurements, Operation, Measurement};
+use crate::result::{Measurement, OpMeasurements, Operation};
use crate::specification::{Change, Create, FileCount};
use std::time::Instant;
@@ -50,39 +50,34 @@ impl Step {
}
}
- pub fn execute(&self, current: &mut Option<String>) -> Result<Option<OpMeasurements>, StepError> {
+ pub fn execute(
+ &self,
+ current: &mut Option<String>,
+ ) -> Result<Option<OpMeasurements>, StepError> {
let now = Instant::now();
let om = match self {
Self::Start(name) => {
*current = Some(name.to_string());
- println!("start benchmark {}", name);
None
}
- Self::Stop(name) => {
+ Self::Stop(_) => {
*current = None;
- println!("stop benchmark {}", name);
None
}
Self::Create(x) => {
- println!("create {} files of {} bytes", x.files, x.file_size);
+ create_files(x)?;
None
}
Self::Rename(x) => {
- println!("rename {}", x.files);
+ rename_files(x)?;
None
}
Self::Delete(x) => {
- println!("delete {}", x.files);
+ delete_files(x)?;
None
}
- Self::Backup(x) => {
- println!("backup {}", x);
- Some(backup(current.as_ref().unwrap())?)
- }
- Self::Restore(x) => {
- println!("restore {}", x);
- Some(restore(current.as_ref().unwrap())?)
- }
+ Self::Backup(x) => Some(backup(*x, current.as_ref().unwrap())?),
+ Self::Restore(x) => Some(restore(*x, current.as_ref().unwrap())?),
};
let t = std::time::Duration::from_millis(10);
@@ -98,13 +93,25 @@ impl Step {
}
}
-fn backup(current: &str) -> Result<OpMeasurements, StepError> {
- let mut om = OpMeasurements::new(current, Operation::Backup);
+fn backup(i: usize, current: &str) -> Result<OpMeasurements, StepError> {
+ let mut om = OpMeasurements::new(current, Operation::Backup(i));
om.push(Measurement::TotalFiles(0));
om.push(Measurement::TotalData(0));
Ok(om)
}
-fn restore(current: &str) -> Result<OpMeasurements, StepError> {
- Ok(OpMeasurements::new(current, Operation::Restore))
+fn restore(i: usize, current: &str) -> Result<OpMeasurements, StepError> {
+ Ok(OpMeasurements::new(current, Operation::Restore(i)))
+}
+
+fn create_files(_: &Create) -> Result<(), StepError> {
+ Ok(())
+}
+
+fn rename_files(_: &FileCount) -> Result<(), StepError> {
+ Ok(())
+}
+
+fn delete_files(_: &FileCount) -> Result<(), StepError> {
+ Ok(())
}