Skip to content

Commit 26de01c

Browse files
authored
Merge pull request #126 from jacobmichels/jm/test-reliability
Improve test reliability
2 parents 69e4868 + b352edf commit 26de01c

File tree

1 file changed

+9
-18
lines changed

1 file changed

+9
-18
lines changed

src/loader.rs

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -101,29 +101,20 @@ fn resolve_shadowenv_parents(from_shadowenv: &PathBuf) -> Result<Vec<PathBuf>, T
101101
Err(_) => return Ok(vec![]),
102102
};
103103

104-
let previous_working_dir = env::current_dir().unwrap();
105-
env::set_current_dir(from_shadowenv).unwrap();
106-
107104
// Must be a valid symlink.
108105
// We need to resolve the symlink in context of the .shadowenv.d folder it is in.
109106
let resolved_parent = fs::read_link(&parent_link)
110-
.and_then(|resolved| resolved.canonicalize())
111-
.map_err(|err| {
112-
env::set_current_dir(&previous_working_dir).unwrap();
113-
114-
TraversalError::ResolveError {
115-
parent_link_path: parent_link.to_string_lossy().to_string(),
116-
error: if metadata.is_symlink() {
117-
err.to_string()
118-
} else {
119-
"Not a symlink".to_owned()
120-
},
121-
}
107+
.map(|link_target| from_shadowenv.join(link_target))
108+
.and_then(|path| path.canonicalize())
109+
.map_err(|err| TraversalError::ResolveError {
110+
parent_link_path: parent_link.to_string_lossy().to_string(),
111+
error: if metadata.is_symlink() {
112+
err.to_string()
113+
} else {
114+
"Not a symlink".to_owned()
115+
},
122116
})?;
123117

124-
// Restore working directory.
125-
env::set_current_dir(previous_working_dir).unwrap();
126-
127118
// TODO: Refactor into better structure with the options.
128119
let base_name = resolved_parent.file_name();
129120
let base_name_stringified = base_name.map(|f| f.to_string_lossy());

0 commit comments

Comments
 (0)