Skip to content

Commit b0ce6e7

Browse files
tevoineachkeita
authored andcommitted
Create directories if they don't exist in the template (microsoft#3522)
* Create directories if they don't exist in the template * fmt
1 parent f06a51f commit b0ce6e7

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

src/agent/onefuzz-task/src/local/template.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,16 @@ impl RunContext {
136136
name: impl AsRef<str>,
137137
path: impl AsRef<Path>,
138138
) -> Result<SyncedDir> {
139-
if !path.as_ref().exists() {
140-
std::fs::create_dir_all(&path)?;
141-
}
142-
143139
self.to_sync_dir(name, path)?
144140
.monitor_count(&self.event_sender)
145141
}
146142

147143
pub fn to_sync_dir(&self, name: impl AsRef<str>, path: impl AsRef<Path>) -> Result<SyncedDir> {
148144
let path = path.as_ref();
145+
if !path.exists() {
146+
std::fs::create_dir_all(path)?;
147+
}
148+
149149
let name = name.as_ref();
150150
let current_dir = std::env::current_dir()?;
151151
if self.create_job_dir {

src/agent/onefuzz-task/tests/template_integration.rs

+6-10
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use std::{
44
path::{Path, PathBuf},
55
};
66

7+
use path_absolutize::Absolutize;
78
use tokio::fs;
89

910
use anyhow::Result;
@@ -131,25 +132,20 @@ async fn create_test_directory(config: &Path, target_exe: &Path) -> Result<TestL
131132
test_directory = test_directory.canonicalize()?;
132133

133134
let mut inputs_directory = PathBuf::from(&test_directory).join("inputs");
134-
fs::create_dir(&inputs_directory).await?;
135-
inputs_directory = inputs_directory.canonicalize()?;
135+
inputs_directory = inputs_directory.absolutize()?.into();
136136

137137
let mut crashes_directory = PathBuf::from(&test_directory).join("crashes");
138-
fs::create_dir(&crashes_directory).await?;
139-
crashes_directory = crashes_directory.canonicalize()?;
138+
crashes_directory = crashes_directory.absolutize()?.into();
140139

141140
let mut crashdumps_directory = PathBuf::from(&test_directory).join("crashdumps");
142-
fs::create_dir(&crashdumps_directory).await?;
143-
crashdumps_directory = crashdumps_directory.canonicalize()?;
141+
crashdumps_directory = crashdumps_directory.absolutize()?.into();
144142

145143
let mut coverage_directory = PathBuf::from(&test_directory).join("coverage");
146-
fs::create_dir(&coverage_directory).await?;
147-
coverage_directory = coverage_directory.canonicalize()?;
144+
coverage_directory = coverage_directory.absolutize()?.into();
148145

149146
let mut regression_reports_directory =
150147
PathBuf::from(&test_directory).join("regression_reports");
151-
fs::create_dir(&regression_reports_directory).await?;
152-
regression_reports_directory = regression_reports_directory.canonicalize()?;
148+
regression_reports_directory = regression_reports_directory.absolutize()?.into();
153149

154150
let mut target_in_test = PathBuf::from(&test_directory).join("fuzz.exe");
155151
fs::copy(target_exe, &target_in_test).await?;

0 commit comments

Comments
 (0)