summaryrefslogtreecommitdiff
path: root/test_util/src
diff options
context:
space:
mode:
Diffstat (limited to 'test_util/src')
-rw-r--r--test_util/src/temp_dir.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/test_util/src/temp_dir.rs b/test_util/src/temp_dir.rs
index f0f866d88..f66bf1398 100644
--- a/test_util/src/temp_dir.rs
+++ b/test_util/src/temp_dir.rs
@@ -80,4 +80,40 @@ impl TempDir {
pub fn write(&self, path: impl AsRef<Path>, text: impl AsRef<str>) {
fs::write(self.path().join(path), text.as_ref()).unwrap();
}
+
+ pub fn symlink_dir(
+ &self,
+ oldpath: impl AsRef<Path>,
+ newpath: impl AsRef<Path>,
+ ) {
+ #[cfg(unix)]
+ {
+ use std::os::unix::fs::symlink;
+ symlink(self.path().join(oldpath), self.path().join(newpath)).unwrap();
+ }
+ #[cfg(not(unix))]
+ {
+ use std::os::windows::fs::symlink_dir;
+ symlink_dir(self.path().join(oldpath), self.path().join(newpath))
+ .unwrap();
+ }
+ }
+
+ pub fn symlink_file(
+ &self,
+ oldpath: impl AsRef<Path>,
+ newpath: impl AsRef<Path>,
+ ) {
+ #[cfg(unix)]
+ {
+ use std::os::unix::fs::symlink;
+ symlink(self.path().join(oldpath), self.path().join(newpath)).unwrap();
+ }
+ #[cfg(not(unix))]
+ {
+ use std::os::windows::fs::symlink_file;
+ symlink_file(self.path().join(oldpath), self.path().join(newpath))
+ .unwrap();
+ }
+ }
}